01. はじめにApache Kafka はオープンソースのメッセージング エンジン システムです。プロジェクトにおけるその主な役割は、ピーク負荷を軽減し、谷を埋めて分離することです。この記事では、Apache Kafka 用の Golang クライアント ライブラリである Sarama のみを紹介します。 Sarama は、Apache Kafka 0.8 以降用の MIT ライセンスの Golang クライアント ライブラリです。 Apache Kafka サーバーに慣れていない場合は、まず公式ドキュメントの「Getting Started」セクションを読むことをお勧めします。この記事では、Apache Kafka 2.8 バージョンを使用します。
02. プロデューサーSarama ライブラリの AsyncProducer または SyncProducer を使用してメッセージを生成できます。ほとんどの場合、メッセージを生成するには AsyncProducer を使用することをお勧めします。チャネルを通じてメッセージを受信し、バックグラウンドで可能な限り効率的に非同期的にメッセージを生成します。 SyncProducer は、Kafka メッセージを送信した後、ACK 確認を受信するまでブロックします。 SyncProducer には 2 つの注意点があります。一般的に効率が低く、実際の耐久性の保証は Producer.RequiredAcks の構成値によって異なります。構成によっては、SyncProducer によって確認されたメッセージが失われる場合もありますが、使用方法はより簡単になります。 読者の理解を深めるために、この記事では SyncProducer をプロデューサーとして使用する方法を紹介します。 AsyncProducer をプロデューサーとして使用する方法を知りたい読者は、公式ドキュメントを参照してください。 SyncProducer をプロデューサーとして使用するサンプル コード:
上記のコードを読むと、ブローカーのアドレスと構成情報を指定して、NewSyncProducer() を呼び出して新しい SyncProducer を作成します。 SendMessage() を呼び出すと、指定されたメッセージが生成され、生成が成功したか失敗したかの場合にのみ戻ります。生成されたメッセージのパーティションとオフセットを返します。メッセージの生成が失敗した場合はエラーを返します。 リークを回避するには、プロデューサーで Close() を呼び出す必要があることに注意することが重要です。スコープ外になったときに自動的にガベージ コレクションされない可能性があるためです。 03. 消費者Sarama ライブラリの Consumer または ConsumerGroup API を使用してメッセージを消費できます。読者の理解を容易にするために、この記事では Consumer を使用してメッセージを消費する方法を紹介します。 Consumer は、ブローカーからの Kafka メッセージを処理する PartitionConsumers を管理します。 メッセージを消費するコンシューマーのサンプル コード:
上記のコードを読むと、ブローカーのアドレスと構成情報を指定して、NewConsumer() を呼び出して新しいコンシューマーを作成します。トピック、パーティション、オフセットを指定して、ConsumePartition() を呼び出して PartitionConsumer を作成します。 PartitionConsumer は、指定されたトピックとパーティションからの Kafka メッセージを処理します。 リークを防ぐために、consumer とpartitionConsumer で Close() を呼び出す必要があることに注意することが重要です。スコープ外になったときに、自動的にガベージ コレクションされない可能性があるためです。 04. 結論この記事では主に、Apache Kafka の Golang 言語クライアント ライブラリ Sarama を使用して Kafka メッセージを生成および消費する方法を紹介します。生産者と消費者の両方に対して簡単な例を示します。さらに、Sarama ライブラリは他の多くの API も提供します。興味のある読者は、公式ドキュメントを読んで詳細を確認してください。 |
>>: Tencent Qianfanと提携し、SalesEasy PaaSプラットフォームが企業のアプリケーションのカスタマイズを支援
XFTP を使用すると、Windows ユーザーは UNIX/Linux と Windows PC ...
段階的かつプロセス指向の方法でインターネット パーソナル ブランドを構築したい場合は、次の 9 つの...
キーワードの配置は、SEO のサイクルや SEO の成功または失敗を直接決定する場合があります。この...
zgovpsは、日本のVPSの元祖「Osaka Ryzen Performance VPS」シリーズ...
3Gはまだ普及しておらず、4Gが本格的に普及しつつある。TD-LTEライセンスが発行されてから半年以...
budgetnode.com は、OVZ ベースの仮想 VPS の提供だけでは満足できなくなりました...
hosteons VPS の所有者が新しい割引コードを導入しました。この割引コードを使用すると、ho...
今日の急速に進化するクラウド コンピューティングとコンテナ化された環境では、強力で信頼性の高いコンテ...
概要: mokvm は、主にマカオ VPS、マカオ テレコム データ センター (CTM) に従事し...
デジタル世界の発展はハッカーと密接に関係していることを多くの人が知っています。たとえば、マイクロソフ...
米国の老舗データセンターであるRaksmartは、アメリカのクラスタサーバー、香港のクラスタサーバー...
[[261393]] Oracle NetSuite は本日、さまざまな業界の組織が成長を加速するた...
A5ウェブマスターネットワークは6月5日に報道した。百度ウェブマスタープラットフォームの公式ニュース...
昨日(5月29日)午後、WeChatは公式サイトで新しいWeChatストア機能を発表しました。認証に...
店舗運営の鍵はトラフィックであることは誰もが知っています。日常生活に関わるトラフィックの大部分は、自...