ZeroMQをインストールして疎結合のシステム開発を目指す

ZeroMQをインストールして疎結合のシステム開発を目指す プログラミング

「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の動作確認を行う方法をまとめました。

タイトルとURLをコピーしました