gpt4 book ai didi

java - 如何在分布式 vert.x EventBus 上使用 SSL?

转载 作者:行者123 更新时间:2023-11-30 10:37:02 24 4
gpt4 key购买 nike

但是,我无法让它为我工作:

设置:

工作:

  • 在一台机器上部署,无集群,启用 SSL
  • 在两台机器上部署,Hazelcast 集群,禁用 SSL

失败:

  • 在两台机器上部署,Hazelcast 集群,启用 SSL(从远程 Verticle 发送/接收消息无提示地失败)

记录消息:

  • 尝试发布/发送时:“调试:集群连接关闭:localhost:44035 holder io.vertx.core.eventbus.impl.clustered.ConnectionHolder@b80002b”

我尝试使用不同的 key /证书、 keystore + 受信任的 keystore 、启用/禁用客户端身份验证要求。到目前为止没有任何效果。

问题:

  1. 如何从 Netty/EventBus-Impl/Hazelcast 获取更多日志消息?
  2. 知道集群 + SSL 可能会出现什么问题吗?

最佳答案

我尝试在两台机器上执行 SSL 事件总线示例,在我的例子中,由于 Hazelcast 无法在启动时建立集群(所以每个 hazelcast 实例都是它自己的单节点集群)而失败了。一旦我解决了这个问题,这个例子就完美无缺地工作了。 Vertx-hazelcast 文档有一个关于 troubleshooting clustering 的相关部分.

在我的案例中,Hazelcast 无法形成集群的原因是默认的 Hazelcast 配置(在 $VERTX_HOME/conf/default-cluster.xml 中)将 Hazelcast 配置为多播发现;这在 OSX 上默认是禁用的(家庭路由器禁用多播流量也很常见)。我复制了$VERTX_HOME/conf/default-cluster.xml到我的工作目录,然后更改 <multicast><tcp-ip>配置部分如下:

  <multicast enabled="false"> <!-- was originally true -->
<multicast-group>224.2.2.3</multicast-group>
<multicast-port>54327</multicast-port>
</multicast>
<tcp-ip enabled="true"> <!-- this one was false -->
<!-- list your cluster machines IPs including the current one in member elements -->
<member>192.168.2.1</member>
<member>192.168.2.2</member>
</tcp-ip>

复制 cluster.xml在两台机器上,然后从放置 cluster.xml 的目录启动 vertx为了让 vertx 获取它(我在 javascript 示例源目录中这样做,所以我在每台机器上执行了 vertx run receiver.js -cluster/vertx run sender.js -cluster)并且它起作用了。

Vertx-hazelcast module documentation还提供了有关配置日志记录、使用 hazelcast XML 配置位置配置 vertx 以及选择要绑定(bind)到的集群主机地址的说明(在您有多个网络接口(interface)的情况下很有用)。

关于java - 如何在分布式 vert.x EventBus 上使用 SSL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40284057/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com