Skip to content

新機能

このページでは、現在のリリースでサポートされている主な新機能を紹介します。EMQXが提供するすべての機能を網羅しているわけではありませんのでご注意ください。

EMQX 6.0.0(最新)

メッセージキュー

メッセージキューは、EMQX内で信頼性の高いリアルタイムMQTTのパブリッシュ/サブスクライブと非同期メッセージキューイングを統合し、外部キューイングサービスの必要性を排除します。

従来のMQTTがサブスクライバーの接続状況に依存するのに対し、メッセージキューはサーバー上でメッセージをバッファリングすることでパブリッシャーとサブスクライバーを切り離します。指定されたトピックフィルターにマッチするメッセージは永続化され、特別なトピック形式 $q/{topic_filter} を使って後から消費可能です。これにより、クライアントがオフラインやネットワークが不安定な場合でも信頼性の高いメッセージ配信が保証されます。

メッセージキュー

この機能により、MQTTはリアルタイム処理と遅延処理の両方を扱えるようになり、KafkaやRabbitMQなどの外部キューイングシステムを不要にしてIoTシステムのアーキテクチャを簡素化します。メッセージの耐久性、信頼性の高い配信、オフラインバッファリングが重要なシナリオに最適です。

機能のハイライト

  • 統合メッセージングモデル:軽量なMQTTとエンタープライズグレードのキューイングを単一システムで実現。
  • オフラインストレージ:サブスクライバーが切断されていてもメッセージを保持。
  • 最新値保持:キーごとに最新のメッセージのみを保持するオプション(例:デバイスID単位)、センサーの高速変化データに最適。
  • 柔軟な配信戦略:ランダム、ラウンドロビン、最小インフライトサブスクライバーから選択可能で効率的にメッセージを配信。
  • 配信保証:永続ストレージとQoS 1配信をサポートし、データ損失を防止。

詳細はメッセージキューのドキュメントをご覧ください。

ネームスペース付きロールによるマルチテナンシー

EMQX 6.0.0では、マルチテナンシーと大規模IoT展開におけるアクセス制御を強化するためにネームスペース付きロールを導入しました。この機能により、ユーザーは特定のネームスペースに割り当てられ、ルール、コネクター、アクションなどのリソースを自分の環境内で管理でき、他のテナントへのアクセスや影響を防ぎます。

ネームスペース付きロールは、管理者や閲覧者などの細かな権限設定をサポートし、ダッシュボード、API、CLIを通じて管理可能です。チームや部門、顧客間の安全な分離を保ちながら責任の委譲を容易にします。

機能のハイライト

  • 安全な分離:ユーザーは割り当てられたネームスペース内のリソースのみアクセス・管理可能(例:ns:team_a::administrator)。
  • 細かなアクセス制御:ネームスペースユーザーはネームスペース固有のリソースにフルアクセス可能だが、クラスター全体の設定はグローバル管理者権限がない限り読み取り専用。
  • 操作の簡素化:ユーザー作成時にロールを簡単に作成・割り当て可能。
  • 企業向けスケーラビリティ:マルチテナントMQTTサービスの提供や、内部の事業部門ごとの責任分離に最適。

追加の改善点

  • 可観測性の向上:ダッシュボードの表示がネームスペースでフィルタリングされ、より集中した管理が可能。
  • セッショントラッキングの最適化:ネームスペース別のセッション数は、1,000未満の場合は要求時に更新、それ以上は5秒ごとに更新され、パフォーマンスと精度を向上。

詳細な手順はネームスペース付きロールのユーザー作成をご参照ください。

最適化されたパーシステントストレージ

EMQX 6.0.0では、パーシステントストレージの大幅な改善により、高スループットなIoTワークロードでのパフォーマンスとスケーラビリティを向上させました。セッションデータを他のブローカーメタデータから分離することで、RAM消費を削減し、ストレージ効率を高め、ノードあたりの接続数を増やせるようになりました。

最適化されたRocksDBパラメーター

新しい設定オプションにより、メモリとパフォーマンスを細かく制御可能です:

  • durable_storage.messages.rocksdb.write_buffer_size:シャードごとのメムテーブルサイズを制御。
  • durable_storage.messages.rocksdb.cache_size:シャードごとのブロックキャッシュサイズを設定。
  • durable_storage.messages.rocksdb.max_open_files:シャードごとのファイルディスクリプタ数を制限。
  • durable_storage.messages.layout.wildcard_thresholds:ストレージレイアウトにおけるワイルドカード処理を最適化。

追加の改善点

  • 効率的なシリアライズ:デフォルトのシリアライズ形式をASN.1に変更し、ストレージサイズを削減し処理速度を向上。
  • 高速アクセスと低オーバーヘッド:改善されたストレージレイアウトによりメッセージ取得が高速化され、ディスクおよびメモリのオーバーヘッドを削減。

これらの改善により、EMQXは大規模で永続的なMQTTワークロードを安定したパフォーマンスで処理可能になりました。

データ統合の拡張サポート

EMQX 6.0.0はデータ統合機能をさらに強化し、MQTTデータを最新のクラウドやデータベースエコシステムとシームレスに連携してリアルタイム分析、処理、保存を可能にします。

新規統合

EMQX 6.0.0で新たに追加された統合は以下の通りです:

  • Google BigQuery:大規模データウェアハウスと高度なクエリを実現し、膨大なIoTデータセットからの洞察を可能に。
  • AWS AlloyDBCockroachDBAWS Redshift:これらの高性能データベースへMQTTデータをストリームし、リアルタイム分析とスケーラブルな保存を実現。エンタープライズグレードのIoT分析に最適。

強化された統合

新規統合に加え、既存の統合も性能、使いやすさ、クラウドネイティブ対応を向上させる強化が行われています:

  • Snowflake Snowpipe Streaming:Snowflakeのプレビュー機能であるSnowpipe Streamingを使った低レイテンシのデータ取り込みをAWSホストアカウント向けにサポート。
  • RocketMQアクションkeytagのテンプレート対応および柔軟なメッセージルーティングとメタデータ付加のためのkey_dispatch戦略を追加。
  • AWS S3およびAWS S3 Tablesコネクターaccess_key_idsecret_access_keyがオプション化され、AWSホスト環境ではEC2インスタンスメタデータサービスv2 APIから自動取得可能に。
  • RabbitMQシンク:ヘッダーおよびプロパティのテンプレートカスタマイズを可能にし、RabbitMQ内でのメッセージルーティングと互換性を向上。

その他の強化

高度なLLMベースのMQTTデータ処理

EMQX 6.0.0では、OpenAIやAnthropic Claudeに加え、Google Geminiモデルのサポートを追加し、LLMベースのデータ処理を強化しました。

LDAPサポートの強化

LDAP認可はJSON形式の拡張ACLルールをサポートし、LDAP認証はクライアント側キャッシュを用いてLDAPから直接ACLルールを取得可能になりました。

トレーシングの改善

最大トレース数(trace.max_traces)およびトレースファイルサイズ(trace.max_file_size)の設定が可能に。max_file_sizeに達するとトレースログは停止せず新しいファイルにローテーションされます。

クラスター管理

新しい設定オプション cluster.description により、EMQXダッシュボード上でカスタムクラスター説明を設定・表示可能になりました。ダッシュボードでの設定方法はダッシュボード -> 管理 -> クラスター設定をご覧ください。

その他の機能

上記のハイライト以外にも、最近のEMQXアップデートには多くの新機能や改善が含まれています。完全なリストはリリースノートをご参照ください。

破壊的変更

非推奨事項や破壊的変更の詳細については、EMQX 5.xとEMQX 6.0の互換性のない変更をご覧ください。

EMQX 5.xシリーズ

EMQX 5.xの機能と更新の完全なリストについては、EMQX 5.10 ドキュメント – 新機能をご参照ください。