【发布时间】:2016-10-16 19:41:23
【问题描述】:
我想问一下。 Spring Cloud中如何在微服务之间传递二进制数据?
我应该(可以)使用 @FeignClient 还是 @RibbonClient ?应该怎么样?我已经读过@FeignClient 不处理这个问题还有什么? OkHttp?
提前谢谢
【问题讨论】:
标签: spring spring-cloud microservices
我想问一下。 Spring Cloud中如何在微服务之间传递二进制数据?
我应该(可以)使用 @FeignClient 还是 @RibbonClient ?应该怎么样?我已经读过@FeignClient 不处理这个问题还有什么? OkHttp?
提前谢谢
【问题讨论】:
标签: spring spring-cloud microservices
Spring Cloud 集成了一些 http 客户端,就像您提到的那样。 Ribbon 有一些non-http clients/transports built in,但我没用过,AFIAK、netflix 也不用。
您可以使用 Spring Cloud 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 应该在 eureka 中注册。你必须告诉我更多关于你的设置。