【问题标题】:Is there an ldap C/C++ library that provides fail over?是否有提供故障转移的 ldap C/C++ 库?
【发布时间】:2023-03-22 22:17:02
【问题描述】:

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

【问题讨论】:

    标签: ldap failover


    【解决方案1】:

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

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

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

    【讨论】:

      【解决方案2】:

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

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

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

      【讨论】:

        【解决方案3】:

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2010-11-06
          • 1970-01-01
          • 2013-04-17
          • 2016-05-22
          • 2015-10-31
          • 1970-01-01
          • 2018-10-20
          • 2011-01-14
          相关资源
          最近更新 更多