Estamos em uma situação em que precisamos que os nós do Cassandra sejam acessíveis a partir de um IP externo, mas não há interface com esse IP; o tráfego para esse IP é NATted para o nó. De acordo com a documentação do DataStax, definimos listen_address para o IP interno e broadcast_address para o IP externo. Os nós são capazes de se conectar uns aos outros e fofocar com sucesso; tudo está bem, exceto em nossos nós habilitados para pesquisa. Nesses nós, quando o contêiner Solr é ativado, obtemos:
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]
Testar configurações diferentes parece indicar que o Netty está tentando escutar no broadcast_address. Como podemos configurá-lo para fazer o contrário? O dse.yaml expõe uma opção para alterar a porta, mas não o host.
Muito obrigado pela sua ajuda.