c# - 可以将 Cassandra 配置为同时使用内部和公共(public) IP 地址吗?

标签 c# cassandra google-compute-engine

我正在尝试在 Google Compute Engine 上配置 Cassandra,使集群的节点使用本地网络(使用它们的内部 IP 地址)直接相互通信,并且集群外部的客户端可以也与每个节点对话。

到目前为止,我已经根据这些说明使用内部 IP 地址使用 DataStax OpsCenter 创建了一个集群: https://academy.datastax.com/demos/datastax-enterprise-deployment-guide-google-compute-engine 然后,当我使用包含所有公共(public) IP 地址的连接字符串使用 DataStax C# 驱动程序进行连接并检索节点列表时,我得到一个包含一个公共(public) IP 地址和其余内部 IP 地址的列表。这意味着驱动程序将只能连接到一个节点。

我猜这是不可能的,应该由司机妥善处理。但此时最好通过(简单)更改 Cassandra 配置来解决问题。

我使用的是 OpsCenter 5.2.1,Cassandra 版本 2.1.9.791。

最佳答案

在 Cassandra 级别,您可以设置 broadcast_address .

在驱动级别你可以创建一个address translator policy ,但您必须维护一个“私有(private) vs 公共(public) ip”地址字典。

关于c# - 可以将 Cassandra 配置为同时使用内部和公共(public) IP 地址吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33389045/

相关文章:

amazon-web-services - AWS 多区域 VPC 中的 Cassandra 集群

google-cloud-platform - gcloud compute ssh 停止

c# - 将空值绑定(bind)到 wpf 控件的宽度和高度时出现绑定(bind)错误

c# - 外键导航属性命名约定替代方案

java - 在 linux 中设置 java_home 和 path 环境变量

Cassandra 从 2.2.1 升级到 3.0.0 失败并出现 NullPointerException

google-compute-engine - 如何知道机器是否是 Google Compute Engine 实例

docker - 无法从 Google Compute Engine 访问 Google Container Registry

c# - 模拟在 ASP.NET MVC 中工作吗

c# - 响应中缺少 header 'Sec-WebSocket-Protocol'