「ZeroMQを使おうかどうか迷っている」
「疎結合のシステムを目指している」
この記事は、上記のように考えている人向けの内容となっています。
本記事の内容
- ZeroMQとは?
- ZeroMQのシステム要件
- ZeroMQのインストール
- ZeroMQの動作確認
それでは、上記に沿って解説していきます。
ZeroMQとは?
ZeroMQとは、非同期メッセージングライブラリのことです。
非同期メッセージングにより、疎結合が可能になります。
これ以降では、メッセージングシステムを理解している前提で話を進めます。
疎結合とは、システム構成要素間の結びつきが弱いということです。
言い換えれば、疎結合とは各要素の独立性が高い状態と言えます。
では、疎結合だと何がどう嬉しいのでしょうか?
- 複数人での同時並行の開発がやりやすい
- トラブルの原因を特定しやすい
- プログラムの再利用がしやすい
- システムの拡張がやりやすい
このように、いろいろと嬉しいことがあります。
これらは、過去の経験から実際に思ったことです。
でも、疎結合にするためにはそれなりに手間とコストがかかります。
標準化されたインターフェースも必要になります。
そして、そのルールも覚えないといけません。
俺流のプログラミングだけではダメと言うことです。
そういった手間とコストをかけずに、疎結合が実現できるならどうしますか?
もちろん、やりたいと思いますよね。
それを可能にしてくれるのが、ZeroMQです。
また、ZeroMQは知名度のあるメッセージングシステムになります。
そのため、ZeroMQのルールを覚えることは価値のあることです。
社内の独自ルールなんて、社外では価値がありませんからね。
以上、ZeroMQについての説明でした。
次は、ZeroMQのシステム要件を確認します。
ZeroMQのシステム要件
現時点(2021年4月)でのZeroMQの最新バージョンは、4.3.4となります。
この最新バージョンは、2021年1月17日にリリースされています。
サポートOSに関しては、以下を含むクロスプラットフォーム対応です。
- Windows
- macOS
- Linux
Windowsの場合は、Visual Studioのインストールが前提となります。
そして、そのバージョンごとにインストールするモノが異なります。
なお、Visual Studioのインストールに関しては次の記事で解説しています。
そうは言っても、一般的にZeroMQはLinuxで動かすことになるでしょう。
そうなると、システム要件は基本的にはナシ(特段の注意不要)となります。
Raspberry Pi3でも、ZeroMQは普通に動くようです。
以上、ZeroMQのシステム要件の説明でした。
次は、ZeroMQのインストールをしていきましょう。
ZeroMQのインストール
公式サイトの手順を参考にします。
https://zeromq.org/download/
上記ページでは、各 ディストリビューション毎にコマンドを記載しています。
本当にしっかりとした公式サイトです。
今回は、Ubuntu 20.04.2 LTSへのインストールを行います。
$ cat /etc/lsb-release DISTRIB_ID=Ubuntu DISTRIB_RELEASE=20.04 DISTRIB_CODENAME=focal DISTRIB_DESCRIPTION="Ubuntu 20.04.2 LTS"
ZeroMQをインストールするためのコマンドは、以下。
$ sudo apt-get install libzmq3-dev
これだけでインストールが完了します。
以上、ZeroMQのインストールの説明でした。
最後に、ZeroMQの動作確認を行いましょう。
ZeroMQの動作確認
ZeroMQの動作確認は、実は簡単ではありません。
ZeroMQは、ApacheやMySQLのように常駐しているモノではありません。
systemctl start ${Unit}
具体的に言うと、上記のようなコマンドで起動ができないのです。
そして、決まったポートで動くということもありません。
では、どうやってZeroMQを利用するのでしょうか?
ZeroMQを利用するには、都度プログラムから動かすことです。
それもポートを指定してです。
ZeroMQを動かす場合、以下の二つの登場人物が出てきます。
- サーバー側プログラム
- クライアント側プログラム
この中では、まずサーバー側プログラムが起動する必要があります。
ポートを指定(公開サンプルでは5555)して、サーバー側プログラムでZeroMQに接続します。
そうすると、指定されたポート5555でZeroMQが立ち上がります。
そして、クライアント側プログラムはポート5555に対してアクセスします。
以上が、ZeroMQの基本的な動きです。
そして、ZeroMQの動作確認のためには、プログラムが必要になります。
サーバー側プログラムとクライアント側プログラムの両方です。
それらを会話させて、初めてZeroMQの動作確認が可能となります。
本記事では、ここまでの説明としておきます。
ZeroMQの動作確認は、別の記事で解説します。
追記 2021.04.07
Pythonを用いてZeroMQの動作確認を行う方法をまとめました。