Kafka クライアントからのメッセージの生成と消費
Kafka クライアントから Hermes するメッセージを生成して消費する方法について説明します。
Kafka クライアントからのメッセージの交換を開始するには、まず Hermes Kafka クラスターにトピックを作成します。トピックを正常に作成したら、 Hermesと通信するために合計 3 つのプロセスを作成する必要があります。
- Hermes へのメッセージを生成するのにプロセスが 1 つ必要です。
- Hermes からのメッセージを消費するのにプロセスが 2 つ必要です。Hermes はフェイルオーバー目的で、Kafka クラスターをペアで使用するため、プロセスが 2 つ必要になります。片方のクラスターがダウンすると、データはもう一方の Hermes Kafka クラスターに生成されます。重要:コンシューマークライアントごとに 1 つずつ、2 つの異なるコンシューマーブートストラップアドレスを設定する必要があります。
1 つのコンシューマープロセスは 410x 範囲のポートを使用し、もう 1 つは 420x 範囲のポートを使用します。つまり、ポート範囲ごとに 1 つずつ、2 つの異なるクライアントを定義する必要があります。各クライアント構成内で、コンシューマーグループ ID を定義できます。
必要なポート範囲
- プロデューサー: 4000 ~ 4050
- コンシューマー 1:4100 ~ 4150
- コンシューマー 2:4200 ~ 4250
ファイアウォールを介してポートにアクセスできることを確認するには、次のコマンドを実行します。
openssl s_client -connect <instance_name>.service-now.com:<port> -servername <instance_name>.service-now.com
- インスタンスで別のドメイン名を使用している場合は、service-now.com ドメインを変更します。
- 3 つのポート範囲のそれぞれのポートを使用してテストを完了します。例:test 4000-4003、4100-4103、4200-4203。
コマンドが内部では失敗しても、ネットワーク外のクライアントから成功した場合は、ネットワーク管理者に問い合わせて、ネットワークファイアウォールを介してアクセスしてください。
ブートストラップアドレス
次のポートマッピングを使用して、プロデューサーとコンシューマーを Kafka クラスターのブートストラップアドレスにコネクトします。Hermes で使用されるすべてのアプリケーションデリバリコントローラーは、これと同じ規則に従います。
- プロデューサー: 4000 ~ 4050
- コンシューマー 1:4100 ~ 4150
- コンシューマー 2:4200 ~ 4250
プロデューサークライアントは、4000 〜 4050 のポートを使用します。例:
Producers = "<instance_name>.service-now.com:4000,<instance_name>.service-now.com:4001,<instance_name>.service-now.com:4002,<instance_name>.service-now.com:4003"
Hermes は Kafka クラスターのペアを使用するため、別々のコンシューマーブートストラップアドレスを持つ 2 つのコンシューマークライアントを構成する必要があります。
- 1 つ目のコンシューマークライアントは、4100 〜 4150 の範囲のポートを使用します。例:
Consumer A = "<instance_name>.service-now.com:4100,<instance_name>.service-now.com:4101,<instance_name>.service-now.com:4102,<instance_name>.service-now.com:4103" - 2 つ目のコンシューマークライアントは、4200 〜 4250 の範囲のポートを使用します。例:
Consumer B = "<instance_name>.service-now.com:4200,<instance_name>.service-now.com:4201,<instance_name>.service-now.com:4202,<instance_name>.service-now.com:4203"
独自の Kafka クライアントのプロデューサープロパティとコンシューマープロパティを設定する場合は、この文字列パターンを使用します。
コマンドラインインターフェイス(CLI)の使用
list コマンドを使用してトピックのリストを表示すると、現在のトピックのリストが一方または両方のクラスターから返されます。トピックが 1 つのクラスターからのみ返される可能性があるのは、最後の同期がいつ発生したかによります。フェイルオーバーの目的で作成されたトピックは、3 文字のクラスター識別プリフィックスによって区別されます。
CLI を使用して Hermes クラスターにアクセスすると、作成したトピックに加えて内部トピックが表示されます。詳細については、次を参照してください。 KB1705399.
コマンドラインインターフェイス (CLI) で 1 つのコマンドを使用して、両方の Kafka クラスターからトピックを削除することはできません。ただし、インスタンスのトピックレコードを削除すれば、両方のクラスターからトピックを削除できます。「Hermes 内のトピックの削除」を参照してください。