@Override public MembershipEvent<Server> call(ChangeNotification<WriteServerAddress> notification) { WriteServerAddress endpoints = notification.getData(); int port = portFunc.call(endpoints); switch (notification.getKind()) { case Add: return new MembershipEvent<>(EventType.ADD, new Server(endpoints.getHostName(), port)); case Modify: throw new IllegalStateException("Modify not expected"); case Delete: return new MembershipEvent<Server>(EventType.REMOVE, new Server(endpoints.getHostName(), port)); } return null; } });
@Override public int scaleUpByOne() { int discoveryPort = nextAvailablePort; EurekaServerConfig config = EurekaServerConfig.baseBuilder() .withAppName(READ_SERVER_NAME) .withVipAddress(READ_SERVER_NAME) .withDataCenterType(DataCenterType.Basic) .withDiscoveryPort(discoveryPort) .withShutDownPort(nextAvailablePort + 1) .withWebAdminPort(nextAvailablePort + 2) .withCodec(Codec.Avro) .build(); EmbeddedReadServer newServer = newServer(config); newServer.start(); nextAvailablePort += 10; return scaleUpByOne(newServer, new Server("localhost", discoveryPort)); }
public static ServerResolver just(String hostName, int port) { final Observable<Server> serverObservable = Observable.just(new Server(hostName, port)); return new ServerResolver() { @Override public Observable<Server> resolve() { return serverObservable; } @Override public void close() { // Np-op } }; }
private Set<Server> toSetOfServerEntries(Attributes attrs, String attrName) throws NamingException { Attribute attr = attrs.get(attrName); if (attr == null) { return Collections.emptySet(); } Set<Server> resultSet = new HashSet<>(); NamingEnumeration<?> it = attr.getAll(); while (it.hasMore()) { Object value = it.next(); resultSet.add(new Server(value.toString(), port)); } return resultSet; } }
private static ServerResolver forFixed(ServerBootstrap[] bootstraps) { Server[] servers = new Server[bootstraps.length]; for (int i = 0; i < bootstraps.length; i++) { servers[i] = new Server(bootstraps[i].getHostname(), bootstraps[i].getDiscoveryPort()); } return ServerResolvers.from(servers); } }
public DnsServerResolver(String domainName, int port, long reloadInterval, long idleTimeout, TimeUnit reloadUnit, Scheduler scheduler) { this.domainName = domainName; if ("localhost".equals(domainName)) { this.resolverObservable = Observable.just(new Server(domainName, port)); } else { this.resolverObservable = ResourceObservable.fromResource(new DnsResolverTask(port), reloadInterval, idleTimeout, reloadUnit, scheduler); } }
private static ServerResolver forFixed(ServerBootstrap[] bootstraps, Func1<ServerBootstrap, Integer> getPortFunc) { Server[] servers = new Server[bootstraps.length]; for (int i = 0; i < bootstraps.length; i++) { servers[i] = new Server(bootstraps[i].getHostname(), getPortFunc.call(bootstraps[i])); } return ServerResolvers.from(servers); } }