沙龙晃荡 | 去哪儿、陌陌、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. 基于流程架构和营业架构,大年夜跨体系交互流程出发,分析营业交互接口点,辨认关键的营业办事才能。

【编辑推荐】踢开绊脚石:微办事可贵之办事调用的解决筹划

容器化微办事的持续集成/持续交付

晋升微办事实施效力的7个步调

使微办事、容器趋势完美——Serverless架构你应当知道的二三事

推荐Java五大年夜微办事器及其代码示例教程【义务编辑:武晓燕 TEL:(010)68476606】

推荐阅读

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

纵不雅各大年夜编程说话在 2017 年的成长情况,我们会发明 Python 的成长速度异常快。不少开辟者开端纠结 P>>>详细阅读

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

陌陌 php微服务架构,微服务架构中模块划分和服务识别相关推荐

  1. 如何禁用计算机的服务,怎么关闭掉电脑中的哪些无用服务

    WIN8系统电脑中有哪些无用服务可以关闭掉?我们知道一些服务对电脑的运行速度是有影响的,因此不少人会问Win8电脑哪些服务可以关闭?其实电脑可以关闭的服务很多,如果你不知道的话,W下面小编就和大家分享 ...

  2. linux更改nginx最大访问数,Linux下nginx服务的配置文件nginx.conf中模块的讲解之配置limit_conn_zone来限制并发连接数以及下载速率...

    一.限制并发连接数的配置方法如下: 1.在nginx.conf里的http{}里加上如下代码: # vim /usr/local/nginx/conf/nginx.conf #在其中的36行加入下面的 ...

  3. SOA 服务设计-传统车载架构的迭代升级

    文章目录 1. 分布式ECU-基于信号的架构设计 1.1. 需求分析 1.2. LC 逻辑功能架构 1.3. MBSE 架构开发 2. SOA架构-服务设计 2.1. 与3.0架构设计差异 2.2. ...

  4. 广告系统中通道类推送服务实践

    目录 1 广告系统概述 2 广告系统中的推送服务 3 推送服务实践 3.1 推送服务任务流程 3.2 任务状态流转 3.3 推送服务业务处理流程 4 总结 1 广告系统概述 首先介绍下广告系统,本文所 ...

  5. IBM Lotus Domino 7 中的实用 Web 服务,第 1 部分: 什么是 Web 服务以及它们为何如此重要

    Julian Robichaux, 开发人员, 独立顾问 Julian Robichaux 是专门研究 IBM Lotus Notes 和 Java 开发的软件开发人员和专业程序员.他擅长于各种与开发 ...

  6. IBM Lotus Domino 7 中的实用 Web 服务,第 1 部分: 什么是 Web 服务以及它们为何如此重要...

    IBM Lotus Domino 7 中的实用 Web 服务,第 1 部分: 什么是 Web 服务以及它们为何如此重要 级别: 初级 Julian Robichaux, 开发人员, 独立顾问 2005 ...

  7. 一文了解四种软件架构:Serverless架构、微服务架构、分布式架构、单体架构

    如果一个软件开发人员,不了解软件架构的演进,会制约技术的选型和开发人员的生存.晋升空间.这里我列举了目前主要的四种软件架构以及他们的优缺点,希望能够帮助软件开发人员拓展知识面. 一.单体架构 单体架构 ...

  8. 一文看懂Java微服务架构,WEB2.0,垂直架构,分布式架构,微服务架构

    Java微服务架构 目录: 了解开发环境&生成环境 WEB1.0 & WEB2.0 垂直架构 分布式架构 微服务架构 1.了解开发环境&生产环境 1.1 开发环境 平时在写代码 ...

  9. 微服务架构 — 微服务框架

    目录 文章目录 目录 微服务框架 第一代微服务框架 Spring Cloud Dubbo 下一代微服务框架 - Service Mesh Istio Envoy Kubernetes + Servic ...

最新文章

  1. 现代密码学3.3--伪随机生成器/PRG
  2. OpenCV使用人脸界标检测进行人脸交换
  3. C++longest increasing subsequence 最长递增子序列的实现之一(附完整源码)
  4. 【11.5校内测试】【倒计时5天】【DP】【二分+贪心check】【推式子化简+线段树】...
  5. 工厂模式 构建者模式_实践中的构建者模式
  6. 基于Curator实现dubbo服务自动注册发现
  7. frc机器人比赛主题_RCC机器人比赛
  8. jsp连接mysql数据库读不出数据,jsp连接Mysql数据库出现有关问题,
  9. 0基础学SQL(三)
  10. mysql锁的级别_mysql 锁和各锁级别
  11. 本人想了解CPU原理,大家能否推荐几本关于学习CPU原理的书?
  12. 购买了正版的supermemo 15,花了60$
  13. (result, consumed) = self._buffer_decode(data, self.errors, final)
  14. InputStream输入流七牛上传图片
  15. 又拍云叶靖:OpenResty 在又拍云存储中的应用
  16. MATLAB 制作gif动态图
  17. 5736. Single-Threaded CPU
  18. UsbAccessory和UsbDevice的区别
  19. DB2入门(1)--安装、启动、连接
  20. 字蛛(font-spider)压缩字体

热门文章

  1. 极客学院 TensorBoard:可视化学习
  2. Activiti7---Assignee的值用UEL的POJO实现
  3. 瞎扯淡 量产型炮灰工程师
  4. 记录8 板块月线反转
  5. iPhone数据线能轻松黑掉你的电脑/联通新版冰激凌来了,以上为今日内容
  6. 2023年专利申请流程及费用,哪里可以申请
  7. 字节、位、比特的概念和关系
  8. 用WORD写论文时,同一处怎么引用多个参考文献
  9. 24岁,接触前端的这三年
  10. Lombok插件讲解