Make consul
работает с Service Discovery по имени (вместо использования жестко запрограммированного URL-адреса службы) со сбалансированной нагрузкой. Шаблон отдыха
Я использую @EnableDiscoveryClient
над классом моего приложения.
My boostrap.yml
- включение `ленты
spring:
cloud:
consul:
discovery:
serviceName: ${spring.application.name}
healthCheckPath: /${spring.application.name}/actuator/health
healthCheckInterval: 20s
ribbon:
enabled: true
config:
My WsConfig с шаблоном пружинного упора @LoadBalanced
@Configuration
public class WsConfig {
@LoadBalanced // this actually should have enabled `ribbon`
@Bean("applicationJsonRestTemplate")
@Scope("prototype")
public RestTemplate applicationJsonRestTemplate() { ...
(я проверял как с аннотацией @Scope("prototype")
, так и без )
Я зарегистрировался consul
, зарегистрировано обслуживание my-service
. Таким образом, из оставшегося шаблона я бы ожидал, что он будет преобразован из my-service
в реальный URL.
... restTemplate.exchange("http://my-service/get",HttpMethod.GET, new HttpEntity<Object>(httpHeaders), new ParameterizedTypeReference<List<MyObject>>() {});
Но это не так. Он по-прежнему вызывает неразрешенный http://my-service/get
и, конечно, не работает.
Q: Это должно работать? Что я пропустил?