Spring Облако интегрируется с некоторыми HTTP клиентами, как вы упомянули. Лента имеет non-http clients/transports built in, но я не использовал ее и AFIAK, netflix тоже не использует их.
Вы можете использовать Весеннее облако LoadBalancerClient
interface directly. Он дает вам доступ к хосту и порту, а затем вы можете использовать любой желаемый клиент.
public class MyClass {
@Autowired
private LoadBalancerClient loadBalancer;
public void doStuff() {
ServiceInstance instance = loadBalancer.choose("myService");
String host = instance.getHost();
int port = instance.getPort();
// ... do something with the host and port
}
}
Я также сделал интеграцию образца с OkHttp.
Должен ли сервис «myService» аннотироваться как @RibbonClient или что-то еще? Поскольку instance.getHost() и instance.getPort() содержит неправильный хост и порт :( – b3lowster
Нет, 'myService' должен быть зарегистрирован в eureka. Вам нужно будет рассказать мне больше о вашей настройке. – spencergibb
Извините, все работает нормально. волшебство)) – b3lowster