我最近开始为我们的Cassandra用例使用Datastax Java驱动程序…我们将使用Datastax Java驱动程序读取/写入Cassandra …

我成功地可以使用Datastax Java驱动程序创建Cassandra连接…但是我想知道,在生产环境中是否还有其他设置可以使用Datastax Java驱动程序在连接Cassandra时获得更好的性能?

/**
 * Creating Cassandra connection using Datastax driver
 *
 */
private DatastaxConnection() {

    try{
        builder = Cluster.builder();
        builder.addContactPoint("some-node");

        // Can anybody explain me what does below piece of code do?

        builder.poolingOptions().setCoreConnectionsPerHost(
                Hostdistance.LOCAL,builder.poolingOptions().getMaxConnectionsPerHost(Hostdistance.LOCAL));

        // And also what does below piece of code is doing?       
        cluster = builder
                .withRetryPolicy(DowngradingConsistencyRetryPolicy.INSTANCE)
                .withReconnectionPolicy(new ConstantReconnectionPolicy(100L))
                .build();

        StringBuilder s = new StringBuilder();
        Set<Host> allHosts = cluster.getMetadata().getAllHosts();
        for (Host h : allHosts) {
            s.append("[");
            s.append(h.getDatacenter());
            s.append("-");
            s.append(h.getRack());
            s.append("-");
            s.append(h.getAddress());
            s.append("]");
        }
        System.out.println("Cassandra Cluster: " + s.toString());

        session = cluster.connect("testdatastaxks");
    } catch (NoHostAvailableException e) {

    } catch (Exception e) {

    }
}

我的首要任务是:

>根据本地数据中心过滤掉Cassandra节点.因此,在连接池中,只有本地数据中心Cassandra节点.
>在使用Datastax java驱动程序时,可以获得最佳的性能,并具有一定的设置.

我知道某些设置可能会在不同的环境中有所不同,但是在使用Datastax Java驱动程序进行Cassandra连接时,可能需要遵循一些设置来获得最佳性能.

就像在Astyanax早期使用的一个例子,那就是你需要使用TOKEN_AWARE …

所以应该有一些最好的设置,或者推荐使用Datastax java驱动程序?

解决方法

Filter out the Cassandra nodes basis on local datacenter.. So in the connection pool it will only have local datacenter Cassandra nodes

那么你需要使用DCAwareRoundRobinPolicy.

Like for an example in Astyanax when I was using earlier,it was that you need to use TOKEN_AWARE…

对于DataStax Java驱动程序也是如此,它被称为TokenAwarePolicy,可以在上面引用的DCAwareRoundRobinPolicy之上使用.

I kNow it might be possible that certain settings will differ in different environment but there might be some settings that everybody has to follow to get the optimal performance while making the Cassandra connections using Datastax Java driver..

我不能说“每个人”,但是除了上述负载平衡策略的适当选择之外,其余的将最有可能是环境依赖的.但是,当然如果你关心性能,那么从Configuration和一些现实的工作负载播放各种设置是一个好主意,看看有没有帮助.

Cassandra Java驱动程序的最佳设置只能写入本地数据中心的更多相关文章

  1. 使用spring boot比较两个不同的数据库数据并显示不匹配的数据

    springboot程序,用于比较两个不同的数据库数据并获取不匹配的数据我只想要一个示例程序。

  2. 为Apache Cassandra使用DataTax C#驱动程序时无法连接到Scylladb KeySpace

    我已经在docker中创建了一个单节点ScyllaDB,它正在运行,下面是我的dockercompose命令:版本:“3”阅读“锡拉”的文档时,它建议为ApacheCassandra使用DataStaxC#驱动程序。按照基本的例子,我正在努力让它发挥作用。

  3. 将我的Azure应用程序部署到我的公司本地Windows Server

    我是WindowsAzure的新手,需要帮助将我的Azure应用程序(正确部署到Azure)部署到本地服务器.我的应用程序包含一个Web角色,其中包含Silverlight应用程序的Silverlight客户端.我在服务器上安装并配置了windowsserverappfabric,服务器实际上就绪了.但我不知道如何部署/发布应用程序.要部署到Azure,我使用右键单击Azure应用程序中的发布选项

  4. ubuntu – 首次启动Cassandra时出错

    我正在尝试在我的VPS上为学校项目设置一个单节点的Cassandra集群.所以我在Ubuntu16.04上安装了cassandra,但是当我运行时,我遇到了这个错误……

  5. 如何在ubuntu上重新安装Cassandra?

    我用OpenJdk在我的ubuntu机器上测试过Cassandra。有一些很好的文章来解释如何在ubuntu上安装Cassandra,所以我可以这样做。而且,我决定删除cassandra并重新安装以获得干净的。在我在Ubuntu10.04上安装的Cassandra1.1.6中,/etc/cassandra由root拥有,/var/lib/cassandra和/var/log/cassandra由cassandra用户和组拥有。此外,您应该使用init脚本启动cassandra,如下所示:而不是直接用sud

  6. 在Ubuntu上,Datastax Python cassandra驱动程序构建失败

    我试图在Ubuntu14.04.5上安装DatastaxPythonCassandra驱动程序.LTS.安装成功但后续尝试使用它失败并显示错误:相同的安装过程和相同的代码在RedHat上运行良好.谷歌搜索错误代码什么都不返回.任何人都知道可能是什么问题?这是这个问题的重复:cluster.cpython-34m.so:undefinedsymbol:PyException_Check我在那里回答了

  7. ubuntu – 无法连接到我的Cassandra

    正如其他人已经建议确保您的cassandra实例正在运行如果输出告诉您它正在运行,您可以检查它正在侦听的端口:您可以从第一个命令的输出中获取cassandra实例的进程ID.您有兴趣在此命令的输出中找到端口9160.您将从中了解它正在侦听的地址.如果由于某种原因您无法在侦听套接字列表中找到9160端口,那么您可能需要检查cassandra.yaml配置文件.您还可以在那里找到thrift绑定的地址来监听客户端.

  8. php – pecl install cassandra throws:“错误:无法加载libcassandra”

    你缺少cassandraC驱动程序.我在Ubuntu14.04上遇到了同样的问题.我做了以下工作,它对我有用:先决条件:下载以下包:使用dpkg按此顺序安装它们:你应该能够使用pecl安装cassandra.不要忘记将extension=cassandra.so添加到您的PHP.ini文件并重新启动PHP进程.基于您之前链接的讨论中的答案.

  9. php – 对于简单的操作,Cassandra比Mysql慢得多?

    我看到很多声明如下:“Cassandra写入速度非常快”,“Cassandra的读取速度比写入慢,但比MysqL快得多”在我的windows7系统上:我安装了默认配置的MysqL.我安装了PHP5的默认配置.我安装了默认配置的Casssandra.在MysqL上进行简单的写测试:“INSERTINTOwp_testVALUES”给我结果:0.0002适用于1000个刀片:0.1106在Cassandra上进行简单相同的写测试:$column_faily->insert给出结果:0.005适用于1000个插

  10. windows-server-2012 – 如何在数据中心的VMware vSphere中升级多个虚拟机操作系统?

    在我们的数据中心,我们有4台安装了ESXi5.5的物理服务器.在每台物理服务器上运行多个虚拟机,所有这些虚拟机均由VMwarevSphere管理.所有这些虚拟机都安装了WindowsServer2012.我想将所有虚拟机操作系统从Windows2012升级到WindowsServer2012R2.我想到的方法是:1-创建Windows2012R2模板,逐个导出和迁移虚拟机2-逐个进入虚拟机并升级它

随机推荐

  1. 基于EJB技术的商务预订系统的开发

    用EJB结构开发的应用程序是可伸缩的、事务型的、多用户安全的。总的来说,EJB是一个组件事务监控的标准服务器端的组件模型。基于EJB技术的系统结构模型EJB结构是一个服务端组件结构,是一个层次性结构,其结构模型如图1所示。图2:商务预订系统的构架EntityBean是为了现实世界的对象建造的模型,这些对象通常是数据库的一些持久记录。

  2. Java利用POI实现导入导出Excel表格

    这篇文章主要为大家详细介绍了Java利用POI实现导入导出Excel表格,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  3. Mybatis分页插件PageHelper手写实现示例

    这篇文章主要为大家介绍了Mybatis分页插件PageHelper手写实现示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

  4. (jsp/html)网页上嵌入播放器(常用播放器代码整理)

    网页上嵌入播放器,只要在HTML上添加以上代码就OK了,下面整理了一些常用的播放器代码,总有一款适合你,感兴趣的朋友可以参考下哈,希望对你有所帮助

  5. Java 阻塞队列BlockingQueue详解

    本文详细介绍了BlockingQueue家庭中的所有成员,包括他们各自的功能以及常见使用场景,通过实例代码介绍了Java 阻塞队列BlockingQueue的相关知识,需要的朋友可以参考下

  6. Java异常Exception详细讲解

    异常就是不正常,比如当我们身体出现了异常我们会根据身体情况选择喝开水、吃药、看病、等 异常处理方法。 java异常处理机制是我们java语言使用异常处理机制为程序提供了错误处理的能力,程序出现的错误,程序可以安全的退出,以保证程序正常的运行等

  7. Java Bean 作用域及它的几种类型介绍

    这篇文章主要介绍了Java Bean作用域及它的几种类型介绍,Spring框架作为一个管理Bean的IoC容器,那么Bean自然是Spring中的重要资源了,那Bean的作用域又是什么,接下来我们一起进入文章详细学习吧

  8. 面试突击之跨域问题的解决方案详解

    跨域问题本质是浏览器的一种保护机制,它的初衷是为了保证用户的安全,防止恶意网站窃取数据。那怎么解决这个问题呢?接下来我们一起来看

  9. Mybatis-Plus接口BaseMapper与Services使用详解

    这篇文章主要为大家介绍了Mybatis-Plus接口BaseMapper与Services使用详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

  10. mybatis-plus雪花算法增强idworker的实现

    今天聊聊在mybatis-plus中引入分布式ID生成框架idworker,进一步增强实现生成分布式唯一ID,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

返回
顶部