数字动能发布分布式智能代理xPort V1.0( 四 )

普通Service Mesh的SideCar只是做了消息转发,xPort在满足该功能的前提下,可以更好的满足金融业务(如投研业务)间大量数据和传输。智能代理xPort直接把应用服务加载到自身的进程内, 这样应用服务和智能代理xPort的通讯无需再通过网络避免了频繁通讯产生的网络高负载,而是直接通过内存交互。如下图,应用服务A和应用服务B都是加载在xPortA的,通讯流程为:应用服务A -> xPortA -> 应用服务B。即使两个应用服务加载在不同的xPort,也只需要发起一次网络调用即可。另外,不同于原来一对一的智能代理->应用服务的单一结构,xPort允许多个应用服务同时在进程内加载。如图,应用服务A,B,C可同时通过加载在xPortA中。

数字动能发布分布式智能代理xPort V1.0

利用xPort实现进程内多应用服务调用

3、智能代理xPort内置服务发现功能,降低对注册发现服务频繁访问的网络消耗

通用Service Mesh服务网格模型对服务注册中心的依赖度很高,应用服务通过智能代理必须和服务注册中心保持连接,以确保服务注册中心能观测到各个节点的状态变化。这种方式在大规模的分布式应用中容易产生单点问题,随着应用服务节点的数量增加,服务注册中心的压力会随之变大,一旦服务注册中心发生故障,所有的应用服务都将被挂起无法工作。xPort为避免此问题,在智能代理中内置了服务发现功能。当应用服务把消息传递给xPort后,智能代理会先查询内置的本地路由表,查看是否有目标应用服务的地址,如果没有才会从服务注册中心获取目标服务(应用)的地址。对于首次应用服务注册,只需要通过智能代理向服务注册中心做一次性注册,后面的所有调用或应用服务目标的状态无需再通过服务注册中心。如上图的服务(应用)A发送消息给应用服务D,当xPortA和xPortB通过服务注册中心建立连接后, xPortA和xPortB会开始自动相互各自的应用服务信息,不再需要通过服务注册中心。

推荐阅读