mqtt-proxy
#
Summary#
NameThe plugin mqtt-proxy
only works in stream model, it help you to dynamic load
balance by client_id
of MQTT.
And this plugin both support MQTT protocol 3.1.* and 5.0.
#
AttributesName | Type | Requirement | Default | Valid | Description |
---|---|---|---|---|---|
protocol_name | string | required | Name of protocol, should be MQTT in normal. | ||
protocol_level | integer | required | Level of protocol, it should be 4 for MQTT 3.1.* . it should be 5 for MQTT 5.0 . | ||
upstream.host | string | required | the IP or host of upstream, will forward current request to. | ||
upstream.ip | string | deprecated | Use "host" instead. IP address of upstream, will forward current request to. | ||
upstream.port | number | required | Port of upstream, will forward current request to. |
#
How To EnableTo enable this plugin, we need to enable the stream_proxy configuration in conf/config.yaml
first.
For example, the following configuration represents listening on the 9100 TCP port.
... router: http: 'radixtree_uri' ssl: 'radixtree_sni' stream_proxy: # TCP/UDP proxy tcp: # TCP proxy port list - 9100 dns_resolver: ...
Then send the MQTT request to port 9100.
Creates a stream route, and enable plugin mqtt-proxy
.
curl http://127.0.0.1:9080/apisix/admin/stream_routes/1 -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -d '{ "remote_addr": "127.0.0.1", "plugins": { "mqtt-proxy": { "protocol_name": "MQTT", "protocol_level": 4, "upstream": { "host": "127.0.0.1", "port": 1980 } } }}'
#
Delete Plugin$ curl http://127.0.0.1:9080/apisix/admin/stream_routes/1 -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X DELETE
The mqtt-proxy
plugin has been deleted now.