系统拆分原则

细数到今天,拆分系统已经断断续续进行了一个月了,希望在这里整理一下,对接下来的拆分工作有益。

这里记录一下在实际工作中总结的几条原则吧,主要是达到各系统间低耦合,系统内部高内聚。

  1. db不能跨系统访问。自己的db自己管理,简单好维护,降低各系统间的数据耦合度。需要做成这样很多以前的联合查询都得改造。
  1. 各子系统要封装得足够好。所有子系统通过自己的api项目向其它子系统提供数据服务,这些api项目打包成jar包供其它子系统使用,以降低业务耦合性。
  1. 子系统不缓存其它子系统的数据。因为只要缓存其它子系统的数据就可能会造成数据不一致,但是这样严格做起来有一定的难度(系统间调用耗时)。所以有的时候为了性能考虑会缓存少量关键数据。比如说一个用户小李注册后,他的基本信息存在用户系统。他又申请成为了特约投稿人,那他特约投稿人的信息就存在投稿系统。如果业务系统有很多对用户不同身份而进行不同的操作,就可以把小李是特约投稿人的身份存在用户系统里,而不用每次都到投稿系统查询。
  1.  缓存距离用户越近越好。顾名思义就是将变动比较少的数据缓存放到http服务器上,这样可以达到最快的响应。变动比较大的数据在前端用js来请求并渲染,充分利用浏览器的性能来提高用户体验,分担服务器的压力。
  1. 如果数据必须不能丢失,拉比推更安全。首先拉有序列,只要有序列就可以通过记录最后一条回执来保证之前的都已获取,而不用像推送那样来记录每一条记录的回执;其次,推送需要有回执才能证明对方已经接收到,如果拉的话由自己来记录自己拿到第几条,不需要有回执这一步了。


先写这些吧,以后发现再补充。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值