zeromq

DockerコンテナのAutoScalingをZeroMQ+NodeJSで自前実装する

はじめに 私は今、いわゆるBIツールに前処理や機械学習の機能を足したようなプロダクト(いわゆるセルフサービスデータサイエンスプラットフォーム)を作っています。 UIはWebアプリケーションになりますが、バックエンドではRやPythonのプログラムを非同期に動かす必要があり、またユーザの負荷に応じて計算リソースを増減したくなります。そこで、RやPythonの処理をDocker上で行い、それらをWebサービス側から制御する機能を簡易的に実装 […]

ZeroMQ覚書

日本語版の「øMQガイドブック」を読んだまとめ。 ZeroMQのコンセプト コンテキストとソケット ZeroMQでは、プログラミング単位ごとに「コンテキスト」が必要になる(基本的にはプロセスごとだけれど、スレッドごとに用意しても問題はない)。これがI/Oスレッドの動作などの具体的な処理を担ってくれる。 ユーザプログラムの求めに応じて、コンテキストから「ソケット」が提供される。これはTCPソケットのようなものというよりは、むしろ「メッセー […]

ØMQを使ってMicroservice間をロスレスでデータを同期させるStrongZero

対象読者 2つの疎結合なシステム間を、メモリを大量に使っちゃうような大がかりな仕組みなしで、ほぼリアルタイムにデータロスなしに同期させたい、そういうアーキテクチャが欲しい方。 動機 Microservicesを疎結合に保ちつつ、バッチ処理やレポート機能でのクエリの高速化のため、データを同期させたいことがままあります。このあたりの話は、テキストの「5章 モノリスの分割」に載っています。 あるサービスから、データを定期的に吸い上げて、別のサ […]