6.3. 클러스터링 서비스를 위한 공용 API

JBoss EAP 7은 애플리케이션에서 사용할 수 있는 구체화된 공용 클러스터링 API를 도입했습니다. 새 서비스는 외부 종속성 없이 가볍고 쉽게 주입할 수 있도록 설계되었습니다.

org.wildfly.clustering.group.Group

그룹 서비스는 JGroups 채널의 클러스터 토폴로지를 보고 토폴로지가 변경될 때 알림을 받는 메커니즘을 제공합니다.

@Resource(lookup = "java:jboss/clustering/group/channel-name")
private Group channelGroup;
org.wildfly.clustering.dispatcher.CommandDispatcher

command DispatcherFactory 서비스는 클러스터의 노드에서 명령을 실행하기 위한 디스패처를 생성하는 메커니즘을 제공합니다. 결과 CommandDispatcher 는 이전 JBoss EAP 릴리스의 그림 기반 GroupRpcDispatcher 에 대한 명령-패턴 아날로그입니다.

@Resource(lookup = "java:jboss/clustering/dispatcher/channel-name")
private CommandDispatcherFactory factory;

public void foo() {
    String context = "Hello world!";
    // Exclude node1 and node3 from the executeOnCluster
    try (CommandDispatcher<String> dispatcher = this.factory.createCommandDispatcher(context)) {
        dispatcher.executeOnGroup(new StdOutCommand(), node1, node3);

    }
}

public static class StdOutCommand implements Command<Void, String> {
    @Override
    public Void execute(String context) {
        System.out.println(context);
        return null;
    }
}