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

4、xPort具有带消息队列的点对点通讯功能

在通用Service Mesh架构中,应用服务和智能代理、智能代理自身相互之间均是点对点通讯。点对点通讯在获得高性能的同时,却要求被调用方必须保持在线。在分布式场景中,应用服务可能会出现短时间(或极短时间)的通讯中断现象。xPort智能代理将会允许这些临时中断现象的发生,并将其视为信息在节点间传输的有效生命周期。xPort通过改进并融入ZeroMQ的技术达到此目的。应用服务把消息传给xPort之后,会在本地创建该消息目标应用服务的队列,然后再由该应用服务把消息发送给目标应用服务;如果目标应用服务不在线,那么在消息的生命周期内会存放在这个队列里面,待目标应用服务上线,该队列会继续完成消息传输。因此,智能代理间的消息传输只要在其生命周期内被处理即可,并不要求各个智能代理节点必须立即响应。与原来传统点对点的即时信息通讯方式不一样,xPort在与应用服务和智能代理间的相互调用,并不认为只要对方不在线,消息传输就是失败的,而是允许消息只要还在生命周期内,都可以队列方式进入等待响应状态。在点对点通讯效率提升方面,xPort同时借鉴了RabbitMQ一个连接可以创建多个通道(channel)的思路,大大减少了xPort之间的连接数量。xPort内置的节点智能连接算法,可让xPort智能代理会根据服务节点间线路情况自动增加连接,在空闲时自动降低连接数量。

推荐阅读