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 投稿
RabbitMQのアーキテクチャ設計原理と実践
目次
メッセージミドルウェア概要
同期通信と非同期通信の比較
結合の緩和:
非同期による結合緩和
トラフィックスムージング:
従来のHTTPリクエストの課題:
具体例:
コードデモンストレーション:
解決策:
1.マルチスレッドによるビジネスロジック処理(非同期操作の実現):
2.MQによるビジネスロジック処理(非同期操作の実現):
MQの二つの実装バージョン:
1.ネ ...
5月15日 19:07 投稿
RabbitMQのインストールとPHPによる基本的な使い方(macOS)
RabbitMQのインストール方法
Dockerを使用したインストール
Dockerがインストール済みの環境においては、以下のdocker-compose.ymlファイルを作成することでRabbitMQを簡単にセットアップできます。
version: '3'
services:
rabbitmq:
image: rabbitmq:3.7.7-management-alpine
hostname: myrabbitmq
ports:
- "5672:5672"
- "15672:15672"
作 ...
5月15日 05:05 投稿