cassandra连接峰值负载问题

问题描述 投票:0回答:1

我根据以下结构使用cassandra:21个节点,AWS EC2 i3.2xlarge,版本3.11.4。

该应用程序正在使用datastax java连接驱动程序打开每个节点大约5000个连接(因此每个群集打开100k连接)。应用程序正在使用自动缩放,并经常打开/关闭连接。应用程序服务器一次打开的连接数最多可以达到每个节点500个(一次在所有节点上同时打开-因此其10k连接在整个群集中同时打开)

这将导致cassandra上的负载峰值,并导致读写延迟。我注意到每次连接打开/关闭时,都会从system_auth.roles和system_auth.role_permissions中读取大量内容。

如何防止负载并解决此问题?

cassandra connection load latency
1个回答
0
投票

您需要修改您的应用程序以使用尽可能少的连接。您需要牢记以下几点:

  • 创建群集/会话对象,请在启动后保留一次。会话的初始化是非常昂贵的操作,它会给Cassandra和您的应用程序增加负担]
  • 您可以增加每个连接的同时请求数,而不是打开新的连接。协议允许每个连接最多32k请求。虽然,如果您在进行中的请求过多,则表明您的Cassandra不能承受工作量,也无法足够快地回答。参见documentation on connection pooling
© www.soinside.com 2019 - 2024. All rights reserved.