如何正确地 ping JGroups
How to properly ping JGroups
我有一个基于 jgroup 的应用程序并使用 netcat 检查该应用程序是否已启动并且运行(Marathon 中的健康检查,管理应用程序启动顺序):
nc -z -w 1 app 7801
除了有以下异常的 jgroup 日志外,一切都很好:
WARN org.jgroups.protocols.TCP - JGRP000006: failed accepting connection from peer
app | java.io.EOFException: null
app | at java.io.DataInputStream.readFully(DataInputStream.java:197)
app | at org.jgroups.blocks.TCPConnectionMap$TCPConnection.readPeerAddress(TCPConnectionMap.java:511)
app | at org.jgroups.blocks.TCPConnectionMap$TCPConnection.<init>(TCPConnectionMap.java:381)
app | at org.jgroups.blocks.TCPConnectionMap$Acceptor.handleAccept(TCPConnectionMap.java:303)
app | at org.jgroups.blocks.TCPConnectionMap$Acceptor.run(TCPConnectionMap.java:287)
app | at java.lang.Thread.run(Thread.java:745)
有没有办法以更合适的方式 "ping" jgroup 应用程序?
是的。如果启用了诊断(传输中的 enable_diagnostics
,例如 UDP
或 TCP
),您可以使用 probe.sh 或 netcat 从所有或单个集群成员中提取信息。
默认情况下,使用 224.0.75.75
上的端口 7500
,但也可以设置这些属性。
您还可以编写一个简单的 HEALTH
协议来打开套接字(TCP 或数据报)并响应简单的“你还活着”请求,例如通过发回一个字节。
我有一个基于 jgroup 的应用程序并使用 netcat 检查该应用程序是否已启动并且运行(Marathon 中的健康检查,管理应用程序启动顺序):
nc -z -w 1 app 7801
除了有以下异常的 jgroup 日志外,一切都很好:
WARN org.jgroups.protocols.TCP - JGRP000006: failed accepting connection from peer
app | java.io.EOFException: null
app | at java.io.DataInputStream.readFully(DataInputStream.java:197)
app | at org.jgroups.blocks.TCPConnectionMap$TCPConnection.readPeerAddress(TCPConnectionMap.java:511)
app | at org.jgroups.blocks.TCPConnectionMap$TCPConnection.<init>(TCPConnectionMap.java:381)
app | at org.jgroups.blocks.TCPConnectionMap$Acceptor.handleAccept(TCPConnectionMap.java:303)
app | at org.jgroups.blocks.TCPConnectionMap$Acceptor.run(TCPConnectionMap.java:287)
app | at java.lang.Thread.run(Thread.java:745)
有没有办法以更合适的方式 "ping" jgroup 应用程序?
是的。如果启用了诊断(传输中的 enable_diagnostics
,例如 UDP
或 TCP
),您可以使用 probe.sh 或 netcat 从所有或单个集群成员中提取信息。
默认情况下,使用 224.0.75.75
上的端口 7500
,但也可以设置这些属性。
您还可以编写一个简单的 HEALTH
协议来打开套接字(TCP 或数据报)并响应简单的“你还活着”请求,例如通过发回一个字节。