private List<RibbonServiceDefinition> asRibbonServerList(List<ServiceDefinition> services) { List<RibbonServiceDefinition> ribbonServers = new ArrayList<>(); for (ServiceDefinition service : services) { if (service instanceof RibbonServiceDefinition) { ribbonServers.add((RibbonServiceDefinition)service); } else { RibbonServiceDefinition serviceDef = new RibbonServiceDefinition( serviceName, service.getHost(), service.getPort(), service.getMetadata(), service.getHealth() ); String zone = serviceDef.getMetadata().get("zone"); if (zone != null) { serviceDef.setZone(zone); } ribbonServers.add(serviceDef); } } return ribbonServers; } }
public RibbonServiceDefinition(ServiceDefinition definition) { this( definition.getName(), definition.getHost(), definition.getPort(), definition.getMetadata(), definition.getHealth() ); }
.port(definition.getPort()) .name(definition.getName()) .id(definition.getId())
@Override public void register(ServiceDefinition definition) { if (definition.getId() == null) { throw new IllegalArgumentException("Service ID must be defined (definition=" + definition + ")"); } if (definition.getName() == null) { throw new IllegalArgumentException("Service Name must be defined (definition=" + definition + ")"); } try { ServiceInstance<MetaData> instance = ServiceInstance.<MetaData>builder() .address(computeServiceHost(definition)) .port(definition.getPort()) .name(definition.getName()) .id(definition.getId()) .payload(new MetaData(definition.getMetadata())) .build(); serviceDiscovery.registerService(instance); // add the serviceId to the list of known server serviceList.add(definition.getId()); } catch (Exception e) { LOGGER.warn("", e); } }
@Override public ZookeeperRegistration convert(ServiceDefinition source) { ZookeeperInstance instance = new ZookeeperInstance( source.getId(), source.getName(), source.getMetadata() ); return ServiceInstanceRegistration.builder() .address(properties.getServiceRegistry().getServiceHost()) .port(source.getPort()) .name(source.getName()) .payload(instance) .uriSpec(ZookeeperDiscoveryProperties.DEFAULT_URI_SPEC) .build(); } }