通过增加timeout-control以解决当tcp连接一直处于SYN_SENT状态导致java中的ldap-client的failover不工作的问题
· 8 min read
今天遇到一个问题是当测试模拟ldap
的服务端主节点挂掉的时候并在页面点击登录, 后端一直未作出响应.
这个问题的原因是因为代码中的ldap-client
的failover
未生效, 通过排查发现ldap-client
一直在连接ldap
的主节点,
并且tcp
连接一直处于SYN_SENT
状态.
由于ldap-client
没有默认情况下没有控制超时, 导致代码一直堵塞, 从而导致failover
不工作.
下面将开始介绍具体细节以及解决方案.