Cassandra Datastax和Java—建立连接的最佳方法

Cassandra Datastax和Java—建立连接的最佳方法,java,cassandra,datastax,Java,Cassandra,Datastax,我正在研究从Java连接到Cassandra的最佳方法,并找到了大量的示例。我正在本地主机上做一些聊天应用程序(允许创建新消息、更新消息或删除消息),但我也想研究最佳实践。有人能帮我选择一个最好的解决方案吗 第一个示例是Spark 1.6: public static JavaSparkContext getCassandraConnector(){ SparkConf conf = new SparkConf(); conf.setAppName("Chat

我正在研究从Java连接到Cassandra的最佳方法,并找到了大量的示例。我正在本地主机上做一些聊天应用程序(允许创建新消息、更新消息或删除消息),但我也想研究最佳实践。有人能帮我选择一个最好的解决方案吗

第一个示例是Spark 1.6:

public static JavaSparkContext getCassandraConnector(){
         SparkConf conf = new SparkConf();
         conf.setAppName("Chat");
         conf.set("spark.driver.allowMultipleContexts", "true");
         conf.set("spark.cassandra.connection.host", "127.0.0.1");
         conf.set("spark.rpc.netty.dispatcher.numThreads","2");
         conf.setMaster("local[2]");

         JavaSparkContext sc = new JavaSparkContext(conf);
         return sc;
    }
因此,我还得到了Spark 2.x的一个示例,其中构建器将自动重用现有的SparkContext(如果存在),并创建一个SparkContext(如果不存在)。构建器中设置的配置选项在I/O期间自动传播到Spark和Hadoop

public static SparkSession getSparkSession(){
    SparkSession sparkSession = SparkSession
        .builder()
        .appName("Chat")
        .config("spark.driver.allowMultipleContexts","true")
        .config("spark.sql.warehouse.dir", "/file:C:/temp")
        .config("spark.cassandra.connection.host", "127.0.0.1")
        .config("spark.cassandra.connection.port", "9042")
        .master("local[2]")
        .getOrCreate();
    return sparkSession;
}
我还研究了池选项,但找到了一个会话示例,如:

public static Session getPoolSession(){
    PoolingOptions poolingOptions = new PoolingOptions();
    poolingOptions
    .setCoreConnectionsPerHost(HostDistance.LOCAL,  4)
    .setMaxConnectionsPerHost( HostDistance.LOCAL, 10)
    .setMaxRequestsPerConnection(HostDistance.LOCAL, 32768)
    .setMaxRequestsPerConnection(HostDistance.REMOTE, 2000)
    .setHeartbeatIntervalSeconds(120);

    Cluster cluster = Cluster.builder()
        .addContactPoints("127.0.0.1")
        .withPoolingOptions(poolingOptions)
        .build();

    Session session = cluster.connect("chat");
    return session;
    }
所以我想知道,建立连接最有效的方法是什么(我还要执行单语句和PreparedStatements)。我认为Spark 1.6的第一种方式不如2.x好,但是2.x的池选项示例如何(我不确定SparkSession是否已经包含了这个选项)?
我找到了相关的问题,但没有足够的信息告诉我:

您是在尝试使用spark连接到cassandra,还是仅使用java连接到cassandra

Spark大部分时间用于分析工作流,单个insert/update语句不是它的用例

我建议使用常规datastax java驱动程序:

正如池选项问题中所回答的,您不需要触摸这些参数,默认值应该可以完成这项工作。以下是对其工作原理的解释:


@nervsv我得到了一个REST应用程序JS-Java-Cassandra DB。我正在研究在Java和Cassandra之间建立连接的最佳方法(获取消息、发布消息等)