本文原创作品,如需转载请注明来源,作者:姜涛, towerjt@gmail.com
先看下面的图:
因为项目的需要,我需要一个能够支持多对多的消息传递的工具,而且有支持 C/C++ 的 API ,而且最好是客户端接受消息能够支持两种方式,一种是广播的,即发送的消息,所有的接受者都能收到;二是轮训的,即发送的消息,接收端按照接收端的个数平均分配接受。第一种方式在做备份的时候需要,可以做到多个接收端接受到同样的消息;第二种则是想支持负载均衡。
这个东西做完后再看,实际上很简单,使用了 libevent ,中间的队列用 mmap 文件映射内存的方式,来保证消息的持久性,只有在消息接受了才删掉。