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

标签 spring-boot docker cassandra

为什么?

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

设置

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

  • 建议
  • 显示服务于我的请求的IP地址或容器名称
  • 显示哪个IP地址或容器名称保存了用于显示我的请求的数据。
  • 如果要在三台单独的物理计算机上运行这些节点,也许哪台计算机可以保存我的数据?
  • 您需要牢记的其他内容确实显示了Cassandra
  • 的分布式功能

    是否可以在docker日志中或我不知道的Spring数据Cassandra中的某些内容中实现?

    最佳答案

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

    附言有关更多详细信息,请参见Java driver documentation

    关于spring-boot - 如何显示通过哪个cassandra节点处理您的请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55815975/

    相关文章:

    java - Springboot/Thymeleaf : Links on html-template cannot be parsed

    docker - Kubernetes:使用 kubeadm 构建集群后,节点/Pod 未与 kubectl 一起显示

    docker - 将 dockerfile 与 Jenkins 脚本化流水线语法一起使用

    cassandra - 是否可以将 key 空间部分分配给另一个 DC?

    python - 将 Cassandra 数据加载到 Titan/Neo4J 中

    transactions - 使用轻量级事务的含义是什么?

    java - 如何调试 @Scheduled spring boot 方法或服务方法?

    spring-boot - 我在使用 springboot 3.0.0 时遇到问题,它无法识别我的 Eureka 服务器和客户端

    mysql - 如何在Spring boot中使用ST_CONTAINS?

    docker-compose 等效于 docker run 参数,例如 compose 文件中的 "--foo bar"?