2016-06-15 1 views
0

Я хотел бы спросить. Как передать двоичные данные между микросервисами в Spring Cloud?Как передать двоичные данные между микросервисами в Spring Cloud?

Должен ли (Can) использовать @FeignClient или @RibbonClient? Как это должно быть? Я уже читал, что @FeignClient не занимается этим вопросом. Что еще? OkHttp?

Thx заранее

ответ

2

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.

+0

Должен ли сервис «myService» аннотироваться как @RibbonClient или что-то еще? Поскольку instance.getHost() и instance.getPort() содержит неправильный хост и порт :( – b3lowster

+0

Нет, 'myService' должен быть зарегистрирован в eureka. Вам нужно будет рассказать мне больше о вашей настройке. – spencergibb

+0

Извините, все работает нормально. волшебство)) – b3lowster

Смежные вопросы