将 Thrift 协议与 Datastax Python 驱动程序一起使用

Using Thrift protocol with the Datastax Python driver

我们一直在使用 Datastax Python 驱动程序连接到 Cassandra。不幸的是,虽然我们使用较新版本的 Cassandra 执行测试(它同时侦听端口 9160 和 9042),但我们的部署实例要旧得多并且仅侦听 9160。 当前版本的驱动程序(我们正在使用)使用 CQL 协议 - 监听 9042 的守护进程。

有没有办法让 Datastax 驱动程序使用 Thrift 协议进行通信?降级到早期版本(假设旧的 Datastax 驱动程序使用 Thrift 协议)是个好主意吗?

感谢任何帮助,谢谢!

datastax 驱动程序在设计上仅支持 CQL 本机协议接口,因为 thrift 被认为已弃用。你 可以 做 CQL 而不是节俭,但我不鼓励这样做,因为你将在两全其美的性能方面得到最坏的结果。本机传输 (9042) 被优化为在单个连接上有许多正在进行的请求,而节俭 (9160) 是每个连接的请求。与 thrift 数据模型相比,CQL 会有少量开销,直到 C* 3.0 存储模型发生变化时,但通过使用本机传输可以弥补这一缺点。

我建议的是考虑在您部署的集群上打开本机协议接口(如果它是 C* 1.2+ 这应该是可行的),或者如果它不支持 CQL 3 则升级。我不建议使用 thrift 开发新的解决方案,因为 cassandra 正在远离它。如果您坚持节俭,我建议您查看 pycassa.