@Override public <T> Optional<T> getConnectionEndpoint(Class<T> protocol) { return member.getConnectionEndpoint(protocol); }
@Override public boolean local() { return member.local(); }
@Override public String name() { return member.name(); }
int loadFactor = joinMessage.getLoadFactor(); Predicate<? super CommandMessage<?>> commandFilter = joinMessage.messageFilter(); SimpleMember<Address> member = new SimpleMember<>(joinedMember, message.getSrc(), NON_LOCAL_MEMBER, s -> { }); int order = members.compute(member.endpoint(), (k, v) -> { if (v == null || v.order() <= joinMessage.getOrder()) { return new VersionedMember(member, joinMessage.getOrder()); sendMyConfigurationTo(member.endpoint(), false, membershipVersion.get());
private Member buildLocalMember(ServiceInstance localServiceInstance) { String localServiceId = localServiceInstance.getServiceId(); URI emptyEndpoint = null; //noinspection ConstantConditions | added null variable for clarity return registered ? new SimpleMember<>(buildSimpleMemberName(localServiceId, localServiceInstance.getUri()), localServiceInstance.getUri(), SimpleMember.LOCAL_MEMBER, this::suspect) : new SimpleMember<>(localServiceId.toUpperCase() + "[LOCAL]", emptyEndpoint, SimpleMember.LOCAL_MEMBER, this::suspect); }
@Override public void suspect() { member.suspect(); } }
int loadFactor = joinMessage.getLoadFactor(); CommandMessageFilter commandFilter = joinMessage.messageFilter(); SimpleMember<Address> member = new SimpleMember<>(joinedMember, message.getSrc(), NON_LOCAL_MEMBER, s -> { }); int order = members.compute(member.endpoint(), (k, v) -> { if (v == null || v.order() <= joinMessage.getOrder()) { return new VersionedMember(member, joinMessage.getOrder()); sendMyConfigurationTo(member.endpoint(), false, membershipVersion.get());
private Member buildRemoteMember(ServiceInstance remoteServiceInstance) { URI remoteServiceUri = remoteServiceInstance.getUri(); return new SimpleMember<>(buildSimpleMemberName(remoteServiceInstance.getServiceId(), remoteServiceUri), remoteServiceUri, SimpleMember.REMOTE_MEMBER, this::suspect); }
@Override public void suspect() { member.suspect(); } }
/** * Connects this Node to the cluster and shares membership details about this node with the other nodes in the * cluster. * <p> * The Join messages have been sent, but may not have been processed yet when the method returns. Before sending * messages via this connector, await for the joining process to be completed (see {@link #awaitJoined() and * {@link #awaitJoined(long, TimeUnit)}}. * * @throws Exception when an error occurs connecting or communicating with the cluster */ public void connect() throws Exception { if (channel.getClusterName() != null && !clusterName.equals(channel.getClusterName())) { throw new ConnectionFailedException("Already joined cluster: " + channel.getClusterName()); } channel.setReceiver(this); channel.connect(clusterName); Address localAddress = channel.getAddress(); String localName = localAddress.toString(); SimpleMember<Address> localMember = new SimpleMember<>(localName, localAddress, LOCAL_MEMBER, null); members.put(localAddress, new VersionedMember(localMember, membershipVersion.getAndIncrement())); updateConsistentHash(ch -> ch.with(localMember, loadFactor, commandFilter)); if (!executorProvided) { executorService = Executors.newCachedThreadPool(new AxonThreadFactory("JGroupsConnector - " + localName)); } }
@Override public boolean local() { return member.local(); }
@Override public <T> Optional<T> getConnectionEndpoint(Class<T> protocol) { return member.getConnectionEndpoint(protocol); }
@Override public String name() { return member.name(); }
/** * Connects this Node to the cluster and shares membership details about this node with the other nodes in the * cluster. * <p> * The Join messages have been sent, but may not have been processed yet when the method returns. Before sending * messages via this connector, await for the joining process to be completed (see {@link #awaitJoined() and * {@link #awaitJoined(long, TimeUnit)}}. * * @throws Exception when an error occurs connecting or communicating with the cluster */ public void connect() throws Exception { if (channel.getClusterName() != null && !clusterName.equals(channel.getClusterName())) { throw new ConnectionFailedException("Already joined cluster: " + channel.getClusterName()); } channel.setReceiver(this); channel.connect(clusterName); Address localAddress = channel.getAddress(); String localName = localAddress.toString(); SimpleMember<Address> localMember = new SimpleMember<>(localName, localAddress, LOCAL_MEMBER, null); members.put(localAddress, new VersionedMember(localMember, membershipVersion.getAndIncrement())); updateConsistentHash(ch -> ch.with(localMember, loadFactor, commandFilter)); if (!executorProvided) { executorService = Executors.newCachedThreadPool(new AxonThreadFactory("JGroupsConnector - " + localName)); } }