You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure托管Cassandra集群无公网IP,不同VM上的Java程序如何连接?

Azure 托管 Apache Cassandra 集群与 Java 程序 VM 的连通方案

网络配置要求

Azure Managed Instance for Apache Cassandra 无公网IP为默认设计,仅允许同VNet或对等VNet内的资源访问,你需要先完成网络对齐:

  • 若Java程序所在VM与Cassandra集群部署在同一区域的同一VNet,无需额外网络配置,可直接通信。
  • 若两者属于同一区域不同VNet、或跨区域部署,需要先配置VNet对等连接,确保两端VNet地址段无冲突,且对等连接开启双向流量通行权限。

通信使用的IP地址

直接使用集群节点分配的私有IP即可,你可以在集群配置页的节点列表中查到3个节点的全部私有IP,建议Java驱动配置时填写所有节点的私有IP,避免单节点故障导致连接失败。

Java 驱动配置注意事项

  • 集群默认开放9042端口用于CQL通信,你需要分别检查Java VM所属子网、Cassandra集群所属子网的NSG规则,放开9042端口的入站和出站流量。
  • 若你开启了集群TLS加密(默认开启),驱动配置中需要增加TLS相关参数,参考配置示例如下:
import com.datastax.oss.driver.api.core.CqlSession;
import java.net.InetSocketAddress;
import javax.net.ssl.SSLContext;

public class CassandraConnectTest {
    public static void main(String[] args) throws Exception {
        CqlSession session = CqlSession.builder()
            // 替换为你的三个节点私有IP
            .addContactPoint(new InetSocketAddress("10.x.x.1", 9042))
            .addContactPoint(new InetSocketAddress("10.x.x.2", 9042))
            .addContactPoint(new InetSocketAddress("10.x.x.3", 9042))
            // 替换为集群实际的数据中心名称,可在集群概览页查询
            .withLocalDatacenter("China East 2")
            // 替换为你创建集群时设置的管理员账号密码
            .withAuthCredentials("cassandra", "your_password")
            // 开启TLS适配
            .withSslContext(SSLContext.getDefault())
            .build();
        
        System.out.println("连接成功,集群版本:" + session.getContext().getMetadata().getCassandraVersion());
        session.close();
    }
}

集群配置界面参考

集群配置界面

内容的提问来源于stack exchange,提问作者Sumeet Kumar Yadav

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 02:54:06