如何正确ping JGroups

时间:2016-06-30 08:38:44

标签: netcat jgroups

我有一个基于jgroup的应用程序,并使用netcat检查应用程序是否已启动并运行(Marathon中的healthcheck,管理应用程序启动顺序):

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应用程序?

1 个答案:

答案 0 :(得分:1)

是。如果启用了诊断(传输中为enable_diagnostics,例如UDPTCP),则可以使用probe.sh或netcat从所有或单个集群成员中提取信息。

默认使用7500上的端口224.0.75.75,但也可以设置这些属性。

您还可以编写一个简单的HEALTH协议,它打开一个套接字(TCP或数据报)并响应简单的有效请求,例如:通过发回一个字节。