问题来自Java技术沙龙的武敬伟
Java技术沙龙报名链接:https://yq.aliyun.com/promotion/796
服务粒度的划分:服务粒度划分很难有统一的标准,当服务粒度过粗时,服务内部的代码容易产生耦合,多人开发同一个服务带来开发成本的增加;当服务粒度过细时,服务间的层次结构会更复杂,编码时往往需要去对多个服务进行修改才能完成一个需求。阿里内部通过实践总结了三个划分原则供参考:首先是服务依赖层次不超过三层,即A依赖B、B依赖C、则C不应该再依赖于D,如果出现了多层依赖或循环依赖,需要审视当前的服务划分粒度。再有就是研发团队规模,一个服务系统建议不超过3个研发人员维护,避免大量人员集中修改公共代码带来效率的下降。最后是系统代码规模,过多的代码可能需要系统拆分或服务更细粒度的拆分,提供一个经验值,单个服务系统的代码行数在3万行左右比较合适。
1、微服务的使用也看情况,不是所有的场景都适合微服务
2、微服务解决过去的单体服务大程序的敏捷开发、部署、运维、伸缩的问题
3、关于微服务的划分粒度,标准很多,建议的方式的看实际情况
4、常见的划分策略、极端的是接口方法单个微服务、业务功能、组件、数据库等
5、服务粒度越小、开发、部署、维护的成本越高,一般是建议按照业务领域划分,比如订单、账号单独封装独立的微服务
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。