应用拆分思考

以下是根据现在做的系统,做出来的如下的总结:

应用拆分基本原则

  • 根据业务场景来明确划分出几个互不影响或者影响很小(仅需要提供数据)的系统。如:搜索查询、订单、账资核算等。

  • 上述的每个应用本身,可以根据功能划分应用。如搜索查询需要调用外部接口,则有对应的相关的外部接口的独立应用。

  • 避开事务操作跨应用,分布式事务将会是个很消耗资源的问题,应当在设计时避免。

目的:
1)应用和应用之间的耦合度降低,在一个应用挂了的情况下,其它的应用可以继续服务。
2)开发过程中,应用之间独立开发,定义好服务接口,之间的开发互不影响。

应用之间的通信

  • 同步的RPC调用框架,如Dubbo、ali的HSF等

  • 异步消息通知,如MetaQ

PS:
1)异步消息通知适用于一些耽搁数据包小,但是数据量大,对实时性要求不高的场景。如支付宝的转账成功等。
2)选择RPC调用框架,而不是传统的http或webservice服务的原因是,使用service方法无感知,在配置好后,和本地调用方法类似。

应用之间数据库设计

每个应用都有自己独立的数据库
1)共同使用的基础信息可以放在common库中一起使用;
2)业务相关的数据,如需使用到其它应用的业务数据,需采用同步数据的方式,这样应用之间才算真正意义上的隔离。
3)数据隔离的设计,可以防止因为数据库问题(慢查询、连接池用尽等问题)带来的整个平台“熄火”

PS:
1)定时任务方式,同步数据,势必会给系统的效率带来一定的损耗,根据业务场景需要来选择

任务分发调度

  • 涉及到分布式部署系统的时候,就牵扯到任务分发调度的问题:
    1)对于前台的http请求,仍然可以采用apache等来进行请求分发。
    2)对于一些后台任务呢?一般是借助Quartz来进行任务分发。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值