Кластер JBOSS EAP 6.4, как программно реализовать сбой одного узла - PullRequest
0 голосов
/ 25 марта 2019

Я настроил 2 узла для работы в одном кластере. Один узел является основным сервером, а второй - резервным сервером. Таким образом, второй узел должен быть активным, только если основной сервер не работает. В случае, если один узел Jboss не работает, второй узел информируется о сбое? Как я могу написать код, чтобы получать уведомления о сбое других узлов. Я знаю, что могу использовать некоторые бесконечные библиотеки для чтения информации о кластере. Но я думаю, что я не могу прочитать состояние узлов в кластере. Я запускаю экземпляры jboss с конфигурацией standalone-full-ha.xml. Есть статья об обнаружении участников кластера. Но это мне не очень помогает. Потому что мне нужно знать активный и реализовать некоторый код, который будет работать на активном сервере.

http://www.mastertheboss.com/jboss-server/jboss-cluster/jboss-cluster-discover-cluster-members

Edit: функциональность, которая мне нужна, следующая реализация. JBoss EAP 6.4 не включает в себя API-интерфейс wildfly. Когда я сообщу об изменении членства, я сделаю другой экземпляр Jboss первичным. Мне нужна эта функциональность в JBoss EAP 6.4

@Singleton(name = "ClusterEJBEJB")
@Startup
public class ClusterEJBBean implements Listener {
@Resource(lookup = "java:jboss/clustering/group/ejb")
private Group channelGroup;

@PostConstruct
public void check() {
    channelGroup.addListener(this);
}

@Override
public void membershipChanged(List<Node> prev, List<Node> curr, boolean merge) {
    for (Node node : prev)
        System.out.println("PREVIOUS CUSTER VIEW: " + node.getName() + " " + node.getSocketAddress());
    System.out.println("==================================================");
    for (Node node : curr)
        System.out.println("NEW CLUSTER VIEW " + node.getName() + " " + node.getSocketAddress());
    System.out.println("==================================================");
    System.out.println("Merged ? " + merge);
}

}

...