内容简介:微服务集成框架的模式微服务已经在架构界流行起来了,但在实践中,难免需要利用其它软件厂商系统的能力,同时也没有办法一步到位把企业内的所有系统都改造成微服务架构的系统,所以系统集成仍然是 一个非常重要的问题。在笔者项目的早期阶段,集成是由微服务系统的组件直接对接其它系统处理的,这种方式点对点的集成方式造成了系统和被集成系统的强耦合,影响了微服务系统的进一步发展。在接手集成框架的设计工作以后,笔者先研究了什么样的集成模式更加符合微服务的架构思想。在Martin Fowler的文章中提到,微服务架构的特征之一是“智
编辑推荐: |
本文来自于cnblogs,本文介绍微服务集成框架的模式,开发集成框架时的部分技术选型等相关内容。 |
微服务集成框架的模式
微服务已经在架构界流行起来了,但在实践中,难免需要利用其它软件厂商系统的能力,同时也没有办法一步到位把企业内的所有系统都改造成微服务架构的系统,所以系统集成仍然是 一个非常重要的问题。在笔者项目的早期阶段,集成是由微服务系统的组件直接对接其它系统处理的,这种方式点对点的集成方式造成了系统和被集成系统的强耦合,影响了微服务系统的进一步发展。
在接手集成框架的设计工作以后,笔者先研究了什么样的集成模式更加符合微服务的架构思想。在Martin Fowler的文章中提到,微服务架构的特征之一是“智能的端点,愚蠢的管道”。作为参照,ESB是智能管道的典型代表,ESB产品通常包括复杂的基础设 施,支持消息路由、编排、转换和应用业务规则。在实践中,ESB本身会逐渐发展为系统中一个复杂的单块应用;同时,这也于尽量解耦、内聚的微服务架构思想相左。因此,微服务团队在解决问题时,倡议使用REST API和轻量级消息系统实现系统集成。其中,消息系统仅提供可靠的异步消息传输通道,而不参与消息路由、编排、转换等环节,也不在消息系统中包含业务逻 辑。在各种消息通信模式中,事件驱动模式因其完全解耦、高度容错的特性受到了微服务架构系统的欢迎。事件驱动消息系统的中心是一个不做消息路由、编排或者 转换的Message Broker,Apache Kafka是很好的选择。
考虑到将要和微服务系统集成的三方系统通常都不符合微服务的架构,同时也不一定支持使用REST API或微服务系统选型的Message Broker。笔者设计集成框架的基本思想是使用Adapter设计模式,为将要集成的每一个三方系统构建一个集成服务。集成服务对外包装所有和三方系统 的同步异步交互,对内遵循微服务系统的规范,可以作为一个服务组件部署在当前微服务环境中。注意集成服务是针对每个三方系统独立开发的,每个集成服务都是微服务的Component,都可以独立部署。要避免一个集成服务面对多个三方系统,变成一个单块的集成平台。
微服务集成框架的设计和实现
微服务集成架构选则了通用性很强的REST、Kafka、Json格式消息作为标准,只需遵循约定的REST接口和消息定义,集成服务的开发者可以选用自己熟悉的语言、框架来编写。为了能加速集成服务的开发,笔者在定义了微服务集成模式之后,又设计并开发了 Java 技术栈的微服务集成框架。集成框架提供了和微服务系统内组件同步、异步通信所需要的基础能力,框架的组成主要包括:
服务注册发现服务
Message Broker服务
微服务集成基础Jar包
微服务集成基础Jar包中包括
项目骨架工程框架
异常框架
日志框架
统一配置框架
服务注册和发现客户端
服务封装和访问框架
REST服务文档框架
消息发布和订阅客户端
下图展示了开发集成框架时的部分技术选型,供读者参考
以上所述就是小编给大家介绍的《微服务的集成架构设计》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- 架构集成导读
- 『互联网架构』软件架构-Spring boot集成日志框架(89)
- 『互联网架构』软件架构-Spring boot集成三方中间件(88)
- 『互联网架构』软件架构-Spring boot集成模板引擎swagger2实现(87)
- 集成架构图绘制-JS绘图工具库(2.19)
- 微服务架构下的测试之(四)-集成测试(Integration Test)
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
嵌入式Linux应用开发完全手册
韦东山 主编 / 人民邮电出版社 / 2008-8 / 69.00元
本书全部实例代码及相关工具。 基于ARM 9+Linux 206平台,从基础讲起,引导读者快速入门,实例丰富,可直接应用于工程实践。 本书全面介绍了嵌入式Linux系统开发过程中,从底层系统支持到上层GUI应用的方方面面,内容涵盖Linux操作系统的安装及相关工具的使用、配置,嵌入式编程所需要的基础知识(交叉编译工具的选项设置、Makefile语法、ARM汇编指令等),硬件部件的使用及......一起来看看 《嵌入式Linux应用开发完全手册》 这本书的介绍吧!
JS 压缩/解压工具
在线压缩/解压 JS 代码
HEX HSV 转换工具
HEX HSV 互换工具