最新のAPIのほとんどは、HTTPを介した要求/応答メッセージングを備えたJSONを使用して構築されています。ZeroMQはTCPを介しているので、JSONベースのAPIをZeroMQを介して構築できますか?もしそうなら、利点は何でしょうか?用途は
1つ以上のウェブサーバーと通信するクライアント/デバイス用のアプリを作成する開発者、および
Webサーバーと通信するWebサーバー。
はい、jsonベースのAPIは、HTTPではなくZeroMQの上に構築できます。REQ/REPソケットが必要になります。しかし、それは良い選択ではないようです。
JSON + HTTPアプローチの主な利点は、移植性です。JSON + HTTPは、事実上すべてのプログラミング環境ですぐにサポートされます。ZeroMQはそれほど広くサポートされていません(たとえば、ブラウザーJSではサポートされていません)。また、ZeroMQはセットアップがそれほど簡単ではないため、サービスの利用者はおそらくその選択に満足しないでしょう。
一方、ZeroMQの主な利点はパフォーマンスです。1秒あたり数メガバイト(またはおそらくギガバイト)のデータをプッシュする必要がある場合に最適です。JSONのエンコード/デコードは非常に高速ですが、この種のタスクではサイズも重要です。バイナリシリアル化フレームワークの方が適しているようです。protobuf、thrift、BSON、kryo、avroなどがたくさんあります。
そのため、引き続きWebサービスのAPIにJSON + HTTPを使用します。最新のHTTPサーバーツールは、優れたパフォーマンスとスケーラビリティを提供します。また、ZeroMQは、同時実行機能と明確に定義された使用パターンにより、制御された環境内での通信に最適です。