系统之间的通信

基于SOA架构的工程,各个部分都是不同的工程。所以实现某个功能需要两个甚至更多的系统之间进行通信。

如何实现远程通信?

         1、使用WebService:效率不高,它是基于SOAP协议(http+xml:需要在一个工程中将数据变为xml格式,再传输到另外一个项目,并且xml传输数据过于臃肿)。项目中不推荐使用。

          2、使用restful形式的服务,http+json。很多项目中应用。但是如果服务越来越多,服务与服务之间的调用关系复杂,调用URL管理复杂,什么时候添加机器难以确定。

          3、使用dubbo。使用rpc协议进行远程调用,直接使用scoket通信(底层实现,使用二进制的流,所以效率高)。传输效率高,并且可以统计出系统之间的调用关系、调用次数,管理服务。

Dubbo介绍:

Dubbo是一个分布式服务框架,致力于提供高性能和透明化的RPC(远程过程调用协议,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议)远程服务调用方案,以及SOA服务治理方案。简单的说,dubbo就是个服务框架,如果没有分布式的需求,其实是不需要用的,只有在分布式的时候,才有dubbo这样的分布式服务框架的需求,并且本质上是个服务调用的东东,说白了就是个资源调度和治理中心的管理工具。

其核心部分包含:
1. 远程通讯: 提供对多种基于长连接的NIO框架抽象封装,包括多种线程模型,序列化,以及“请求-响应”模式的信息交换方式。
2. 集群容错: 提供基于接口方法的透明远程过程调用,包括多协议支持,以及软负载均衡,失败容错,地址路由,动态配置等集群支持。
3. 自动发现: 基于注册中心目录服务,使服务消费方能动态的查找服务提供方,使地址透明,使服务提供方可以平滑增加或减少机器。

Dubbo功能:

1、实现系统之间的通信。

2、统计和管理服务之间的调用情况。

Dubbo采用全spring配置方式,透明化接入应用,对应用没有任何API侵入,只需用Spring加载Dubbo的配置即可,Dubbo基于Spring的Schema扩展进行加载。

猜你喜欢

转载自blog.csdn.net/qq_40692753/article/details/83031460