首页 > 解决方案 > 异步 cassandra 查询

问题描述

我一直在尝试更新应用程序以提高性能,它使用 Datastax Cassandra Java 驱动程序来提供 DAL 服务。

现在,我需要将同步查询转换为异步查询,我没有找到满意的答案(至少在我访问的网页上没有)。

任何人都可以回答以下问题或参考我可以获得答案的链接。

1> 在将同步执行更改为异步执行之前,我需要担心哪些可能的问题场景?

2> 读写行为如何,我可以更改其中一个而不担心任何问题吗?

提前致谢!

标签: asynchronouscassandracassandra-2.0datastax-java-driver

解决方案


您需要考虑几件事:

  • 您需要对代码进行速率限制 - 默认情况下,每个连接只有 1024 个请求,因此您可能需要增加此数量。但是即使每个连接的请求数量增加,Cassandra 很容易过载,所以你仍然需要控制它,像这样
  • 您需要正确处理错误 - 您可能需要将错误处理程序添加到返回的 Promise 中,并做出相应的反应;
  • 您需要正确创建语句 - 例如,不要重用相同BoundStatement的语句,因为它不是线程安全的;
  • 不要重复使用作为参数传递的相同 List/Set/Map 实例等。

推荐阅读