ステータス:非推奨

この記事では、サポートされなくなったバージョンのCentOSについて説明します。 現在CentOS6を実行しているサーバーを運用している場合は、サポートされているバージョンのCentOSにアップグレードまたは移行することを強くお勧めします。

理由 CentOS 6は2020年11月30日に保守終了(EOL)に達し、セキュリティパッチまたはアップデートを受信しなくなりました。 このため、このガイドは維持されなくなりました。

代わりに参照:このガイドは参照として役立つ場合がありますが、他のCentOSリリースでは機能しない場合があります。 可能な場合は、使用しているCentOSのバージョン用に作成されたガイドを使用することを強くお勧めします。

序章


アプリケーションレベルのメッセージングの実装には多数の選択肢があり、それぞれに他の実装よりも独自の特別な利点があります。 ただし、確かなことが1つあります。それは、多くの状況で、フル機能のソリューションとプロトコルの実装(Advanced Message Queuing Protocolなど)がやり過ぎになる可能性があることです。

このような状況では、必要なシステムを正確に作成できる、無駄のない、真に高性能なメッセージングライブラリには、多くの利点があります。 これらのライブラリの1つ、そしておそらくこの種の頼りになるソリューションは、ZeroMQです。

ZeroMQは、非同期メッセージングシステムツールキットです(つまり、 図書館)。 規則に従わず、新しいプロトコルを定義するように設定されていません。 世界のヘビー級チャンピオンにもかかわらず、この非常に効率的なメッセージングコンポーネントは、必要のないときに余分なレイヤーを作成することなく、タスクをできるだけ効率的かつ強力に処理することに重点を置いています。

このDigitalOceanの記事では、ソースから最新バージョンのZeroMQをセットアップする方法について学習します。これにより、アプリケーションスタックへの効率的な軽量メッセージングの実装を開始できます。

ZeroMQ


RabbitMQなどの他のメッセージングシステムの過去の経験がある場合、インターネット全体でのさまざまな無関係な比較のために、ZeroMQの位置を理解するのは少し難しいかもしれません。 これら2つは、さまざまな種類の問題を解決することを目的としたまったく異なるツールです。

冒頭で述べたように、ZeroMQはライブラリです(つまり、 ツールキット)。 他のソリューションと比較して低レベルのソリューションのように見えるかもしれませんが、使いやすさとさまざまなプログラミング言語バインディングを備えたカスタムメッセージングソリューションを迅速に実装するために必要なすべてのものを提供します。

これは、ZeroMQライブラリをダウンロードして設定する必要があることを意味し、その後、ZeroMQアプリケーションの構築を開始するために選択したプログラミング言語用の追加ファイルが続きます。 このチュートリアルでは、最新バージョンを入手して安定してインストールするために、いくつかの簡単な手順でソースからZeroMQをインストールします。

ソースからのインストール


Unixシステムでアプリケーションを構築することは、一部の人にとっては恐ろしいように見えるかもしれませんが、一般的にはあなたが思っているよりも簡単です。 同じタスクを実行するための他のツールがあることに注意する必要がありますが、ZeroMQを構築するために GNUmakeを使用します。 GNU makeは、70年代後半に導入されて以来、Unixシステムに組み込まれているため、最も普及しているユーティリティの1つです。

ソースからビルドする理由


多くのシステム管理者は、deb / rpm(既製)パッケージによって引き起こされる問題を解決するのに役立つため、ソースからソフトウェアをビルドすることを選択します。 また、インストールプロセスをカスタマイズしたり、同じアプリケーションの複数のバージョンを1つのシステムに配置したり、ビルド済みのバイナリ(コンパイル済みファイル)を気にせずに目的のアプリケーションを使用したりすることもできます。

ZeroMQの依存関係の処理とシステムの準備


オペレーティングシステムとZeroMQアプリケーション自体の両方の最近のビルドにより、インストールプロセスはますます単純になりました。 それでも、ビルドプロセスを開始する前に、いくつかの準備を行う必要があります。

デフォルトのオペレーティングシステムツールを更新する


デフォルトのシステムツールの最新バージョンを確実に入手するために、システムで基本アップデートを実行することから始めましょう。

yum -y update

追加のアプリケーションリポジトリ(EPEL)を有効にする


ZeroMQやその他の多くのツールを構築して使用するために必要な特定のツールをダウンロードできるようにするには、 EPEL :EnterpriseLinux用の追加パッケージを有効にする必要があります。 これにより、デフォルトでは利用できない多くのパッケージを簡単にダウンロードしてインストールできるようになります。

次のコマンドを実行して、EPELを有効にします。

# If you are on a 64-bit CentOS / RHEL based system: 
wget http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
rpm -ivh epel-release-6-8.noarch.rpm

# If you are on a 32-bit CentOS / RHEL based system:
wget http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm
rpm -ivh epel-release-6-8.noarch.rpm

ソースから構築するための追加ツールをダウンロードする


ZeroMQのビルドプロセス(前述のとおり)には、いくつかの追加ツールが必要です。 EPELを有効にすると、デフォルトのパッケージマネージャーYUMを使用して簡単にダウンロードできます。

次のコマンドを実行してツールを入手します。

yum install -y uuid-devel
yum install -y pkgconfig
yum install -y libtool
yum install -y gcc-c++

ソースからのZeroMQのダウンロードとインストール


必要なすべてのアプリケーションをカバーした後、ZeroMQのインストールプロセスを開始できます。

ZeroMQで利用可能な最新バージョンは、2013年11月24日にリリースされた4.0.3です。

アプリケーションソースのダウンロードから始めましょう。

wget http://download.zeromq.org/zeromq-4.0.3.tar.gz

tarアーカイブの内容を抽出し、ディレクトリに入ります。

tar xzvf zeromq-4.0.3.tar.gz
cd zeromq-4.0.3

アプリケーションビルド手順を構成します。

./configure

Makefileを使用してプログラムをビルドします。

make

アプリケーションをインストールします。

make install

システムライブラリキャッシュを更新します。

echo /usr/local/lib > /etc/ld.so.conf.d/local.conf
ldconfig    

以上です! これで、システムにZeroMQメッセージングライブラリがセットアップされました。これを使用して、メッセージングアプリケーションを作成できます。

ZeroMQ言語バインディングの取得


Pythonバインディング:PyZMQ


Pythonパッケージマネージャーpipを使用して、ZeroMQ(PyZMQ)のPythonバインディングをダウンロードしてビルドすることができます。

pipを使用してPyZQMをダウンロードしてインストールします。

pip install pyzmq

CentOSでのPython2.7.xおよび3.xのセットアップと、pipを含む一般的なPythonツールについて知りたい場合は、記事CentOSでのPythonのセットアップ方法を確認してください。

Rubyバインディング:zmq Gem


ZeroMQ Rubyバインディングは、zmqと呼ばれるRubyGemとして利用できます。

デフォルトのZeroMQインストールの場合、以下を実行してzmqを取得します。

gem install zmq

デフォルト以外のZeroMQインストールの場合は、以下を使用します。

gem install zmq -- --with-zmq-dir=/path/to/zeromq

ZeroMQの他のプログラミング言語バインディング


PHP、C#、Erlang、Haskell、Java、Luaなどを含むがこれらに限定されない他のすべてのZeroMQバインディングについては、 ZeroMQ CommunityWikiにアクセスしてください。

投稿者: https ://twitter.com/ostezer ”> OS Tezer