标签:微服务 数据类型 services 方式 web origin 产品 json 可靠
ESB是Enterprise Service Bus的简称,中文翻译为企业服务总线,企业服务总线是一个实现系统间集成和互联互通的重要技术架构,可以理解为是一种消息和服务集成的中间件平台。
ESB主要是为了解决多个应用系统互联所面临的的复杂性,减低集成和维护成本。
举个例子,比如我们的医疗业务系统都知道分为很多个系统,包括HIS、LIS、EMR等等,如果这些业务系统是由多个商家做的,可能会有构建语言不同、通信协议不同、数据传输格式不同等问题,那么如何把这些系统用一条线串起来呢?就是用ESB;还有我们医疗从业者、患者、管理人员等可以通过多个渠道访问后台系统,比如浏览器的portal,移动设备等;还有一些特殊的医疗业务应用系统,比如双向会诊、远程会诊、业务协同等等,即实现了ESB的基本特点,又满足医疗卫生行业的特定需求的ESB,叫做健康服务总线(Health Service Bus,HSB)。
ESB为了解决刚才说的问题,就需要保证多个应用系统的服务接入,协议转换,提供可靠的消息传输,数据格式转换,基于内容路由等功能。
有人可能会有疑问,应用A发送消息给ESB,ESB再将消息转换给应用B,那么应用A直接通过SOAP协议发送给B,效率不是应该更高吗?而且如果这些IT系统都在一个网络中,提供的WebService都在统一命名空间下,就可以相互通信,为什么还要加上这一层?有两点需要考虑。第一点。点对点做服务的时候,通常需要考虑日志记录,服务访问安全、传输安全、数据安全、路由分发等一系列问题,而这些完全可以统一管理,统一验证,灵活配置,;如果应用A调用了应用B,在调用了应用C等具有逻辑流程的调用时,还可以在ESB上实现流程引擎;第二点,ESB是一个中间件平台,包含了消息中间件的全部功能,有异步消息处理机制,可以实现业务系统之间真正的松耦合的结构。
现在使用的ESB协议转换基本上使用的ESB产品,实现基本上二进制进行转换;具体的可以找相应的产品的,比如 WSO2d产品的实现:
WSO2 ——(7)ESB功能:协议转换
目前有一些问题需要再调查一下,cxf3.1目前也只支持wsdl1.1,axis2的最新版也不支持wsdl2.0,需要继续查询资料如何转换;有些企业再做接口对接的时候可能只提供wsdl,需要自己根据wsdl生成服务端提供服务给他们,可以利用soapUI实现。有些企业只支持wsdl1.0,我们要实现自己的ESB就要提供wsdl1.0与wsdl2.0版。
ESB的主要应用场景是集成,特别是对无法改变的异构系统做适配整合,比如遗留系统,外部系统。在逻辑上和运行时都是集中的。逻辑上会有集中的高层视野,有利于可管理性,也就是便于治理。
但也有集中的复杂性特别是演进时的节奏纠缠,需要想办法应对。运行时的集中则有比较大的容量和可用性风险。
微服务的通讯一般是自治的,在运行时是分散的,容量和可用性风险可以分散应对。逻辑上也是分散的,这一点有好处也有坏处,分散复杂性的同时也失去了统一视野。
折中的办法是建立服务治理中心,作为逻辑中心,采用事后模式的治理演进风格。
标签:微服务 数据类型 services 方式 web origin 产品 json 可靠
原文地址:https://www.cnblogs.com/ZJOE80/p/12150933.html