• Java连接Cassandra


    1.Cassandra驱动选择
       maven依赖配置pom.xml

    <dependency>
        <groupId>com.datastax.cassandra</groupId>
        <artifactId>cassandra-driver-core</artifactId>
        <version>3.1.2</version>
    </dependency>

    2.单节点连接和集群连接代码

    package weixuan.space.cassnadra;
    
    import com.datastax.driver.core.*;
    import com.datastax.driver.core.policies.ConstantReconnectionPolicy;
    import com.datastax.driver.core.policies.DowngradingConsistencyRetryPolicy;
    
    import java.net.InetSocketAddress;
    
    /**
     * Created by geweixuan on 2018/12/5.
     */
    public class ConnectTest {
    
        /**
         * 指定连接node
         */
        public static void connectToNode() {
            Cluster cluster = Cluster.builder().addContactPoint("127.0.0.1").withPort(9042).build();
            //获取并输出相关的集群信息
            Metadata metadata = cluster.getMetadata();
            //getAllHosts() 获取所有节点连接的信息
            for (Host host : metadata.getAllHosts()) {
                System.out.println("------" + host.getAddress());
            }
            //Metadata原数据对象 输出键空间
            for (KeyspaceMetadata keyspaceMetadata : metadata.getKeyspaces()) {
                System.out.println("--------" + keyspaceMetadata.getName());
            }
            //关闭进程
            cluster.close();
            System.out.println("connectToNode go to end");
        }
    
        /**
         * 连接至集群
         * Cluster 四种Retry重试策略:(对数据库的操作失败后的重试)
         * 1.DefaultRetryPolicy 没有查询到数据,或者写入时超时的情况下进行重新查询
         * 2.DowngradingConsistencyRetryPolicy 与DefaultRetryPolicy一样,不同点是考虑了最终数据一致性问题
         * 3.FallthroughRetryPolicy 这一策略不重试查询,但允许客户端业务逻辑实现重试
         * 4.LoggingRetryPolicy 不重试查询,用来记录日志信息,info级别
         *
         * Cluster 两种节点重连策略:(节点连接不上重新连接)
         * 1.ConstantReconnectionPolicy 固定时间间隔进行重连
         * 2.ExponentialReconnectionPolicy 指数级别增加重连时间,但不会超过最大重连时间
         */
        public static void connectToCluster() {
            Cluster cluster = Cluster.builder()
                    .addContactPointsWithPorts(new InetSocketAddress("127.0.0.1", 9042))
                    .addContactPointsWithPorts(new InetSocketAddress("127.0.0.2", 9042))
                    .withRetryPolicy(DowngradingConsistencyRetryPolicy.INSTANCE)
                    .withReconnectionPolicy(new ConstantReconnectionPolicy(100L))
                    .build();
            cluster.getConfiguration().getProtocolOptions().setCompression(ProtocolOptions.Compression.LZ4);
            cluster.close();
            System.out.println("connectToCluster go to end");
        }
    
        public static void main(String[] args) {
            connectToNode();
            connectToCluster();
        }
    }

    通过获取到的cluster即可获取session,然后进行相关的数据库操作。

    转载于:https://blog.csdn.net/qq_23966225/article/details/84812663

  • 相关阅读:
    for else 使用方法
    random 模块常用方法总结
    CPU使用率高,top等命令查找不到使用CPU高的进程怎么办
    查看CPU核数方法
    PyCharm安装第三方库如Requests
    python-login
    Edit Distance
    redhat nginx随机启动脚本
    vue-cli脚手架build目录中的webpack.base.conf.js配置文件
    vue-cli脚手架build目录下utils.js工具配置文件详解
  • 原文地址:https://www.cnblogs.com/it-deepinmind/p/14549698.html
Copyright © 2020-2023  润新知