NanoMQ は、国内のオープンソース IIoT エッジ シナリオにおける軽量で高性能な MQTT ゲートウェイです

334e9a12b0d9de9fbc14a03eb87a1d95.png

NanoMQ は、2021 年初頭にリリースされたエッジ コンピューティング オープン ソース プロジェクトです。これは、IoT エッジ コンピューティング シナリオ向けの次世代の軽量で高性能な MQTT メッセージ サーバーです。

IoT 時代において、データは主要な生産性であり、エッジはデータが生まれる場所です。エッジの複雑なネットワーク環境でデータを迅速に集約して分散するには、高リアルタイム、高スループットのエッジ メッセージ バスが不可欠です。しかし、長い産業チェーンとさまざまな垂直産業の歴史的理由により、エッジではプロトコルの断片化と複数のメッセージ モードが存在し組み込み環境のコンピューティング能力と消費電力も厳しく制限されていますこれらの問題により、エッジ メッセージ バスに対する新たな要件と課題が生じています。

NanoMQ は、エッジでのデータ フローを統合できる軽量で高性能のメッセージ バスを提供し、これらの問題の解決に取り組んでいます。同時に、優れた拡張性と移植性を備え、さまざまな組み込みプラットフォームに適応し、エッジに点在する断片化されたデータを容易に管理および取得できます。

主要な利点

  • 超軽量: MQTT サービスは、わずか 200Kb のメモリ使用量で開始できます。

  • 完全な非同期 I/O: IoT および MQTT 用に組み込まれたアクター プログラミング モデルにより、コンピューティング負荷を並列化します。

  • マルチスレッド並列処理:優れたスケーラビリティ、優れたマルチコア SMP (対称型マルチプロセッシング) サポート、およびマルチスレッド パフォーマンス。

  • 高性能:エッジでの数百万レベルのメッセージ処理機能。

  • クロスプラットフォーム: POSIX ベースのシステム プラットフォームにシームレスに移植できます。

  • 相互運用性:データの透明性、豊富な拡張インターフェイス、さまざまなエッジ コンピューティング フレームワークとの簡単な統合。

特徴

  • MQTT 5.0 の完全サポート: MQTT 5.0/3.1.1 の完全サポート。すべての標準 MQTT オープン ソース SDK と互換性があります。

  • MQTT ブリッジング: MQTT マルチクラウド ブリッジング機能が組み込まれており、簡単な構成でさまざまな人気のクラウド サービスにアクセスし、複数の場所でデータ同期のためのクラウド側チャネルを確立できます。

  • ルール エンジン:内蔵のシンプルなルール エンジンにより、エッジ データを柔軟に処理できます。eKuiper と統合して、エッジでのストリーミング データ分析を行うこともできます。

  • メッセージの永続性:モノのインターネットの複雑なネットワーク環境シナリオ向けにデータの永続性とデータ キャッシュ機能を設計します。ブリッジ メッセージはローカルにキャッシュされ、ネットワーク中断後に再開できます。重要なデータは永続化され、エッジでロールオーバーできます。

  • 豊富な統合 API:スケーラブルなイベント駆動型 WebHook インターフェイスと O&M フレンドリーな HTTP API を提供し、エッジ コンピューティング アプリケーションの開発と統合のコストを削減します。

  • マルチプロトコル ゲートウェイ:プロトコル ゲートウェイは、nanomsg/ZeroMQ/Websocket などの一般的に使用されるメッセージ プロトコルをサポートし、エッジでの柔軟なデータ ルーティング トポロジの確立を容易にします。また、接続の暗号化とセキュリティを提供します。

製品アーキテクチャ

a5bf670edad22e67924cdffc58d4233d.png

NanoMQ は小さいながらも完全な機能を備えた、あらゆる面で完全な機能を備えた小型の MQTT エッジ サーバー + メッセージ バスです。

  • プラットフォーム アダプテーション レイヤー:実行中のハードウェア プラットフォーム オペレーティング システムを検出し、適応されたシステム API を提供し、プラットフォーム バインディングの問題を回避します。

  • マルチタスク レイヤー: IoT シナリオ向けに設計された組み込みアクター モデルは、スレッド レベルの並列機能を提供し、最新の SMP システムで効果的に拡張できます。

  • トランスポート層:トランスポート層は、接続管理やフロー制御などの TCP/UDP ストリームの管理を担当し、QoS などのさまざまなシナリオに対する NanoMQ のゼロコピー機能を保証し、メモリ消費を削減し、パフォーマンスを向上させます。

  • プロトコル層:データ フローを MQTT メッセージに変換し、さまざまなイベントを生成して、MQTT プロトコルのインターフェイスを公開します。同時に、プロトコル層は各クライアントのメッセージ フライト ウィンドウの管理も担当します。

  • アプリケーション層:ルール エンジンと MQTT グローバル トピック ツリーを実装し、対応するブリッジングとメッセージ転送機能の設定を読み取ります。そして、すべての MQTT メッセージ イベントと HTTP API をユーザーに公開します。

インストールと展開

NanoMQ は MIT ライセンスに基づくオープン ソース プロジェクトであり、完全なコードは Github で入手できます。

https://github.com/emqx/nanomq

次のコマンドを実行して、Docker 経由で NanoMQ をすばやく実行します。ポート 1883、8083、および 8883 を指定して、それぞれ MQTT、WebSocket 上の MQTT、SSL/TLS 上の MQTT トラフィックをリッスンします。

docker run -d --name nanomq -p 1883:1883 -p 8083:8083 -p 8883:8883 emqx/nanomq:latest

性能試験

4C8G ホストでは、最大120K の接続をサポートできます。60K クライアントはさまざまな 60K トピックをサブスクライブし、別の 60K クライアントは 16 kb パブリッシュ メッセージをこれらの 60K トピックに 1000 ミリ秒の間隔で送信します。 

耐圧試験環境 4C8Gサーバー

  • オペレーティング システム: CentOS Linux リリース 7.6.1708

  • CPU: 4コア4スレッド 

  • メモリ: 8G

  • NanoMQ バージョン:バージョン 0.3.4、4 スレッド、64 コンテキスト。ログ/統計とデバッグをオフにします。

圧力テストの結果:

3c16b261e70577ee8304ce1bb69b1b51.png

93f0e63d73cc8021f866b8369b8b26d9.png

要約する

NanoMQ はネイティブ POSIX API のみに依存しており、高い互換性と移植性、軽量、高速、および極めて低いメモリ フットプリントを備えており、産業用モノのインターネットのエッジ シナリオで非常に優れたパフォーマンスを発揮するオープン ソースになっています。

さらに、NanoMQ はメッセージ バスとしても使用でき、DDS、NNG、ZeroMQ などのプロトコルを MQTT に変換し、MQTT メッセージをクラウドにブリッジします。

NanoMQ公式サイト https://nanomq.io

​​

過去の推薦

☞ IDC China 2022 IoT プラットフォーム評価レポート

☞ 2022年のIoTプラットフォームのトレンド:民営化

☞ モノのインターネットのスタートアップについて共有する価値のある 5 つの失敗した教訓

☞ 国内IoTプラットフォーム4社の選定と比較

☞ クラウドベンダーの【IoTプラットフォーム】は普及していない?

02a93ed24dd6bbe8b16ff8f7920dbeb0.png

85e681b362ce084a3e75360f7f11cab3.gif

bfd8f08b1d7cee40c3ce164e5758010b.gif

30d1b91ce1949ff02f4d3aa1f73ed19a.gif

6e6f0242889e5e032af115ec08629b8c.gif

おすすめ

転載: blog.csdn.net/klandor2008/article/details/131887091
おすすめ