【问题标题】:Vertx with ZeroMq architecture具有 ZeroMq 架构的 Vertx
【发布时间】:2018-12-27 19:42:35
【问题描述】:

我有两个应用程序在同一台服务器上运行。一个是 C++ 应用程序,另一个是运行在 vertx 之上的 Java Web 服务器。网络服务器想要向 C++ 部分发送请求并获得响应。 ZeroMq 似乎是一个执行进程间通信的解决方案。它存在一个通往 vertx (https://github.com/dano/vertx-zeromq) 的桥梁,但没有这么好的文档。

我想知道我认为可以用这座桥做什么:

  • C++ zeroMq 套接字类型是一个处理程序,它通过发送包含处理程序地址的适当消息来注册到事件总线。
  • Webserver 将数据发送到套接字事件总线处理程序地址并在其回调中获得响应。

它有机会工作还是我误解了 zeroMq 桥?

【问题讨论】:

  • 如果 ZeroMQ 不是一个强要求,你可以使用 TCP EventBus bridge 让你的 C++ 应用程序与 Vert.x 通信
  • 此时 ZeroMq 是项目中的架构约束。我还看到一个 C++ 客户端可用:github.com/julien3/vertxbuspp(引擎盖下的 websocket)。 Tcp 事件总线桥将更有效率,不是吗? ZeroMq 描述的方法在我的 poc 中有效。
  • 如果您在数据中心内工作,那么您可能可以避免使用 websocket,是的,它应该更有效。

标签: zeromq vert.x


【解决方案1】:

这听起来对我来说是正确的,但您不需要 ZeroMQ - 您可以使用常规 TCP - https://vertx.io/docs/vertx-tcp-eventbus-bridge/java/ 并且具有良好的文档和支持。

我目前正在研究在我的项目中使用 ZeroMQ 的好处,并怀疑它对于更复杂的拓扑结构很有用,例如“在不知道谁想要它的情况下广播事件(不需要处理程序注册)”,但 Vertx 没有就我所见,不支持这一点。

【讨论】:

  • ZeroMq 在我的情况下是强制性的。但正如你所说的一般用例坚持 TCP:jeromq lib 维护不善,性能大致相同(在我们的例子中,zmq 有一些小优势)
猜你喜欢
  • 1970-01-01
  • 2013-01-23
  • 2016-03-09
  • 1970-01-01
  • 1970-01-01
  • 2019-02-11
  • 2016-07-07
  • 2011-03-18
  • 2016-11-05
相关资源
最近更新 更多