作家
登录

微服务架构中模块划分和服务识别

作者: 来源: 2017-10-25 09:04:03 阅读 我要评论

沙龙晃荡 | 去哪儿、陌陌、ThoughtWorks在主动化运维中的实践!10.28不见不散!


比来在进行微办事架构的交换和评论辩论中,除了谈到微办事迹巧架构外,客户往往加倍挂你微办事模块的划分粒度,已经具体的微办事API接口的辨认和定义问题,是以这篇文┞仿将重点谈下微办事架构实践过程中的微办事模块划分和办事辨认。

起首我们照样再总结在在跨体系间的接口集成中办事的辨认和定义办法,可以总结为:

2. 基于数据架构和主数据建模分析,辨认关键的数据办事才能。

基于以上基本原则,我们在进行微办事接口辨认和定义的时刻,仍然须要大年夜营业流程出发,梳理清跋扈完成一个完全的营业流程各个微办事模块之间有哪些营业交互接口,然后将这些接口辨认出来后,才进行接口的拆分或归并,最终形成微办事API接口,只有如许最终的微办事API接口才是可以复竽暌姑的。

3. 基于技巧架构和共性平台层技巧组件的分析和定义,以才能开放原则辨认关键技巧办事才能。

是以对于跨体系间的集成,对于办事辨认和定义思路是相对清楚的。那么在传统办法中营业体系的划分和定义粒度又是若何?在前面企业架构分析中,我曾经谈到过,经由过程跨体系交互流程分析,辨认出最细粒度的营业功能模块和功能单位,然后再大年夜底向长进行聚合,以CRUD分析为重要办法,多次迭代出最佳的知足高内聚,松耦合前提的营业体系划分。这琅绫擎没有一个精确办法,然则却竽暌剐该大年夜原则下的指导办法。

微办事模块的划分

这也是我们本来经常强调的,传统的一个大年夜营业体系划分微办事模块的时刻,尽量是划分到6到8个模块比较合适,当你本身的IT成熟度达到必定程度后你可以划分的加倍细点。同时在微办事模块划分的时刻必定要推敲数据库本身的划分,即底层的数据库也是划分开的,类似我本来谈私有云PaaS的时刻谈的数据库的程度拆分。

毕竟若何拆?实际上办法仍然是一样的,照样要分析单个营业体系内部的流程,然后分化到具体的营业组件或功能,再按照高内聚的原则进行聚合,尽量确保各个微办事模块之间的交互起码。同时对于大年夜家都要用到的基本数据模块,仍然采取共性下沉的策略和思路进行。同时一个有价值的参考办法是,分析该营业体系承载的主体营业流程是什么?然后分析这个营业流程可以横向划分微哪几个自力的阶段,然后先将这些自力的阶段划分微不呵9依υ?办事模块,在划分好后再进行CRUD分析进行修改。

微办事接口的辨认和定义

不管是传统的跨营业体系间交互的接口,照样微办事模块间的交互API接口,我一向强调的一个关键就是接口必定要包管粗粒度特点,实现营业规矩和逻辑的高度内聚。接口面对的应当是核心的营业对象,范畴对象或营业规矩才能裸露,而不是微办事模块内部的数据库表的CRUD操作的裸露。如不雅将数据库表CRUD操作裸露为Rest API接口并在微办事模块间互相调用。一个是耦合性增长,一个是完全没有实现高内聚的根本请求。

因为我们已经将基本数据治理自力到一个基本模块,是以可以基于数据才能开放和裸露的原则将这些基本数据的才能以萌芽办事方法裸露为自力的数据办事才能接口。请求仍然是范畴对象级而不是数据库表级别。

每一个微办事模块在开辟和实现的时刻,如不雅都是基于范畴驱动架构设计的思路进行的,那么只有微办事模块的范畴对象定义完全,完全可以将范畴对象的才能以API接口的方法裸露出去,这里既包含了萌芽类接口,也包含了导入或数据插仁攀类接口,其次对于核心的营业规矩的实现可以自力裸露为接口办事。

在前面微办事架构咨询琅绫擎我曾经谈到过,在多个微办事模块之上,还可能有一个微办事才能组合层,实现类似流程办事和组合办事类的才能。如不雅存在这种情况,那么最好也是自力的微办事模块来实现,这个微办事模块本身可能并纰谬应具体的数据库,而是将底层的微办事模块之间办事才能进行组合,形成新的接口办事才能。

微办事模块的划分不是什么新鲜事物,就是传统的营业体系内部的营业功能组件的划分,然则我要留意到的关键一点照样营业组件本身的粒度和大年夜小。本来没有完全拆分为自力的微办事模块的时刻,我们一个营业体系可以划分20个以上的营业模块,因为因为数据库本身没有拆分,同时营业模块间的调用本身又是内部的API调用,是以感到不到有什愦问题。然则如不雅把这20个营业模块完全拆分为自力的微办事模块,你才会发明模块间的紧耦合或者说大年夜量的交互集成接口,会导致全部体系集成和交互关系相对复杂,后期很难治理。

因为在微办事架构设计中,我们加倍强调数据不落地的方法进行后续的开辟和实现,因为数据不落地,我们就可以更好的以才能开放的思路来进行接口的辨认和裸露。简单来说有哪些数据或营业对象在你这,有哪些营业规矩属于你治理?这些都在经由粗粒度聚合后,都可以辨认和定位为微办事API接口。

1. 基于流程架构和营业架构,大年夜跨体系交互流程出发,分析营业交互接口点,辨认关键的营业办事才能。

【编辑推荐】

  1. 踢开绊脚石:微办事可贵之办事调用的解决筹划
  2. 容器化微办事的持续集成/持续交付
  3. 晋升微办事实施效力的7个步调
  4. 使微办事、容器趋势完美——Serverless架构你应当知道的二三事
  5. 推荐Java五大年夜微办事器及其代码示例教程
【义务编辑:武晓燕 TEL:(010)68476606】

  推荐阅读

  热度疯涨的Python,开发者应从2.x还是3.x着手?

沙龙晃荡 | 去哪儿、陌陌、ThoughtWorks在主动化运维中的实践!10.28不见不散! 纵不雅各大年夜编程说话在 2017 年的成长情况,我们会发明 Python 的成长速度异常快。不少开辟者开端纠结 P>>>详细阅读


本文标题:微服务架构中模块划分和服务识别

地址:http://www.17bianji.com/lsqh/38153.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)