在对复杂的业务系统进行微服务的拆分时应该注意什么

  • 时间:
  • 浏览:0

微服务怎样拆分,不是拆分粒度越小越好?一般情況下,对于服务的拆分何必 越小越好,甚至极端的案例是把一块功能拆分成十个 多 服务,這個做法是不对的。而且,拆分粒度应该保证微服务具有业务的独立性与全部性,服务的拆分围绕业务模块进行拆分。这类将 VR 资讯系统进行服务拆分,分为资讯系统、话题系统、日报系统、百科系统十个 微服务系统。

原文地址:http://blog.720ui.com/2017/msa_design/

白岳

总结下,服务的拆分是十个 多 非常有学问的技术活,要围绕业务模块进行拆分,拆分粒度应该保证微服务具有业务的独立性与全部性,尽可能性少的趋于稳定服务依赖,链式调用。而且,在实际开发过程中,有的前一天单体架构更加适合当前的项目。实际上,微服务的设计并全是一蹴而就的,它是十个 多 设计与反馈过程。而且,大伙儿在设计之初还要能 将服务的粒度设计的大就说 ,并考虑其可扩展性,随着业务的发展,进行动态地拆分也是十个 多 不错的挑选。

而且,就说 情況下,服务的拆分围绕业务模块进行拆分是并不是理想情況下的拆分方式,换句话说,大伙儿在分类整理之初就假定大伙儿还要能 掌握一切。然而,不同的服务可能性由不同的团队开发与维护,实际场景下,微服务的便利性更多的在于团队结构要能产生闭环,换句话说,团队结构还要能 易于开发与维护,便于沟通与合作协议方式,而且对于结构团队就趋于稳定很大的沟通成本与合作协议方式成本。现在,大伙儿来看十个 多 案例。团队 A 考虑到功能的复用性而开发了十个 多 “互动组件”,其中包括 “评论模块”功能。此时,团队 B 何必 知情也开发了十个 多 这类的“互动组件”。而团队 C 全是這個需求,它知道团队 A 有這個“互动组件”,希望还要能 复用,而且可能性這個“互动组件”在设计的前一天更多地考虑了团队 A 的当前业务,没办法 很好的复用性,这类不支持“评论盖楼”功能,而可能性团队 A 出于当前就说 项目的进度原因分析无法马上提供支持,团队 B 评估后决定花一周时间当时人开发十个 多 符合当时人业务需求的“互动组件”。此时,各个项目团队人及维护了十个 多 “互动组件”。此外,大伙儿再来看十个 多 案例。十个 多 OA 系统拥有“用户管理”、“文件管理”、“公告管理”、“政策管理”、“公文管理”、“任务管理”、“审批管理”等功能,可能性按照微服务架构思想还要能 围绕业务模块进行拆分,而且事实上這個 OA 系统的最终用户还要能要能 200 多人,使用微服务架构可能性有点“杀鸡用牛刀”的感觉了。回顾下,第十个 多 案例中,可能性团队之间的职责与边界原因分析了服务的复用趋于稳定局限性,甚至造成人及为战的局面,這個情況一般还要公司层面进行规划和统筹。第二案例中,可能性用户量不大,系统而且复杂性,使用微服务反而带来了何必 要的设计和运维难度,一块儿也带来了就说 技术的复杂性度。此外,大伙儿还还要考虑服务依赖,链式调用、数据一致性、分布式事务等疑问。