メッセージキューを入れてみる
今時のメッセージキューを操作するには、かなりいけてるソフトがあるとのこと。有名どころだと "RabbitMQ, Apache Kafka, Redis"があるが、割と定番?の "RabbitMQ” がインストール簡単そうだったのでそのメモ。
ちなみに "RabbitMQ” を入れてやりたいことは、Web-Queue-Worker を試しかったのであります。
RabbitMQ のインストール
RabbitMQ をインストールするには、Erlang を先に入れる必要があります。なんだか Erlang + RabbitMQ の組み合わせ(バージョン)で少し手こずるようなこともGoogle先生は言ってますので、ここでは最新をいれてみます。
公式サイトでのインストール方法(レポジトリから)
2026/3/19 現在
erlang-27.3.4.9-1.el9.x86_64
rabbitmq-server-4.2.4-1.el8.noarch
インストール方法(公式)
signing keyのインストール(公式から抜粋)
# sudo rpm --import 'https://github.com/rabbitmq/signing-keys/releases/download/3.0/rabbitmq-release-signing-key.asc'
# sudo rpm --import 'https://github.com/rabbitmq/signing-keys/releases/download/3.0/cloudsmith.rabbitmq-erlang.E495BB49CC4BBE5B.key'
# sudo rpm --import 'https://github.com/rabbitmq/signing-keys/releases/download/3.0/cloudsmith.rabbitmq-server.9F4587F226208342.key'
レポジトリの追加(公式から抜粋)
# In /etc/yum.repos.d/rabbitmq.repo
##
## Zero dependency Erlang RPM
##
[modern-erlang]
name=modern-erlang-el9
# Use a set of mirrors maintained by the RabbitMQ core team.
# The mirrors have significantly higher bandwidth quotas.
baseurl=https://yum1.rabbitmq.com/erlang/el/9/$basearch
https://yum2.rabbitmq.com/erlang/el/9/$basearch
repo_gpgcheck=1
enabled=1
gpgkey=https://github.com/rabbitmq/signing-keys/releases/download/3.0/cloudsmith.rabbitmq-erlang.E495BB49CC4BBE5B.key
gpgcheck=1
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
metadata_expire=300
pkg_gpgcheck=1
autorefresh=1
type=rpm-md
[modern-erlang-noarch]
name=modern-erlang-el9-noarch
# Use a set of mirrors maintained by the RabbitMQ core team.
# The mirrors have significantly higher bandwidth quotas.
baseurl=https://yum1.rabbitmq.com/erlang/el/9/noarch
https://yum2.rabbitmq.com/erlang/el/9/noarch
repo_gpgcheck=1
enabled=1
gpgkey=https://github.com/rabbitmq/signing-keys/releases/download/3.0/cloudsmith.rabbitmq-erlang.E495BB49CC4BBE5B.key
https://github.com/rabbitmq/signing-keys/releases/download/3.0/rabbitmq-release-signing-key.asc
gpgcheck=1
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
metadata_expire=300
pkg_gpgcheck=1
autorefresh=1
type=rpm-md
##
## RabbitMQ Server
##
[rabbitmq-el9]
name=rabbitmq-el9
baseurl=https://yum2.rabbitmq.com/rabbitmq/el/9/$basearch
https://yum1.rabbitmq.com/rabbitmq/el/9/$basearch
repo_gpgcheck=1
enabled=1
# Cloudsmith's repository key and RabbitMQ package signing key
gpgkey=https://github.com/rabbitmq/signing-keys/releases/download/3.0/cloudsmith.rabbitmq-server.9F4587F226208342.key
https://github.com/rabbitmq/signing-keys/releases/download/3.0/rabbitmq-release-signing-key.asc
gpgcheck=1
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
metadata_expire=300
pkg_gpgcheck=1
autorefresh=1
type=rpm-md
[rabbitmq-el9-noarch]
name=rabbitmq-el9-noarch
baseurl=https://yum2.rabbitmq.com/rabbitmq/el/9/noarch
https://yum1.rabbitmq.com/rabbitmq/el/9/noarch
repo_gpgcheck=1
enabled=1
# Cloudsmith's repository key and RabbitMQ package signing key
gpgkey=https://github.com/rabbitmq/signing-keys/releases/download/3.0/cloudsmith.rabbitmq-server.9F4587F226208342.key
https://github.com/rabbitmq/signing-keys/releases/download/3.0/rabbitmq-release-signing-key.asc
gpgcheck=1
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
metadata_expire=300
pkg_gpgcheck=1
autorefresh=1
type=rpm-md
erlang のインストール前にパッケージがあるか確認
# yum --showduplicates search erlang
erlang-27.3.4.9-1.el9.x86_64 : Minimalistic Erlang/OTP distribution that provides just enough for running RabbitMQ
erlang-27.3.4.6-1.el9.x86_64 : Minimalistic Erlang/OTP distribution that provides just enough for running RabbitMQ
erlang のインストール
# yum install erlang
rabbitmq-server のインストール前にパッケージがあるか確認
# yum --showduplicates search rabbitmq-server
rabbitmq-server-4.2.4-1.el8.noarch : Open source RabbitMQ server
rabbitmq-server-4.2.3-1.el8.noarch : Open source RabbitMQ server
rabbitmq-server のインストール
# yum install rabbitmq-server
公式サイトでのインストール方法(rpm直接ダウンロード)
2026/3/26 現在
erlang-28.4.1-1.el9.x86_64.rpm
rabbitmq-server-4.2.5-1.el8.noarch.rpm
rpm を直接ダウンロード
# wget https://github.com/rabbitmq/erlang-rpm/releases/download/v28.4.1/erlang-28.4.1-1.el9.x86_64.rpm
# wget https://github.com/rabbitmq/rabbitmq-server/releases/download/v4.2.5/rabbitmq-server-4.2.5-1.el8.noarch.rpm
rpm をインストール
# yum install erlang-28.4.1-1.el9.x86_64.rpm
# yum install rabbitmq-server-4.2.5-1.el8.noarch.rpm
RabbitMQ を起動しつつ管理画面のプラグインの有効化
RabbitMQ の動作確認をしてみます。また RabbitMQ の状態はコマンドラインから確認できますすが、GUIの管理画面がある方が便利なのでプラグインを有効化します。
# systemctl enable rabbitmq-server
# systemctl start rabbitmq-server
# systemctl status rabbitmq-server
# systemctl stop rabbitmq-server
管理画面のプラグインを有効化
# rabbitmq-plugins enable rabbitmq_management
有効化したあと管理画面(GUI)が有効になるので接続確認してみる。
http://ホストIP:15672
RabbitMQ の vhost とユーザ作成
RabbitMQに接続できるユーザは、デフォルトで guest/guest で定義されているが外部からアクセスできないユーザなのでここで簡単ではあるが vhost とユーザ作成を行う。のちに RabbitMQ + Celery で使用するときのためです。
# rabbitmqctl add_vhost /test1
# rabbitmqctl add_user guest3 guest3
# rabbitmqctl set_user_tags guest3 administrator
# rabbitmqctl set_permissions -p /test1 guest3 ".*" ".*" ".*"
はいれるかな?
キューイングの勉強
キューイングの勉強は、下記のサイト様をみるとわかりやすい。自分が昔に勉強したキューイングがいまやメッセージ駆動型(非同期)にて Web-Queue-Worker みたいな形で比較的容易に構築できることがわかる。古い人間なのかどうしても同期形(バッチ処理)でシステムを構築するなーと思うところがこれなら簡単にかつ分散処理もできそうなのでよいなと感じた。
参考にさせて頂いたサイト様

