ZooKeeperとKafkaを用いたメッセージキューイングシステムのクラスタ構築

メッセージキューイング(Message Queue)は、分散システムにおける中核的なコンポーネントです。主な利用シーンとしては、即座に結果を取得する必要はないが、同時接続数の制御が必要な状況が該当します。本稿では、分散型メッセージキューイングシステムであるApache Kafkaとを調整サービスとして使用するZooKeeperを組み合わせたクラスタ構築手順を解説します。 1. メ ...

8月10日 03:31 投稿

ZooKeeperとKafkaを用いたメッセージキュークラスタのデプロイメント

メッセージキューの概念 メッセージキューとは何か メッセージ(Message)とはアプリケーション間で送信されるデータのこと メッセージキュー(Message Queue)はアプリケーション間の通信方式を解決するソリューションで、メッセージの信頼性のある伝達を保証します。 メッセージキューが必要な理由 疎結合 両側の処理プロセスを独立して拡張または修正できるため、同じ ...

8月4日 03:49 投稿

プロセス間通信の基礎:主要な通信方式の詳細解説

プロセス間通信の概要 オペレーティングシステムにおいて、プロセス間通信(IPC)とは、異なるプロセス間での情報共有、データ転送、メッセージ通知などのインタラクションを指します。各プロセスは生成時に独自の仮想アドレス空間を持ちますが、カーネル空間は共有します。そのため、プロセス間の通信を実現するには、カーネルを仲介する必要があります。 Linuxシステムで ...

7月22日 05:51 投稿

JavaでのRocketMQ順次消費の性能向上方法

1. 順次消費の仕組みと課題 RocketMQでは、メッセージキューごとに順次消費を保証します。例えば、あるトピックに4つのキューがある場合、同一キュー内でのみメッセージの順序が維持されますが、異なるキュー間では順序保証がありません。 順次消費の実装には次の3つのフェーズがあります: キューの再バランス処理: RebalanceServiceスレッドが定期的にキューの割り ...

7月21日 19:53 投稿

Redisを用いたセールスフラッシュシステムのパフォーマンス最適化:非同期処理とメッセージキュー

本稿は、高負荷なセールスフラッシュ(秒殺)シナリオにおけるパフォーマンスを向上させるためのRedisを活用したアプローチについて解説します。特に、Redisのメッセージキュー機能を利用した非同期処理を実装し、システムの応答性とスループットを改善する方法を中心に説明します。 問題の提起 伝統的なセールスフラッシュシステムでは、ユーザーが注文リクエストを送信 ...

7月18日 20:23 投稿

Spring Cloud:RabbitMQの高度な機能と信頼性

RabbitMQの高度な機能 1.1. プロデューサーの再試行メカニズム まず、プロデューサーがメッセージを送信する際にネットワーク障害が発生し、MQとの接続が切断される場合があります。 この問題を解決するために、SpringAMQPはメッセージ送信時の再試行メカニズムを提供しています。つまり、RabbitTemplateがMQとの接続がタイムアウトした後、 ...

7月8日 16:09 投稿

Kafkaブローカーのログファイルの構造と動作原理

1. パーティションディレクトリ内のファイル構造 Kafkaのメッセージストレージは、パーティション(Partition)を中心に構築されています。各パーティションは物理的なディレクトリに対応し、そのディレクトリ内にはコアログファイル、インデックスファイル、トランザクション関連ファイル、メタデータファイルの4種類のファイルが含まれます。これらのファイルが連携する ...

6月26日 22:30 投稿

RabbitMQメッセージキュー基礎

メッセージミドルウェアの概要 メッセージミドルウェアは、メッセージの転送過程においてメッセージを保持するコンテナです。メッセージを送信元から宛先へ中継する際に仲介者の役割を果たします。キューの主な目的はルーティングとメッセージ配信の保証です。受信者が利用できない場合、メッセージキューはメッセージを保持し、正常に配信できるまで待機します。もちろん ...

6月19日 22:36 投稿

ASP.NET C#でメッセージキューを使用した高同時接続処理(Xiaomiスマートフォン購入例)

Webアプリケーションが高同時接続を処理する際には、ハードウェアの拡張やプログラムの最適化に加え、並列処理を逐次処理に変換するアプローチも有効です。この手法はデータベースロックやメッセージキューの実装でよく用いられ、処理遅延のデメリットはあるものの、コスト削減という利点があります。 現象の再現 在庫商品テーブルの作成 CREATE TABLE [dbo].[stock_item]( ...

6月7日 16:25 投稿

ActiveMQの主要APIとメッセージング機能の活用

ActiveMQは、強力なメッセージング機能を提供するオープンソースのメッセージブローカーです。ここでは、JMS (Java Message Service) 標準に準拠したActiveMQの主要APIと、その上で利用できる高度なメッセージング機能について解説します。 JMSセッション管理とメッセージ処理 トランザクション管理 JMSでは、メッセージの送受信操作をアトミックに実行するためにトラン ...

6月1日 01:06 投稿