当前位置: 首页 > 知识库问答 >
问题:

哈泽尔卡斯特在注入istio特使后的问题

方增
2023-03-14

启用istio后,我与hazelcast有问题,我想知道如何解决这个问题。

我有K8s群集,最近安装了istio。在尝试将特使添加到hazelcast部署时,我遇到了一个wierd问题,在滚动升级html" target="_blank">过程中出现了许多连接错误。我应该提到的是,最终部署是正常的,但这个错误表明出了问题。

我注意到,如果没有特使,当我进行滚动升级到部署时,我会看到以下情况:

[10.16.17.72]:5701 [dev] [4.0.1] Initialized new cluster connection between /10.16.17.72:45025 and /10.16.5.8:5701
[10.16.5.8]:5701 [dev] [4.0.1] Initialized new cluster connection between /10.16.5.8:5701 and /10.16.17.72:45025

[10.16.17.72]:5701 [dev] [4.0.1] Connection[id=1, /10.16.17.72:45025->/10.16.5.8:5701, qualifier=null, endpoint=[10.16.5.8]:5701, alive=false, connectionType=MEMBER] closed. Reason: Connection closed by the other side
[10.16.17.72]:5701 [dev] [4.0.1] Could not connect to: /10.16.5.8:5701. Reason: SocketException[Connection refused to address /10.16.5.8:5701]
......
[10.16.17.72]:5701 [dev] [4.0.1] Removing connection to endpoint [10.16.5.8]:5701 Cause => java.net.SocketException {Connection refused to address /10.16.5.8:5701}, Error-Count: 5
[10.16.17.72]:5701 [dev] [4.0.1] Member [10.16.5.8]:5701 - 945ec2c8-fc56-4624-aab3-de9823d4886a is suspected to be dead for reason: No connection

这里发生的是:

  • 新吊舱启动并加入集群。
  • 连接初始化old-pod: 5701到new-pod: xxx(2个方向)
  • new pod抱怨它无法到达旧pod(ConnectionType=MEMBER),并且在5次尝试后将其视为死亡并将其从群集中删除
  • 滚动升级完成后,旧吊舱被移除。

现在,当我在注射特使时也这样做,所以我在这个吊舱部署中有2个容器时,我注意到以下情况:

[10.16.3.244]:5701 [dev] [4.0.1] Initialized new cluster connection between /10.16.3.244:5701 and **/127.0.0.6:48287**
[10.16.5.16]:5701 [dev] [4.0.1] Initialized new cluster connection between /10.16.5.16:59827 and /10.16.3.244:5701

[10.16.5.16]:5701 [dev] [4.0.1] Connection[id=1, /10.16.5.16:59827->/10.16.3.244:5701, qualifier=null, endpoint=[10.16.3.244]:5701, alive=false, connectionType=MEMBER] closed. Reason: Connection closed by the other side

但后来我收到了无数这样的信息:

[10.16.5.16]:5701 [dev] [4.0.1] Connection[id=2, /10.16.5.16:33659->/10.16.3.244:5701, qualifier=null, endpoint=[10.16.3.244]:5701, alive=false, connectionType=NONE] closed. Reason: Connection closed by the other side

第一个“连接关闭”消息是MEMBER类型,并且与我们在初始化消息中提到的连接相同(10.16.5.16:59827-

但是其余的消息是从10.16.5.16上的随机端口发送到旧pod。我假设这是因为init消息表明,/10.16.3.244:5701和**/127.0.0.6:48287**之间的新群集连接已初始化。它将连接配置为错误的主机:端口,而不是10.16.5.16:59827。

滚动升级完成了相同的操作,但日志中充满了来自该类型的数百万条消息。

我复制了同样的,也看到了不匹配的端口:

I 2021-02-09T08:18:40.163Z  [10.16.5.22]:5701 [dev] [4.0.1] Initialized new cluster connection between /10.16.5.22:49213 and /10.16.5.21:5701
I 2021-02-09T08:18:40.158Z  [10.16.5.21]:5701 [dev] [4.0.1] Initialized new cluster connection between /10.16.5.21:5701 and /10.16.5.22:46274

我怎样才能防止这种情况?为什么获取remoteAddress的这一部分会获得不同的端口?到目前为止,我已经尝试了以下方法:

  • 升级到4.1.1,无任何更改
  • 加上JHIPSTER_SLEEP,没有帮助
  • 更新部署以确保在应用程序启动之前启动代理,但没有帮助

有什么想法吗?

谢谢陈

共有1个答案

殷建弼
2023-03-14

Hazelcast的滚动升级是一项企业功能,您需要许可证密钥。如果您已经有一个,那么您应该与Hazelcast支持人员一起检查。

 类似资料:
  • 我在GKE上设置了Istio(Kubernetes入口模式,而不是Istio网关)。但是,我无法使用curl从外部访问 istio ingressgateway LoadBalancer 10.48.11.240 35.222.111.100 15020:30115/TCP,80:31420/TCP,443:32019/TCP,31400:31267/TCP,15029:30180/TCP,150

  • 如何注入抽象类我有一个抽象类 我尝试使用< code>@Module和< code>@Binds注释来初始化该类的对象。但这并不能创建并抛出一个错误。 但这给出了错误。我犯了什么错误?请您告诉我如何为抽象类创建。我们如何注入抽象类?从文档中,它说。有时,不能注入构造函数。发生这种情况可能有多种原因。例如,不能构造函数注入接口。也不能构造函数注入不属于的类型,例如外部库中的类。在这些情况下,您可以使

  • 我知道在Kotlin中,用于声明常量,用于只读属性。然而,我想知道在以下情况下,哪一个更适合使用。 假设我有一个片段,它需要一个用于和的键。我想知道以下两个选项中哪一个更好: 我更喜欢#选项2,因为它清楚地表明是一个常量,值是在编译时确定的。然而,由于它是在顶层声明的,它需要在编译后的java代码中创建一个类,即(假设文件名是)。在#选项1中,没有生成额外的类,尽管的值将在运行时分配,而不是恒定的

  • 问题内容: 我一直在尝试实现单例,以用作我从网络上传到我的iOS应用的照片的缓存。我在下面的代码中附加了三个变体。我试图使版本2正常工作,但是它导致了我不理解的编译器错误,并希望就我做错的事情寻求帮助。变体1进行缓存,但我不喜欢使用全局变量。变体3并没有进行实际的缓存,我相信这是因为我在赋给var ic = ....的赋值中获得了副本,对吗? 任何反馈和见解将不胜感激。 谢谢Zvi 问题答案: 标

  • 我试图有1个redis大师与2个redis复制品绑在一个3法定人数哨兵在Kubernetes。我对Kubernetes很陌生。 我最初的计划是让主控器在一个吊舱上运行,并绑定到一个Kubernetes SVC,而两个副本在自己的吊舱上运行,并绑定到另一个Kubernetes SVC。最后,3个哨兵吊舱将被绑在他们自己的SVC上。副本将被绑定到主SVC(因为没有SVC,ip将会改变)。sentine