Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

MQTT Server/MQTT Broker - Scalable Distributed MQTT Message Broker for IoT in the 5G Era

License

NotificationsYou must be signed in to change notification settings

rmqtt/rmqtt

Repository files navigation

GitHub ReleaseRust VersionAsk DeepWikicrates.io pagedocs.rs page

English |简体中文

RMQTT broker is a fully open source, highly scalable, highly available distributed MQTT messaging broker for IoT, M2Mand mobile applications that can handle millions of concurrent clients on a single service node.

Features

Installation

TheRMQTT broker is cross-platform, which supports Linux, Unix, macOS and Windows. It meansRMQTT can be deployed onx86_64 architecture servers and ARM devices like Raspberry Pi.

Run RMQTT using Docker

  • Single node
mkdir -p /app/log/rmqttdocker run -d --name rmqtt -p 1883:1883 -p 8883:8883 -p 11883:11883 -p 6060:6060 -v /app/log/rmqtt:/var/log/rmqtt  rmqtt/rmqtt:latest
  • Multi node
  docker run -d --name rmqtt1 -p 1884:1883 -p 8884:8883 -p 11884:11883 -p 6064:6060 -v /app/log/rmqtt/1:/var/log/rmqtt  rmqtt/rmqtt:latest --id 1 --plugins-default-startups"rmqtt-cluster-raft" --node-grpc-addrs"1@172.17.0.3:5363""2@172.17.0.4:5363""3@172.17.0.5:5363" --raft-peer-addrs"1@172.17.0.3:6003""2@172.17.0.4:6003""3@172.17.0.5:6003"     docker run -d --name rmqtt2 -p 1885:1883 -p 8885:8883 -p 11885:11883 -p 6065:6060 -v /app/log/rmqtt/2:/var/log/rmqtt  rmqtt/rmqtt:latest --id 2 --plugins-default-startups"rmqtt-cluster-raft" --node-grpc-addrs"1@172.17.0.3:5363""2@172.17.0.4:5363""3@172.17.0.5:5363" --raft-peer-addrs"1@172.17.0.3:6003""2@172.17.0.4:6003""3@172.17.0.5:6003"     docker run -d --name rmqtt3 -p 1886:1883 -p 8886:8883 -p 11886:11883 -p 6066:6060 -v /app/log/rmqtt/3:/var/log/rmqtt  rmqtt/rmqtt:latest --id 3 --plugins-default-startups"rmqtt-cluster-raft" --node-grpc-addrs"1@172.17.0.3:5363""2@172.17.0.4:5363""3@172.17.0.5:5363" --raft-peer-addrs"1@172.17.0.3:6003""2@172.17.0.4:6003""3@172.17.0.5:6003"

Node IDs: 1, 2, 3; Node IP Addrs: 172.17.0.3, 172.17.0.4, 172.17.0.5

Create a static cluster by docker-compose

  1. Download docker-compose configuration template

  2. Start docker-compose cluster

docker-compose up -d
  1. View cluster
curl"http://127.0.0.1:6066/api/v1/health/check"

Installing via ZIP Binary Package (Linux、MacOS、Windows)

Get the binary package of the corresponding OS fromRMQTT Download page.

Library Mode Integration

In addition to running as a standalone MQTT Broker/Server, rmqtt also provides aLibrary Mode, which allows you to embed rmqtt directly into your Rust applications or services. Simply add the following dependency to yourCargo.toml, and you can use rmqtt's APIs just like a regular Rust library:

[dependencies]rmqtt ="0.16"

For more details about using rmqtt in library mode, please refer to theRMQTT Library Documentation.

Experience

Test

Functional Testing

paho.mqtt.testing(MQTT V3.1.1)client_test.py

  • client_test.py Test.test_retained_messages [OK]
  • client_test.py Test.test_zero_length_clientid [OK]
  • client_test.py Test.will_message_test [OK]
  • client_test.py Test.test_zero_length_clientid [OK]
  • client_test.py Test.test_offline_message_queueing [OK]
  • client_test.py Test.test_overlapping_subscriptions [OK]
  • client_test.py Test.test_keepalive [OK]
  • client_test.py Test.test_redelivery_on_reconnect [OK]
  • client_test.py Test.test_dollar_topics [OK]
  • client_test.py Test.test_unsubscribe [OK]
  • client_test.py Test.test_subscribe_failure [OK]
    • You need to modify thermqtt-acl.toml configuration and add the following line at the first line: ["deny", "all", "subscribe", ["test/nosubscribe"]]

paho.mqtt.testing(MQTT V5.0)client_test5.py

  • client_test5.py Test.test_retained_message [OK]
  • client_test5.py Test.test_will_message [OK]
  • client_test5.py Test.test_offline_message_queueing [OK]
  • client_test5.py Test.test_dollar_topics [OK]
  • client_test5.py Test.test_unsubscribe [OK]
  • client_test5.py Test.test_session_expiry [OK]
  • client_test5.py Test.test_shared_subscriptions [OK]
  • client_test5.py Test.test_basic [OK]
  • client_test5.py Test.test_overlapping_subscriptions [OK]
  • client_test5.py Test.test_redelivery_on_reconnect [OK]
  • client_test5.py Test.test_payload_format [OK]
  • client_test5.py Test.test_publication_expiry [OK]
  • client_test5.py Test.test_subscribe_options [OK]
  • client_test5.py Test.test_assigned_clientid [OK]
  • client_test5.py Test.test_subscribe_identifiers [OK]
  • client_test5.py Test.test_request_response [OK]
  • client_test5.py Test.test_server_topic_alias [OK]
  • client_test5.py Test.test_client_topic_alias [OK]
  • client_test5.py Test.test_maximum_packet_size [OK]
  • client_test5.py Test.test_keepalive [OK]
  • client_test5.py Test.test_zero_length_clientid [OK]
  • client_test5.py Test.test_user_properties [OK]
  • client_test5.py Test.test_flow_control2 [OK]
  • client_test5.py Test.test_flow_control1 [OK]
  • client_test5.py Test.test_will_delay [OK]
  • client_test5.py Test.test_server_keep_alive [OK]
    • You need to modify thermqtt.toml configuration and changemax_keepalive to 60.
  • client_test5.py Test.test_subscribe_failure [OK]
    • You need to modify thermqtt-acl.toml configuration and add the following line at the first line: ["deny", "all", "subscribe", ["test/nosubscribe"]]

Benchmark Testing

environment

ItemContent
Systemx86_64 GNU/LinuxRocky Linux 9.2 (Blue Onyx)
CPUIntel(R) Xeon(R) CPU E5-2696 v3 @ 2.30GHz72(CPU(s)) = 18(Core(s)) * 2(Thread(s) per core) * 2(Socket(s))
MemoryDDR3/2333128G
Disk2T
Containerpodmanv4.4.1
MQTT Benchdocker.io/rmqtt/rmqtt-bench:latestv0.1.3
MQTT Brokerdocker.io/rmqtt/rmqtt:latestv0.3.0
OtherMQTT Bench and MQTT Broker coexistence

Connection Concurrency Performance

ItemSingle NodeRaft Cluster Mode
Total Concurrent Clients1,000,0001,000,000
Connection Handshake Rate(5500-7000)/second(5000-7000)/second

Message Throughput Performance

ItemSingle NodeRaft Cluster Mode
Subscription Client Count1,000,0001,000,000
Publishing Client Count4040
Message Throughput Rate150,000/second156,000/second

For detailed benchmark test results and information, see documentation.

⭐ Star History

Star History Chart

Sponsor this project

 

Packages

No packages published

Contributors9

Languages


[8]ページ先頭

©2009-2025 Movatter.jp