迈入微服务架构的第一关--服务边界划分

很多人说开发微服务并不难,难点在于如何划分微服务。这个话虽然有点绝对,但反应了服务边界的划分有多么重要。一个设计良好的单体应用远比一个混乱的微服务要好。采用微服务架构的目的是为了让系统变得更具有扩展性、可用性。但在把单体应用变成靠谱的微服务架构之前,单体系统的各个模块的划分应该是合理、清晰地。可以认为微服务就是将单体应用的各个模块分开部署而已。

本文将从多个角度切入,探讨一下微服务的划分方法。

确定边界的思路


在面向对象的程序设计中,有一条原则想必大家都知道,就是:高内聚、低耦合。通常程序结构中各模块的内聚程度越,模块间的耦合程度就越。不管是对单体应用进行模块化,还是对微服务进行划分,都需要以这个基本原则为指导。

在这个抽象原则的指导下,结合软件设计的具体实践,可以找到不同的服务划分方法。

数据库驱动的设计

数据驱动编程的核心出发点是相对于程序逻辑,人类更擅长于处理数据。数据比程序逻辑更容易驾驭,所以我们应该尽可能的将设计的复杂度从程序代码转移至数据。

用前贝尔实验室成员、Unix小组成员Rob Pike的话说:数据压倒一切。如果选择了正确的数据结构并把一切组织的井井有条,正确的算法就不言自明。编程的核心是数据结构,而不是算法。</

  • 25
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值