是否有提供故障转移的ldap C / C ++库?

时间:2008-09-18 06:07:21

标签: ldap failover

我正在寻找C或C ++中的LDAP libracy,它允许我指定LDAP主机名列表而不是单个主机名。然后,库应该使用它可以连接的第一个,以防一个或多个服务器关闭。我敢肯定包装一个现有的库来创建它很容易,但为什么要重新发明轮子呢?

3 个答案:

答案 0 :(得分:2)

使用多个A记录,每个记录具有不同的IP。

ldapserver.example.com.    IN A    1.2.3.4
ldapserver.example.com.    IN A    2.3.4.5

OpenLDAP客户端库将依次尝试每个主机。故障转移(不幸的是)与TCP连接超时一样慢......

答案 1 :(得分:0)

我不能说我听说过一个。此外,我使用的大多数支持LDAP的软件支持故障转移很差或根本不支持故障转移。您最好尝试在服务器上实现故障转移,将其置于负载均衡器或类似设备之后。

答案 2 :(得分:0)

novell cldap libraries(和java库)在连接时支持空格分隔的主机列表。如ldap_init()页中所述,它会依次尝试每一个。

openldap libldap库还支持以空格分隔的传递给ldap_open()的主机列表或传递给ldap_initialize()的逗号分隔列表。

唯一的问题是确保处理连接消失后返回的LDAP_SERVER_DOWN错误。我通常编写一个包装函数来尝试操作(即:搜索),并尝试重新连接LDAP_SERVER_DOWN,然后再次执行操作。