我目前正在使用CassFuture回调未来来实现处理Cassandra查询的异步模式。似乎所有的回调都在同一个线程上。这是预期的行为吗?
答案 0 :(得分:2)
假设您使用的是当前版本的驱动程序(v2.9.0),则在创建会话之前通过cass_cluster_set_num_threads_io()配置线程数,默认为 1 。如果增加群集配置中的IO线程数,您会注意到 CassFuture 回调将开始显示在不同的线程上。
注意:如果您的回调很慢,请考虑在单独的线程上运行;否则回调可能会阻止在回调/ IO线程上执行的其他请求的IO操作。另一个建议是不要使用硬件配置中可用的完整核心/虚拟核心数,因为这可能会使客户端应用程序(以及可能来自OS服务)的资源匮乏。