1

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

4

3 回答 3

2

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

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

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

于 2008-11-14T00:06:19.063 回答
1

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

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

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

于 2009-08-25T16:06:58.997 回答
-1

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

于 2008-09-18T07:09:43.543 回答