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 投稿
ZooKeeper、KafkaクラスタとFilebeat+Kafka+ELKアーキテクチャの実装ガイド
一、ZooKeeper
1.1 概要
ZooKeeperは、分散アプリケーションの管理フレームワークです。オープンソースの分散型サービスで、分散環境における一貫性の問題を解決するためのApacheプロジェクトです。
1.2 ZooKeeperの役割
主な役割として、分散アプリケーションクラスタにおける一貫性の問題解決があります。ファイルシステムとして、各種分散アプリケーションの登録とメ ...
5月31日 00:36 投稿
RabbitMQによるPHPタスクキューの実装:ワークロード分散と信頼性確保
この記事では、RabbitMQを用いてPHPでタスクキュー(ワーカーキュー)を構築し、複数のワーカープロセス間で重い処理を効率的に分散する方法を解説します。メッセージの永続化や確認応答(acknowledgement)、公平なディスパッチといった信頼性向上のための機能も実装します。
前提条件
RabbitMQがローカルホストの標準ポート(5672)で動作していることを前提とします。 ...
5月30日 10:13 投稿
RabbitMQにおけるメッセージ信頼性と高度なキュー機能
サービス間の非同期通信
RabbitMQを用いたメッセージングにおいては、以下の課題が発生しうる:
メッセージの信頼性
死信交換機(DLX)の活用
遅延キューの実現
大量メッセージ蓄積への対応
クラスタ構成による可用性向上
1. メッセージ信頼性の確保
メッセージが送信元から受信先まで確実に到達するためには、以下の機構を組み合わせる必要がある。
1.1 パブリッシャ ...
5月26日 20:03 投稿
メッセージキュー技術とRabbitMQの基本
I. メッセージミドルウェアの特徴
1. 非同期処理モデル
メッセージ送信者は応答を待つことなくメッセージを送信できます。送信者はメッセージを仮想のチャネルまたはキューに送信し、受信者はそのチャネルを購読または監視します。メッセージは最終的に1つまたは複数のメッセージ受信者に転送され、これらの受信者はメッセージ送信者に同期応答をする必要はありません。プ ...
5月22日 21:24 投稿
RabbitMQ入門:基本概念からSpring Bootによる実践的メッセージングまで
コアコンセプト
Broker: メッセージの受信と配信を担うサーバーアプリケーション。RabbitMQサーバー自体を指す。
Connection: クライアント(パブリッシャー/コンシューマー)とBroker間のTCP接続。
Channel: Connection内部に確立される論理的な接続。高負荷時に毎回TCP接続を確立するオーバーヘッドを避けるため、スレッドごとにChannelを分けて通信を行う。AMQPプロトコ ...
5月20日 01:41 投稿
RabbitMQを用いた.NETアプリケーションでのメッセージング実装
RabbitMQ基本設定
サーバーにRabbitMQをインストール後、vhostの作成とexchange/queueのバインディングを設定します。
プロジェクト構成
NuGetからRabbitMQ.Clientパッケージをインストールし、以下のヘルパークラスを実装します。
RabbitMQ操作クラス
using RabbitMQ.Client;
using RabbitMQ.Client.Events;
using System.Configuration;
using System.Text;
namespace ...
5月18日 00:41 投稿