単一のホスト名の代わりに LDAP ホスト名のリストを指定できる C または C++ の LDAP ライブラリを探しています。ライブラリは、1 つ以上のサーバーがダウンした場合に接続できる最初のサーバーを使用する必要があります。既存のライブラリをラップしてこれを作成するのは簡単だと思いますが、なぜ車輪を再発明するのでしょうか?
3 に答える
それぞれ異なる IP を持つ複数の A レコードを使用します。
ldapserver.example.com. IN A 1.2.3.4
ldapserver.example.com. IN A 2.3.4.5
OpenLDAP クライアント ライブラリは、各ホストを順番に試行します。フェイルオーバーは(残念ながら)TCP接続のタイムアウトと同じくらい遅いです...
Novell cldapライブラリ(および Java ライブラリ) は、接続時にスペースで区切られたホストのリストをサポートします。ページに記載されているように、それぞれを順番に試しldap_init()
ます。
openldap libldap ライブラリーは、 に渡されるスペース区切りのホストのリスト、ldap_open()
または に渡されるコンマ区切りのリストもサポートしていますldap_initialize()
。
LDAP_SERVER_DOWN
唯一の問題は、接続が切断された後に返されるエラーを確実に処理することです。私は通常、操作 (つまり、検索) を試行し、LDAP_SERVER_DOWN
発生した場合は再接続を試行し、操作を再度実行するラッパー関数を作成します。
聞いたことがあるとは言えません。さらに、私が使用したほとんどの LDAP 対応ソフトウェアは、フェイルオーバーをほとんどサポートしていないか、まったくサポートしていませんでした。サーバーをロード バランサーなどの背後に配置して、サーバーでフェールオーバーを実装しようとした方がよい場合があります。