我们的情况是,我们需要 Cassandra 节点可以从外部 IP 访问,但是没有与该 IP 的接口;到该 IP 的流量被 NAT 到节点。根据 DataStax 的文档,我们已将 listen_address 设置为内部 IP,将 broadcast_address 设置为外部 IP。节点能够相互连接并成功通信;除了我们启用搜索的节点外,一切都很顺利。在这些节点上,当 Solr 容器被激活时,我们得到:
java.io.IOError: java.net.BindException: Cannot assign requested address
at com.datastax.bdp.plugin.SolrContainerPlugin.onActivate(SolrContainerPlugin.java:190) ~[dse.jar:4.7.2]
at com.datastax.bdp.plugin.PluginManager.initialize(PluginManager.java:356) ~[dse.jar:4.7.2]
at com.datastax.bdp.plugin.PluginManager.activateDirect(PluginManager.java:285) ~[dse.jar:4.7.2]
at com.datastax.bdp.plugin.PluginManager.activate(PluginManager.java:159) ~[dse.jar:4.7.2]
at com.datastax.bdp.plugin.PluginManager.preStart(PluginManager.java:85) ~[dse.jar:4.7.2]
at com.datastax.bdp.server.DseDaemon.preStart(DseDaemon.java:375) ~[dse.jar:4.7.2]
at com.datastax.bdp.server.DseDaemon.start(DseDaemon.java:345) ~[dse.jar:4.7.2]
at org.apache.cassandra.service.CassandraDaemon.activate(CassandraDaemon.java:537) [cassandra-all-2.1.8.621.jar:2.1.8.621]
at com.datastax.bdp.DseModule.main(DseModule.java:75) [dse.jar:4.7.2]
测试不同的配置似乎表明 Netty 正在尝试监听广播地址。我们如何配置它以执行其他操作?dse.yaml 公开了一个更改端口的选项,但不是更改主机的选项。
非常感谢您的帮助。