开发者社区 > 云原生 > 微服务 > 正文

[@徐雷frank][¥20]JAVA微服务架构中,对于服务粒度设计是越细越好吗,有什么好的建议,感谢?

问题来自Java技术沙龙的武敬伟
Java技术沙龙报名链接:https://yq.aliyun.com/promotion/796

展开
收起
李博 bluemind 2018-12-10 18:38:15 2422 0
2 条回答
写回答
取消 提交回答
  • 服务粒度的划分:服务粒度划分很难有统一的标准,当服务粒度过粗时,服务内部的代码容易产生耦合,多人开发同一个服务带来开发成本的增加;当服务粒度过细时,服务间的层次结构会更复杂,编码时往往需要去对多个服务进行修改才能完成一个需求。阿里内部通过实践总结了三个划分原则供参考:首先是服务依赖层次不超过三层,即A依赖B、B依赖C、则C不应该再依赖于D,如果出现了多层依赖或循环依赖,需要审视当前的服务划分粒度。再有就是研发团队规模,一个服务系统建议不超过3个研发人员维护,避免大量人员集中修改公共代码带来效率的下降。最后是系统代码规模,过多的代码可能需要系统拆分或服务更细粒度的拆分,提供一个经验值,单个服务系统的代码行数在3万行左右比较合适。

    2019-07-17 23:19:35
    赞同 展开评论 打赏
  • 1.阿里云大学讲师,主讲《微服务Spring Cloud设计与开发实战》《MongoDB高级实战》等课程 2.MongoDB中文社区专家 3.《MongoDB实战》第2版译者 5.吉林大学计算机科学学士、上海交通大学硕士

    1、微服务的使用也看情况,不是所有的场景都适合微服务
    2、微服务解决过去的单体服务大程序的敏捷开发、部署、运维、伸缩的问题
    3、关于微服务的划分粒度,标准很多,建议的方式的看实际情况
    4、常见的划分策略、极端的是接口方法单个微服务、业务功能、组件、数据库等
    5、服务粒度越小、开发、部署、维护的成本越高,一般是建议按照业务领域划分,比如订单、账号单独封装独立的微服务

    2019-07-17 23:19:35
    赞同 展开评论 打赏

为微服务建设降本增效,为微服务落地保驾护航。

相关电子书

更多
Spring Cloud Alibaba - 重新定义 Java Cloud-Native 立即下载
The Reactive Cloud Native Arch 立即下载
JAVA开发手册1.5.0 立即下载