我需要在分布式系统中构建自定义通信协议。各个节点上的逻辑是用C ++实现的。
在我过去的经历中,当我不得不用Java做这件事时,我依赖于Netty。 C ++中是否有类似的框架/库允许我实现自己的自定义协议?
我简要地看了ZeroMQ
。但是,我发现的文档似乎过分强调使用预定义模式,如 REQ
/ REP
, { {1}} / PUB
等 ZeroMQ 上是否有更基础的层,这并没有强迫我使用这些模式,但仍然提供足够的支持来实现自定义通信协议?
如果有其他图书馆(听说SUB
)更合适,那么这也是受欢迎的。
答案 0 :(得分:1)
ZeroMQ
或nanomsg
框架(作为很酷的无代理工具)使您成为一个出色的消息传递IO层,您可能会忘记他们的智能内部性。
你可以自己做任何报告抽象。
如果你有一个印象,那个PUB / SUB是ZeroMQ的焦点,似乎你已经错过了他们最强大的力量。
你有没有机会阅读任何Pieters Hinjens'预订零拷贝,零能量,零共享,零延迟背后的先进设计原则; o)?
值得一试。 [包括更多宝石。]
非常以PROTOCOL为导向的设计方法可能会对您的own-protocol
- FSA设计提供很大帮助。验证,如果你努力寻求专业级,多线程,异构,分布式,可扩展,自我修复,快速,低延迟的正式通信模式,就会越多。
答案 1 :(得分:0)
您可能希望研究像CORBA这样的中间件(许多不同的代理可用,但我不建议使用它),来自ZeroC的ICE,来自Google的SOAP缓冲区,SOAP甚至RPC。使用一个或另一个有不同的优点和缺点,但我建议使用现有的中间件,而不是开发自己的中间件。您可以从这里middleware on wikipedia开始,然后根据您的需求决定哪一个更好。