Rust实现一个多进程消息透传的服务进程

软件开发发展到今天,我们经常要面对非常复杂的业务,需要庞大的分布式集群来实现高效的业务处理,稍大一些的应用,后端都是多进程实现,分布式部署的,这时候多进程间的通信往往会成为问题。如果进程间两两建立连接,不但耗费资源,而且连接太多,需要的端口也多,难以管理。

为解决这个问题,我们很容易想到用一个消息服务器来管理连接,所有的需要与其他进程通信的进程,都与这个消息服务器建立连接,所有的消息都经过这个消息中转站做转发。

我们需要设计一套协议来实现这个流程,首先,每个进程需要一个标识,发消息时,指定收消息的人,收到消息的人也就知道要把消息回复给谁。消息服务进程需要维护一个map,以保存与各个进程的通信通道(这个设计是我在华为的网管系统看到的,华为叫做MDP消息分发进程,我也只是大概了解了这个思想,却没有详细的读华为MDP的源码,没有领悟他们的精妙设计。现在想读他们的源码,却没有机会再接触它了,很是后悔呢。现在我把我做的东西也命名为MDP)。我设计的通信协议如下:


当然这个协议还有很大的优化空间。

然后是服务进程的设计,现在采用的设计思路是:

1. 每个进程想

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值