# コンセプト FAQ

## どの製品を提供していますか？

EMQXには[2つの主要な製品ライン](https://www.emqx.com/en/products/emqx)があります。製品ごとに対応可能な接続数、機能、サービスタイプなどが異なります。

- **EMQX Enterprise**：EMQX Enterpriseは商用のセルフホスト型MQTTメッセージングプラットフォームです。データパーシステンス（Redis、MySQL、MongoDB、PostgreSQLをサポート）、Kafkaへのデータ統合、LoRaWAN対応、EMQXモニタリング、Kubernetesデプロイメントなどをサポートしています。最大100万の同時MQTT接続に対応可能です。
- **EMQX Cloud**：[EMQX Cloud](https://www.emqx.com/cloud)は完全マネージド型のMQTTクラウドサービスであり、EMQがインフラのデプロイ、メンテナンス、スケーリング、アップグレードのすべてを管理します。世界初の完全マネージドMQTT 5.0パブリッククラウドサービスとして、EMQX Cloudはワンストップの運用・保守コロケーションとMQTTサービスのためのユニークなアイソレーテッド環境を提供します。IoT時代において、EMQX Cloudは業界向けアプリケーションの迅速な構築とIoTデータの収集、伝送、計算、パーシステンスを容易に実現します。

## WebSocketとは何ですか？いつEMQXへの接続にWebSocketを使うべきですか？

WebSocketはフルデュプレックス通信プロトコルであり、モダンなウェブブラウザがサポートするAPIです。ユーザーはWebSocket APIを使って、ウェブブラウザとサーバー間に双方向通信チャネルを作成できます。WebSocket接続を通じて、サーバーはリアルタイムでブラウザにメッセージをプッシュできます。

EMQXはMQTT over WebSocketをサポートしており、ユーザーはウェブブラウザや生のTCP接続が利用できない環境から直接MQTTトピックのパブリッシュやサブスクライブが可能です。

MQTT over WebSocketの動作や設定方法の詳細については、[MQTT over WebSocket](../develop/connect-emqx/mqtt-over-websocket.md)をご参照ください。

## EMQXはどのように高い同時接続数と高可用性を実現していますか？

高い同時接続数と高可用性はEMQXの設計目標です。これらを達成するために、以下の技術を採用しています。

- ソフトリアルタイム、高同時接続、フォールトトレラントなErlang/OTPプラットフォームの最大活用
- 完全非同期アーキテクチャ
- 接続、セッション、ルート、クラスターの階層化設計
- メッセージングとコントロールパネルの分離

これらの設計と実装により、単一のEMQXノードで最大500万接続を処理可能です。

EMQXはクラスターをサポートしており、クラスター内のノード数を増やすことでパフォーマンスをスケールアウトできます。また、単一ノードがダウンしてもMQTTサービスは中断されません。

## EMQXはメッセージをサブスクライバーに転送する際に元の順序を保証しますか？

EMQXは同一クライアントから同一トピックのメッセージについて、QoSレベルに関わらず受信した順序で転送することを保証します。メッセージの損失や重複があっても、MQTTの要件に従い転送順序は一貫しています。

ただし、異なるトピック間のメッセージ転送順序は保証しません。これらのメッセージは別々のチャネルに入ると考えられます。例えば、トピックAのメッセージがトピックBのメッセージより先にEMQXに到着しても、トピックBのメッセージが先に転送される可能性があります。
