在 AWS EC2 上,我已将 cassandra.yaml 文件更新为:
listen_address: <private_ip>
broadcast_address: <public_ip>
listen_on_broadcast_address: true
rpc_address: <private_ip>
seeds: <public_ip>
将每个参数设置为
failed to bind to <public_ip>
failed: cannot assign requested address
我什至尝试保持listen_address与种子相同;由于该节点是种子节点,但错误仍然存在。应该怎么做才能让 cassandra 也能与公共 IP 一起工作?
(目前是单节点,但是设置一下可以兼容多节点部署)
您发布的错误表明您配置了错误的公共IP地址,因此EC2实例无法与其绑定任何服务。
对于它的价值,您需要按如下方式配置 Cassandra:
listen_address: private_ip
rpc_address: public_ip
并为
- seeds:
列表使用公共 IP。
如果您要设置多区域部署,您还需要设置:
broadcast_address: public_ip
因此节点可以在公共 IP 上与远程节点(在另一个区域中)通信,同时在与同一区域中的节点通信时恢复到私有 IP。
如果您需要指导,请参阅有关使用 IPv4 地址的 AWS 文档来查找 EC2 实例的公共 IP。干杯!