微服务的边界到底该怎么进行划分
前言现在做系统架构师,如果不知道什么是微服务,不知道springCloud,doubbo你都不好说自己是架构师,那既然微服务这么重要,那么服务边界到底怎么划分才是合理的呢。。。实施方案服务的合理划分,即服务边界的设定是微服务成功的重中之重,是所有项目实施之前必须认真思考,严肃对待的。一个合理的服务划分应该是:符合团队结构 服务的落地与维护靠人,靠的是执行团队(包含业务、产品、技术、测试与运维团队)
·
前言
现在做系统架构师,如果不知道什么是微服务,不知道springCloud,doubbo你都不好说自己是架构师,那既然微服务这么重要,那么服务边界到底怎么划分才是合理的呢。。。
核心思想、理念
服务的合理划分,即服务边界的设定是微服务成功的重中之重,是所有项目实施之前必须认真思考,严肃对待的。
一个合理的服务划分应该是:
- 符合团队结构 服务的落地与维护靠人,靠的是执行团队(包含业务、产品、技术、测试与运维团队),所以服务的设定一定是与团队结构相辅相成的,同一个系统不同的执行团队往往会有不同的且都合理的服务划分方案
- 业务边界清晰 各服务有清晰的责任及边界,一个服务对应一块业务,服务间多为单向依赖
- 最小化地变更 新增或变更业务上有很明确的服务对应,或是新增服务或是扩展某些服务,很少出现既可以在这个服务上实现也可以在那个服务上实现这种摸棱两可的情况,在符合上述条件前提下某一业务需求地变更受影响的服务应该尽可能地少
- 最大化地复用 服务的复用是服务化的一个重大优势,服务设定要考虑复用的场景,在符合上述条件的前提下应该尽可能最大化地实现服务复用
- 性能稳定简洁 上述条件更多的是业务导向,从技术上服务设定的核心要关注对性能的影响、是否稳定及架构是否简洁,是否要引入额外的中间件等
写在最后
我们必须明确的是:服务不是越细越好,也不是也粗越好,服务划分的第一要素是先以业务域拆分,再以技术视角拆分,结合团队的规模、能力确定服务间的关系与边界
要了解更多的内容,请关注我吧_
更多推荐
已为社区贡献1条内容
所有评论(0)