代码拉取完成,页面将自动刷新
同步操作将从 EMQX/nanomq 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
# Quick Reference
Official Website:
https://nanomq.io/
Where to get help and fire issues:
https://github.com/emqx/nanomq/issues or https://slack-invite.emqx.io/ or https://discord.gg/xYGf3fQnES
Supported architectures
POSIX compatible Architecture
# What is NanoMQ
Nano MQTT Broker (NanoMQ) is a lightweight and blazing-fast MQTT Broker for the IoT Edge platform. NanoMQ unifies data in motions and data in use between Edge and Cloud in an efficient manner.
Ihe cost effectiveness, performant, high compatibility and interoperability makes NanoMQ your best option of edge messaging broker and databus.
## Features
- Fully MQTT 5.0 Compliant
Fully support MQTT 5.0/3.1.1, Compatible with all standard open-source MQTT SDKs.
- MQTT Bridges
Bridging message from edge to multiple clouds. In-line connections to Global cloud services.
- Message Persistence
Preserve your business-critical data with built-in data persistence, and resume uploading automatically when the connection is restored.
- Rule Engine
Unlock the flexibility of data with a SQL-based rule engine. Integrates with eKuiper to bring stream processing to the edge.
- Integrability
Reduce the cost of integrating edge computing applications with event-driven WebHooks. Easy to maintain with EdgeOps friendly HTTP APIs.
- All-round
Support multiple protocols such as ZeroMQ/nanomsg/NNG/WebSocket. Enabling flexible and diverse routing topology on edge with. Secure your IoT connections with TLS/SSL.
# How to use this image
```bash
docker pull emqx/nanomq:latest
```
Run specific version of NanoMQ:
```bash
docker run -d -p 1883:1883 -p 8883:8883 --name nanomq emqx/nanomq:latest
```
There are 3 kinds of NanoMQ docker image:
Default: Take alpine as base image, minimum size but only has basic MQTT broker function.
```bash
docker pull emqx/nanomq:0.14.1
```
Slim: Take Ubuntu as base image, moderate size with necessary features like TLS/SSL, SQLite and Rule Engine.
```bash
docker pull emqx/nanomq:0.14.1-slim
```
Full: A comprehensive docker image with all features on board, such as QUIC bridging, ZeroMQ gateway and Bench toolkit.
```bash
docker pull emqx/nanomq:0.14.1-full
```
### NanoMQ configuration file
Docker version:
Specify config file path from host:
```bash
docker run -d -p 1883:1883 -v {YOU LOCAL PATH}: /etc \
--name nanomq emqx/nanomq:0.14.1
```
Recommend to use Environment variables to config NanoMQ
#### NanoMQ Environment Variables
| Variable | Type | Value |
| ------------------------------------------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ |
|NANOMQ_BROKER_URL |String | 'nmq-tcp://host:port', 'tls+nmq-tcp://host:port'|
|NANOMQ_DAEMON |Boolean | Set nanomq as daemon (default: false).|
|NANOMQ_NUM_TASKQ_THREAD | Integer | Number of taskq threads used, `num` greater than 0 and less than 256.|
|NANOMQ_MAX_TASKQ_THREAD | Integer | Maximum number of taskq threads used, `num` greater than 0 and less than 256.|
|NANOMQ_PARALLEL | Long | Number of parallel.|
|NANOMQ_PROPERTY_SIZE | Integer | Max size for a MQTT user property.|
|NANOMQ_MSQ_LEN | Integer | Queue length for resending messages.|
|NANOMQ_QOS_DURATION | Integer | The interval of the qos timer.|
|NANOMQ_ALLOW_ANONYMOUS | Boolean | Allow anonymous login (default: true).|
|NANOMQ_WEBSOCKET_ENABLE | Boolean | Enable websocket listener (default: true).|
|NANOMQ_WEBSOCKET_URL | String | 'nmq-ws://host:port/path', 'nmq-wss://host:port/path' |
|NANOMQ_HTTP_SERVER_ENABLE | Boolean | Enable http server (default: false).|
|NANOMQ_HTTP_SERVER_PORT | Integer | Port for http server (default: 8081).|
|NANOMQ_HTTP_SERVER_USERNAME | String | Http server user name for auth.|
|NANOMQ_HTTP_SERVER_PASSWORD | String | Http server password for auth.|
|NANOMQ_TLS_ENABLE|Boolean|Enable TLS connection.|
|NANOMQ_TLS_URL| String | 'tls+nmq-tcp://host:port'.|
|NANOMQ_TLS_CA_CERT_PATH| String | Path to the file containing PEM-encoded CA certificates.|
|NANOMQ_TLS_CERT_PATH| String | Path to a file containing the user certificate.|
|NANOMQ_TLS_KEY_PATH| String | Path to the file containing the user's private PEM-encoded key.|
|NANOMQ_TLS_KEY_PASSWORD| String | String containing the user's password. Only used if the private keyfile is password-protected.|
|NANOMQ_TLS_VERIFY_PEER| Boolean | Verify peer certificate (default: false).|
|NANOMQ_TLS_FAIL_IF_NO_PEER_CERT| Boolean | Server will fail if the client does not have a certificate to send (default: false).|
|NANOMQ_CONF_PATH | String | NanoMQ main config file path (defalt: /etc/nanomq.conf).|
- Specify a broker url.
On host system:
```bash
export NANOMQ_BROKER_URL="nmq-tcp://0.0.0.0:1883"
export NANOMQ_TLS_ENABLE=true
export NANOMQ_TLS_URL="tls+nmq-tcp://0.0.0.0:8883"
```
Creating docker container:
```bash
docker run -d -p 1883:1883 -p 8883:8883 \
-e NANOMQ_BROKER_URL="nmq-tcp://0.0.0.0:1883" \
-e NANOMQ_TLS_ENABLE=true \
-e NANOMQ_TLS_URL="tls+nmq-tcp://0.0.0.0:8883" \
--name nanomq emqx/nanomq:0.14.1-full
```
- Specify a nanomq config file path.
On host system:
```bash
export NANOMQ_CONF_PATH="/usr/local/etc/nanomq.conf"
```
Creating docker container:
```bash
docker run -d -p 1883:1883 -e NANOMQ_CONF_PATH="/usr/local/etc/nanomq.conf" \
[-v {LOCAL PATH}:{CONTAINER PATH}] \
--name nanomq emqx/nanomq:0.14.0-slim
```
### Performance Tunning
In order to achieve the best performance on your platform, recommend to change following settings:
Name | Type | Description
---------------------------------- | ------------- | ----------------------------------------------------------------------------------------------
system.num_taskq_thread | Integer | Number of taskq threads used. (equal to your CPU cores)
system.max_taskq_thread | Integer | Maximum number of taskq threads used. (equal to your CPU cores)
system.parallel | Long | Number of parallel. (equal to your CPU cores * 2)
mqtt.session.msq_len | Integer | Inflight window/Queue length for resending messages. (Recommend to set as max number: 65535, depending on your memory limitation)
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。