多语言SDK访问

2022-04-19 13:59:38

支持JAVA, python,Ruby,Node.js,PHP,C++和C#/.NET等多种客户端接入方式,具体参考github社区文档。

以下JAVA连接示例:

Maven依赖

<dependency>

    <groupId>com.datastax.cassandra</groupId>

    <artifactId>cassandra-driver-core</artifactId>

    <version>3.7.2</version>

</dependency>

 

 

public class Demo {

 

public static void main(String[] args) {

 

        // 此处填写数据库连接点地址,控制台有几个就填几个。

        // 实际上SDK最终只会连上第一个可连接的连接点并建立控制连接,填写多个是为了防止单个节点挂掉导致无法连接数据库。

        // 此处无需关心连接点的顺序,因为SDK内部会先打乱连接点顺序避免不同客户端的控制连接总是连一个点。

        String[] contactPoints = new String[]{

                "ipaddress"

                // 填写ip地址

        };

        Cluster cluster = Cluster.builder()

                .addContactPoints(contactPoints)

                // 填写端口

                .withPort(port)

                // 填写账户名密码(如果忘记可以在用户管理处重置)

                .withAuthProvider(new PlainTextAuthProvider("cassandra", "cassandra"))

                 .build();

        // 初始化集群,此时会建立控制连接(这步可忽略,建立Session时候会自动调用)

        cluster.init();

        // 连接集群,会对每个Cassandra节点建立长连接池。

        // 所以这个操作非常重,不能每个请求创建一个Session。合理的应该是每个进程预先创建若干个。

        // 通常来说一个够用了,你也可以根据自己业务测试情况适当调整,比如把读写的Session分开管理等。

        Session session = cluster.connect();

        // 查询,此处我们查一下权限相关的表,看看我们创建了几个角色。

        // 这是系统表,默认只有cassandra这个superuser账户有SELECT权限。

        // 如果你使用其他帐号测试,可以换一个表或者授权一下。

        ResultSet res = session.execute("SELECT * FROM system_auth.roles");

        // ResultSet 实现了 Iterable 接口,我们直接将每行信息打印到控制台

        res.forEach(System.out::println);

        // 关闭Session

        session.close();

        // 关闭Cluster

        cluster.close();

    }

}