Я тоже новичок в этом, но я думаю, что только что узнал что-то, имеющее отношение к вашему вопросу.
В создаваемой вами службе каждому экземпляру может быть присвоен некоторый уникальный идентификатор, связанный со свойством, включенным в его профиль экземпляра. Некоторые примеры .properties ниже:
application.properties (общие свойства между экземплярами)
spring.application.name=its-a-service
eureka.client.service-url.defaultZone=http://localhost:8761/eureka
application-instance1.properties
server.port=5678
instance.uid=some-unique-property
application-instance2.properties
server.port=8765
instance.uid=other-unique-property
Этот сервис, как показывает чрезвычайно надуманный пример, может отправлять @Value
аннотированных атрибутов для использования приложением Ribbon:
@SpringBootApplication
@EnableDiscoveryClient
@RestController
public class ItsAServiceApplication {
@Value("${server.port}")
private int port;
@Value("${instance.uid}")
private String instanceIdentifier;
public static void main(String[] args) {
SpringApplication.run(ItsAServiceApplication.class, args);
}
@RequestMapping
public String identifyMe() {
return "Instance: " + instanceIdentifier + ". Running on port: " + port + ".";
}
}
И чтобы завершить пример, приложение Ribbon, которое может использовать эти свойства, может выглядеть так:
@SpringBootApplication
@EnableDiscoveryClient
@RestController
public class ServiceIdentifierAppApplication {
@Autowired
private RestTemplate restTemplate;
public static void main(String[] args) {
SpringApplication.run(ServiceIdentifierAppApplication.class, args);
}
@GetMapping
public String identifyMe() {
return restTemplate.getForEntity("http://its-a-service", String.class).getBody();
}
@Bean
@LoadBalanced
public RestTemplate restTemplate() {
return new RestTemplate();
}
}
Результаты: Перезагрузка остального шаблона, созданного службами
Как я уже говорил ранее, я довольно новичок в этом и только учусь сам. Надеюсь, это дало вам представление о том, как вы можете отправить эти свойства! Я полагаю, что создание идентификатора динамического свойства через Spring Cloud Config было бы идеальным здесь.
person
samtietze
schedule
03.03.2018