问题描述
我正在尝试获取服务器列表以进行客户端负载平衡。请注意,我正在尝试基于套接字的连接。
在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 (将#修改为@)