微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

有没有一种方法可以从Netflix Ribbon静态服务器列表中获取活动服务器

如何解决有没有一种方法可以从Netflix Ribbon静态服务器列表中获取活动服务器

我正在尝试获取服务器列表以进行客户端负载平衡。请注意,我正在尝试基于套接字的连接。 在this.loadBalancerClient.choose("tcpclient")中,我希望功能区连接到所有活动的服务器,但是我会获得该属性中定义的所有服务器列表,并且在通过socket.connect()连接时,由于连接被拒绝,我会遇到异常。有人可以让我知道我在想什么。 下面是代码段。

application.properties

tcpclient.ribbon.eureka.enabled=false
tcpclient.ribbon.ActiveConnectionsLimit=5
tcpclient.ribbon.NFLoadBalancerPingClassName=com.netflix.loadbalancer.PingUrl
tcpclient.listofServers=10.156.23.556:55005,10.156.23.557:55005,10.156.23.558:15006,10.156.23.559:15006
tcpclient.ribbon.NFLoadBalancerRuleClassName=com.netflix.loadbalancer.AvailabilityFilteringRule


public class ClientLoadBalancer {

    @Autowired
    private LoadBalancerClient loadBalancerClient;

    
    public String connectServer() {
        ServiceInstance serviceInstance;
        String host = null;
        int port = 0;
        try (Socket socket = new Socket()) {
            try {
                serviceInstance = this.loadBalancerClient.choose("tcpclient");
                host = serviceInstance.getHost();
                port = serviceInstance.getPort();
                System.out.println("Connecting with Host: " + host + "Port:" + port);
                socket.connect(new InetSocketAddress(serviceInstance.getHost(),serviceInstance.getPort()));
            } catch (final IOException e) {
                e.printstacktrace();
            }
        } catch (final Exception e) {
            e.printstacktrace();
        }
        return "Connecting with Host: " + host + " Port:" + port;
    }
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。