如何显示通过哪个cassandra节点处理了您的请求

时间:2019-04-23 16:51:03

标签: spring-boot docker cassandra

为什么?

出于教育目的。我认为让观众真正“看到”这样的效果真的很好。

设置

  • Docker化的Spring boot REST API(提供客户信息)
  • 一个由Docker连接的Cassandra集群,该集群由三个连接的节点组成,其中包含复制因子为2的客户数据。

建议

  • 显示哪个IP地址或容器名称满足了我的请求
  • 显示哪个IP地址或容器名称保存了用于显示我的请求的数据。
  • 如果我要在三台单独的物理计算机上运行这些节点,也许是哪台计算机保存了我的数据?
  • 您有其他想法可以真正显示Cassandra的分布式功能

这可以在docker日志中或我不知道的Spring数据Cassandra中实现吗?

1 个答案:

答案 0 :(得分:2)

我不了解Spring Data,但是在普通的Java驱动程序中,您可以通过ResultSetgetExecutionInfo获取执行信息,并从中调用函数getQueriedHost。如果您使用默认的DCAware / TokenAware负载平衡策略,那么您将至少到达保存数据的节点之一。您可以通过Metadata类获取其余信息,从中可以获取主机拥有的令牌范围的列表,为分区键生成令牌以及在令牌范围中查找。

P.S。有关更多详细信息,请参见Java driver documentation