我在 linux 系统上使用 cassandradb 和 datastax python 驱动程序。通常在使用其他数据库时,我发现在与 unix 兼容的系统上,通常有一种方法可以通过 unix 套接字建立与数据库的连接,而不是使用环回接口。通过套接字连接,您可以完全绕过操作系统网络堆栈,结果通常是更好的性能。
我很确定 cassandra 支持这一点,至少因为cassandra pip 包UnixSocketEndPoint
的模块中有一个类。cassandra.connection
这个类是在 github repo 中实现的,但是没有任何关于如何使用它的文档。有人用这个吗?如何使用 python API 配置与 cassandra 的 unix-socket 连接?
我设法从github 上的 cassandra python 驱动程序测试中找到了以下代码片段:
lbp = UnixSocketWhiteListRoundRobinPolicy([UNIX_SOCKET_PATH])
ep = ExecutionProfile(load_balancing_policy=lbp)
endpoint = UnixSocketEndPoint(UNIX_SOCKET_PATH)
cls.cluster = TestCluster(contact_points=[endpoint], execution_profiles={EXEC_PROFILE_DEFAULT: ep})
这实际上是我正在寻找的大部分内容。我只是对如何将 cassandra 配置为通过套接字而不是 TCP 进行侦听感到困惑。还是 cassandra 有默认的套接字路径?
提前谢谢了。