在C ++中为分布式系统构建自定义通信协议

时间:2014-08-27 16:44:57

标签: c++ networking boost netty zeromq

我需要在分布式系统中构建自定义通信协议。各个节点上的逻辑是用C ++实现的。

在我过去的经历中,当我不得不用Java做这件事时,我依赖于Netty。 C ++中是否有类似的框架/库允许我实现自己的自定义协议?

我简要地看了ZeroMQ。但是,我发现的文档似乎过分强调使用预定义模式,如 REQ / REP { {1}} / PUB ZeroMQ 上是否有更基础的层,这并没有强迫我使用这些模式,但仍然提供足够的支持来实现自定义通信协议?

如果有其他图书馆(听说SUB)更合适,那么这也是受欢迎的。

2 个答案:

答案 0 :(得分:1)

ZeroMQnanomsg框架(作为很酷的无代理工具)使您成为一个出色的消息传递IO层,您可能会忘记他们的智能内部性。

你可以自己做任何报告抽象。

如果你有一个印象,那个PUB / SUB是ZeroMQ的焦点,似乎你已经错过了他们最强大的力量。

你有没有机会阅读任何Pieters Hinjens'预订零拷贝,零能量,零共享,零延迟背后的先进设计原则; o)?

值得一试。 [包括更多宝石。]

非常以PROTOCOL为导向的设计方法可能会对您的own-protocol - FSA设计提供很大帮助。验证,如果你努力寻求专业级,多线程,异构,分布式,可扩展,自我修复,快速,低延迟的正式通信模式,就会越多。

答案 1 :(得分:0)

您可能希望研究像CORBA这样的中间件(许多不同的代理可用,但我不建议使用它),来自ZeroC的ICE,来自Google的SOAP缓冲区,SOAP甚至RPC。使用一个或另一个有不同的优点和缺点,但我建议使用现有的中间件,而不是开发自己的中间件。您可以从这里middleware on wikipedia开始,然后根据您的需求决定哪一个更好。