针对系统拆分以及DB拆分,通过两个阶段来完成

发布时间:2021年11月13日 阅读:528 次

针对系统拆分以及DB拆分,通过两个阶段来完成

针对系统拆分以及DB拆分,通过两个阶段来完成

针对系统拆分以及DB拆分,我们通过两个阶段来完成该项工作。

第一阶段

首先在系统层面进行拆分,将原有的大系统拆分出多个业务逻辑独立的子系统,而DB暂时不进行拆分,多套系统还继续共用一个DB,只是根据业务逻辑划分各个系统所依赖的表,不同业务逻辑系统之间不能互相访问表,这样新系统只访问自己所归属的表,通过此种方案,可以保证原有系统业务不受影响,同时新拆分的业务系统研发工作也可以顺利进行,此阶段大概花费了我们几个月的时间,最终顺利完成系统层面的拆分。

第二阶段

在完成系统层面拆分之后,我们紧接着实施DB层面的拆分,将各个子系统所依赖的表独立拆分出来,分别放置到不同的RDS数据库,实现物理的隔离,同时实现了数据库主从分离。

初步服务

本阶段,我们采用了比较简单易用的Hessian实现初期的RPC服务化。针对第三方公共服务,从原有系统中解耦出来,独立拆分出服务化组件,并做独立部署,供其余业务系统统一调用。而系统间调用也通过Hessian来实现RPC远程调用。

SLB负载均衡

在V1.0架构期间,我们的Nginx都是单点部署,一旦一台Nginx服务器出现故障,则会波及到大量业务系统,风险非常大

在V2.0架构期间,我们引入了SLB实现负载均衡,SLB配置了多台Nginx,同时在业务系统层面也实现了负载均衡,避免了单点故障,达到高可用的目的。

爆发期—微服务架构V3.0

进入2016年以来,贝聊业务高速发展,用户规模在短时间内增长数百万,同时各个业务线逐渐铺开,业务场景更加复杂,代码规模膨胀得也非常快,研发团队迅速达到了几十人规模,一个系统多人开发,研发人员层次不一,规范难以统一,同时业务逻辑耦合严重,每次上线都需要将整个大系统整体打包上线,风险非常大,并且新人入职之后学习成本非常高。因此我们引入了微服务架构,将业务逻辑拆分为独立的微服务组件,每个微服务都围绕着具体业务进行构建,由专人研发和维护,并由专人做性能优化和架构优化,各个微服务组件的研发与上线互不影响。

针对系统拆分以及DB拆分,通过两个阶段来完成

结合V2.0架构,在实施微服务架构时,基于多方面考虑,我们选择了Dubbo作为分布式微服务框架。


Tag:针对 系统 拆分 DB拆分 通过 阶段 完成
相关文章

发表评论: