如果在kubernetes中重新启动所有pod而不重新启动客户端应用程序,cassandra驱动程序如何更新contactpoints?

i2byvkas  于 2021-06-13  发布在  Cassandra
关注(0)|答案(1)|浏览(340)

我们创建了一个statefulset&headless服务。有两种方法可以定义应用程序中的对等IP:
在contactpoints中使用“cassandra headless service name”
从headless服务获取对等ip&外部化对等ip并在初始化连接时读取这些ip。到现在为止,一直都还不错。如果重启一个/一些pod,而不是全部,上述方法将起作用。在这种情况下,驱动程序将自动更新新的IP。
但是,在完全停机的情况下,这将如何工作?如果所有pods都关闭了&当它们返回时,如果所有pods的ip都改变了(kubernetes中的ip可以改变),应用程序将如何连接到cassandra?

2exbekwf

2exbekwf1#

在完全中断的情况下,您是对的,应用程序将没有集群的任何有效端点。在应用程序连接到cassandra之前,需要刷新这些内容(并重启应用程序)。
我们实际上编写了一个restfulapi,可以通过集群查询当前有效的端点。这样,应用程序团队就可以随时找到集群的当前IP。我建议做类似的事情。

相关问题