cassandra连接峰值负载问题

edqdpe6u  于 2021-06-13  发布在  Cassandra
关注(0)|答案(1)|浏览(393)

我根据以下结构使用cassandra:21节点,aws ec2 i3.2xlarge,版本3.11.4。
应用程序使用datastaxjava连接驱动程序为每个节点打开大约5000个连接(因此每个集群有100k个连接)。应用程序正在使用自动缩放并经常打开/关闭连接。应用程序服务器一次打开的连接数最多可达每个节点500个(一次在所有节点上同时打开-因此它的10k连接在整个集群中同时打开)
这会导致cassandra上的负载峰值,并导致读写延迟。我注意到每次打开/关闭连接时,都会有大量的读取来自system\u auth.roles和system\u auth.role\u权限。
如何防止负载并解决此问题?

cwdobuhd

cwdobuhd1#

您需要修改应用程序以使用尽可能少的连接。你需要记住以下几点:
在启动时创建集群/会话对象一次,并将其保留。会话初始化是一个非常昂贵的操作,它会给cassandra和应用程序增加负载
您可以增加每个连接的同时请求数,而不是打开新连接。协议允许每个连接最多有32k个请求。尽管如此,如果你在飞行中有太多的请求,那么这表明你的cassandra不能适应工作负载,不能足够快地回答。请参阅有关连接池的文档

相关问题