前回のブログ投稿「初めての Go マイクロサービス: MongoDB と Docker を使用したマルチステージ ビルド」では、RESTful http エンドポイントを公開し、HTTP POST から受信したデータを MongoDB データベースに保存するサンプルの Go マイクロサービスを作成しました。 この例では、データ ストレージを MongoDB から分離し、それを処理するための別のマイクロサービスを作成しました。また、マイクロサービスが独自の懸念事項を非同期的に処理できるように、メッセージング レイヤーとして Kafka を追加しました。
以下は、2 つのマイクロサービスを使用したこの単純な非同期処理の例の高レベル アーキテクチャ図です。 REST-Kafka-Mongo-マイクロサービス-Draw-IO マイクロサービス 1 - /POST http 呼び出しからデータを受信する RESTful マイクロサービスです。リクエストを受信すると、http リクエストからデータを取得して Kafka に保存します。保存後、同じデータを /POST 経由で呼び出し元に送り返します。 マイクロサービス 2 - マイクロサービス 1 のデータが保存されている Kafka のトピックをサブスクライブするマイクロサービスです。メッセージがマイクロサービスによって消費されると、そのデータは MongoDB に保存されます。 先に進む前に、これらのマイクロサービスを実行するためにいくつかのものが必要です。
さあ始めましょう! まず、Kafka を起動します。 Kafka サーバーを実行する前に、Zookeeper を実行する必要があります。次に例を示します。
次に、Kafka を実行します。Kafka への接続にはポート 9092 を使用します。ポートを変更する必要がある場合は、
Kafka を実行したら、MongoDB が必要になります。とても簡単です。この
Docker Compose を使用して MongoDB Docker コンテナを実行します。
以下はマイクロサービス 1 に関連するコードです。以前の例を変更して、MongoDB ではなく Kafka に保存するようにしました。 レストからカフカへ/レストカフカサンプル.go
以下はマイクロサービス 2 のコードです。このコードで最も重要なことは、Kafka からデータを消費することです。保存部分については、前回のブログ投稿ですでに説明しました。ここでのコードの重要な部分は、Kafka からのデータの使用です。 kafka-to-mongo/kafka-mongo-sample.go
マイクロサービス 1 のデモを行って実行してみましょう。Kafka が実行されていることを確認します。
Postman を使用して、Microservice 1 にデータを送信します。 スクリーンショット-2018-04-29-22.20.33 以下はマイクロサービス 1 で確認できるログです。これが表示される場合、Postman から送信されたデータが受信され、Kafka に保存されたことを意味します。 スクリーンショット-2018-04-29-22.22.00 マイクロサービス 2 はまだ実行していないため、データはマイクロサービス 1 によって Kafka にのみ保存されます。マイクロサービス 2 を実行して、そのデータを消費し、MongoDB に保存しましょう。
これで、Microservice 2 で消費されたデータが表示され、MongoDB に保存されます。 スクリーンショット-2018-04-29-22.24.15 データが MongoDB に保存されているかどうかを確認します。データがあれば成功です! スクリーンショット-2018-04-29-22.26.39 完全なソースコードはここにあります: https://github.com/donvito/learngo/tree/master/rest-kafka-mongo-microservice |
<<: IDC: Inspur Cloud は 2018 年第 1 四半期の中国のパブリック クラウド IaaS ベンダーの中で成長率第 1 位にランクされました
>>: オラクル、自律型データベースクラウドサービスとPaaSの組み合わせを開始
天猫の「ダブル11」プロモーションは売上高132億元で完璧に終了した。人々がまだ「ダブル11」につい...
ウェブサイトには数百または数千のキーワードが存在することが多く、それらは階層に分かれています。ウェブ...
オープンソースソリューションのリーディングプロバイダーであるRed Hat, Inc. (NYSE:...
4日前、私は「Baidu ExperienceとSoso Wenwenのひどい外部リンクを暴露する」...
米国オハイオ州に拠点を置く企業 ftpit (まもなく設立 2 周年) は、ニューヨークのデータ セ...
6月22日、百度は大量のサイトのランキングを降格した。Chianz Data Vaneのサンプリング...
コロクロッシングコンピュータルームは、サブブランドchicagovpsで特別価格の独立サーバーをリリ...
今から今月末まで、ウクライナのマーチャント ntup は VPS の半額セールと専用サーバーの 25...
最近、私はいくつかの小説をフォローしています。これらの小説の中には、まだ連載中のものもあれば、更新さ...
クラウド コンピューティングのセキュリティは依然として企業にとって最大の懸念事項ですが、パブリック ...
データ管理は、あらゆる産業の「モノのインターネット」展開に不可欠な要素であり、クラウド コンピューテ...
5G、AR、AIoT などのシナリオが次世代クラウド アーキテクチャの進化を推進し、コンテナがクラウ...
顧客に感動を与えるソフトな記事の作り方について語るとき、星文天下はまず『鋼鉄はいかに鍛えられたか』に...
これは、2つのインターネット金融大手によるカーブでの競争ゲームです。中央銀行はタイミングよく介入し、...
最近では、人々がオンラインで買い物をするとき、システムから返される「あなたは(おそらく)好きでしょう...