データベース
 Computer >> コンピューター >  >> プログラミング >> データベース

ロードバランサーなしで複数のElasticsearchクライアントノードに接続する方法

元々は2017年11月10日にObjectRocket.com/blogで公開されました。

ロードバランサーなしで複数のElasticsearchクライアントノードに接続する方法 すべてのRackspaceObjectRocketforElasticsearch®クラスターには複数のクライアントノードが付属しているため、お客様からよく寄せられる質問は次のとおりです。それらすべてに接続するためのロードバランサーを提供しない理由。

設定によっては、単一ノードへの単一接続がクラスター障害のポイントとして表示される場合があります。ロードバランサーはできます 接続のプールを管理するのに効果的であることが証明されます。ただし、Elasticsearchはロードバランサーなしで動作するように設計されています。このブログ投稿では、Elasticsearchで提供するすべてのクライアントの使用方法について説明します。

ロードバランサーなしで複数のElasticsearchクライアントノードに接続する方法

Pythonのセットアップ

Python®のセットアップを見てみましょう:

from elasticsearch import Elasticsearch
Import certifi

es = Elasticsearch(['dc-port-0.es.objectrocket.com', 'dc-port-1.es.objectrocket.com', 'dc-port-2.es.objectrocket.com', 'dc-port-3.es.objectrocket.com'],
    http_auth=('YOUR_USERNAME', 'YOUR_PASSWORD'),
    port=12345,
    use_ssl=True,
    verify_certs=True,
    ca_certs=certifi.where(),
)

最初の引数は、Elasticsearchがホストのリストを受け入れることを示しています。つまり、クライアントは自分でセットアップを続行できます。セットアップは、Beatsなどの他のツールと似ています。セットアップスクリプトは、次の例のようになります。

output:
elasticsearch:
hosts: ["https://dc-port-0.es.objectrocket.com:port", "https://dfw-port-1.es.objectrocket.com:port", "https://dfw-port-2.es.objectrocket.com:port", "https://dfw-port-3.es.objectrocket.com:port"]

# HTTP basic auth
username: "YOUR_USERNAME"
password: "YOUR_PASSWORD"

利用可能なほとんどのツールとクライアントは、複数のホストをサポートしています。簡単にするために、Python®、Ruby、C#、Java®、Javascript®、Go、Logstash、BeatsのObjectRocketUIに接続スニペットが含まれています。使用しているテクノロジーを選択し、ホスト名が事前に入力されたスニペットをコピーするだけです。

ロードバランサーなしで複数のElasticsearchクライアントノードに接続する方法 複数のホストを使用しないアプリケーションの代替手段

一部のアプリケーションは、ホストのリストを作成しません。最も注目すべきは、単一​​のホストを受け入れるKibana®です。これを回避するには、いくつかの方法を使用できます。

アプリの各部分を別のクライアントに向けます

ミッションクリティカルではない用途とアプリケーションの場合、単一のクライアントノードを指すことができます。アプリケーションの要求率が非常に高い場合を除いて、単一のクライアントが負荷を管理できるはずです。これらのタイプのアプリケーションが多数ある場合は、負荷を分散するために、それぞれを異なるクライアントに向けるだけです。

ローカルでの負荷分散

クライアントまたはアプリケーションがそれをサポートしておらず、クライアント接続に冗長性が必要ないくつかのケースでは、ローカルの負荷分散を設定できます。これは、nginx®、HAProxy®などを使用して行うか、Elasticsearchクライアント間でラウンドロビンを使用するドメインネームシステム(DNS)でローカルホストを設定するだけです。繰り返しになりますが、これが必要なケースはほとんどありませんが、問題が発生したときに利用できる解決策があります。

結論

遭遇するほとんどすべてのシナリオで、バランシングを処理するホストのリストを提供できますが、ピンチでは、ローカルでのロードバランシングに役立つ例があります。

RackspaceDBAサービスの詳細をご覧ください。

コメントや質問をするには、[フィードバック]タブを使用します。 セールスチャットをクリックすることもできます 今すぐチャットして会話を始めましょう。


  1. Windows 10 で複数のディスプレイを接続して使用する方法

    1 つのコンピューター画面では不十分な場合は、追加の画面をセットアップして生産性を高め、時間を節約する必要があります。 あなたがプログラマー、グラフィック デザイナー、データ アナリスト、またはデスクトップ PC のヘビー ユーザーである場合、2 つの画面は常に 1 つよりも優れています。複数のモニターを使用すると、マルチタスクが簡単になるため、実際に興味深いものです。 複数のタブと最小化された画面での作業は、それらの切り替えに時間がかかるため、退屈な作業です。ただし、複数の画面を使用すると、この問題を簡単に処理できます。生産性を上げる確実な方法です。さらに、さまざまなツールを使用して、2

  2. ソフトウェアなしで Windows で複数のファイルの名前をすばやく変更する方法

    他のファイルと区別するために、ファイルの名前を変更する必要があると感じることがあります。ファイルの名前を変更するには、ファイルを右クリックして名前の変更オプションを選択することで簡単に行うことができます。ただし、複数のファイルの名前を変更したい場合は、それほど簡単ではありません。この記事では、専用のサードパーティ ソフトウェアやアプリを使用せずに、一度に複数のファイルの名前を変更する簡単な方法をいくつか紹介します。 方法 1:複数のファイルを選択して名前を変更する: Ctrl キーを押しながらクリックして、名前を変更するファイルを選択します。 選択したファイルの 1 つを右クリックし、すべ