【问题标题】:How to pass binary data between microservices in Spring Cloud?如何在 Spring Cloud 中的微服务之间传递二进制数据?
【发布时间】:2016-10-16 19:41:23
【问题描述】:

我想问一下。 Spring Cloud中如何在微服务之间传递二进制数据?

我应该(可以)使用 @FeignClient 还是 @RibbonClient ?应该怎么样?我已经读过@FeignClient 不处理这个问题还有什么? OkHttp?

提前谢谢

【问题讨论】:

    标签: spring spring-cloud microservices


    【解决方案1】:

    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”注释为@RibbonClient 或其他任何内容?由于 instance.getHost() & instance.getPort() 包含错误的主机和端口:(
    • 不,myService 应该在 eureka 中注册。你必须告诉我更多关于你的设置。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-12
    • 2015-09-27
    • 2016-02-28
    • 1970-01-01
    相关资源
    最近更新 更多