【发布时间】:2014-08-27 16:44:57
【问题描述】:
我需要在分布式系统中构建自定义通信协议。各个节点上的逻辑是用 C++ 实现的。
在我过去的经验中,当我不得不用 Java 做这件事时,我依赖于 Netty。 C++ 中是否有类似的框架/库允许我实现自己的自定义协议?
我简短地看了ZeroMQ。但是,在我发现的文档中似乎过分强调使用预定义的模式,例如 REQ/REP、PUB strong>/SUB 等 ZeroMQ 上是否有更基础的层 不会强迫我使用这些模式,但仍然提供是否有足够的支持来实现自定义通信协议?
如果有其他更适合的库(听说过Boost.Asio),那么也欢迎。
【问题讨论】:
-
Asio 很棒,但是它运行在套接字层,它没有实现更高级别的协议。如果你没问题,试试 Asio。
-
不是适合您的解决方案,但您提到的模式是 ZMQ 的基础层,您可以使用这些工具构建您想要的通信模式......实际上完成此类任务的一种非常强大的方法,但您必须理解并接受它,如果您已经拥有需要更基本方法的架构,那么它可能不适合您。
-
nanomsg 具有用于编写协议的紧凑接口。我为我的需要编写了 PUB/SUB 和 BUS 的融合。您可以阅读详情here。
标签: c++ networking boost netty zeromq