【问题标题】:RPC Framework in C++ utilizing ZeroMQ使用 ZeroMQ 的 C++ RPC 框架
【发布时间】:2013-01-27 15:02:38
【问题描述】:

我需要使用 ZeroMQ 推挽式套接字模式在 C++ 中编写客户端-服务器应用程序。客户端必须对服务器接口中指定的函数进行 RPC 调用。我想知道是否有一个主要在 C++ 中用于此目的的开源和商业可用的库/框架。我做了一些谷歌搜索,似乎有些东西是用 python 编写的,但如果可能的话,我更喜欢用 ZeroMQ 提供的 C++ 中的东西。任何建议/指导表示赞赏。谢谢。

【问题讨论】:

  • 你检查过 google protobuf 吗?这里还有一些关于您的问题的更多信息:stackoverflow.com/questions/10505764/…
  • 还要考虑一下,如果 PUSH-PULL 是 RPC 实现的最佳消息传递模式(因为我认为它不必要地限制了可伸缩性)。结合 ROUTER-DEALER 的 REQ-REP 模式可能是更好的选择。看看 ZeroMQ 指南,我很确定你会找到 s.th。更合适...

标签: c++ client-server rpc zeromq


【解决方案1】:

Google protobuf 提供为 C++ 中可用的 RPC services 生成客户端方法包装器和存根。

用户必须明确定义用于此的传输机制,ZeroMQ 将是实现恕我直言的合适选择(所以这是您所要求的另一种方式,但最终没有区别)。

还有一个 SO 问题提供了有关可用替代方案的更多详细信息:'Which rpc/messaging framework would best fit this case?'

【讨论】:

    【解决方案2】:

    Thrift RPC 框架与作为传输的 ZeroMQ REQ/REP 套接字配合得很好。 Thrift 源代码库包含一个 C++ 示例,其中包含几个可重用的类:https://git-wip-us.apache.org/repos/asf?p=thrift.git;a=tree;f=contrib/zeromq;h=14bbc6f51dae649b423f9157c08abac27157d416;hb=HEAD

    最近我启动了 ThriftZMQ 开源项目,目标是为不同语言的 Thrift 实现可互操作的 ZeroMQ 传输。但是,目前它只有 Java 实现:https://github.com/thriftzmq

    【讨论】:

      猜你喜欢
      • 2011-04-07
      • 1970-01-01
      • 2011-09-23
      • 1970-01-01
      • 2013-08-27
      • 2010-12-26
      • 1970-01-01
      • 1970-01-01
      • 2013-04-04
      相关资源
      最近更新 更多