我们一直在使用Datastax Python驱动程序连接到Cassandra。不幸的是,虽然我们使用较新版本的Cassandra(它同时监听端口9160和9042)执行了我们的测试,但我们的部署实例更老,只能侦听9160。 当前版本的驱动程序(我们正在使用)使用CQL协议 - 监听9042的守护程序。
有没有办法使用数据传输驱动程序使用Thrift协议进行通信?是降级到早期版本(假设较旧的Datastax驱动程序使用Thrift协议)是一个好主意吗?
感谢任何帮助,谢谢!
答案 0 :(得分:1)
数据存储驱动程序仅支持CQL本机协议接口,因为thrift被视为已弃用。你可以在节俭中做CQL,但是我会劝阻你,因为你将在两个世界中表现最差。本地传输(9042)被优化为在单个连接上具有许多正在进行的请求,而thrift(9160)是每个连接请求。与存储模型发生变化时的C * 3.0相比,CQL与节约数据模型相比会产生少量的开销,但是使用原生传输可以弥补其不足之处。
我建议考虑在已部署的群集上打开本机协议接口(如果它应该是可行的C * 1.2+),或者如果它不支持CQL 3则进行升级。我建议不要使用节俭来开发新的解决方案,因为cassandra正在远离它。如果您陷入节俭,我建议您查看pycassa。