桥接集群 的不同在于:桥接不会复制主题树与路由表,只根据桥接规则转发 MQTT 消息。

    • RPC 桥接:RPC 桥接只能在 EMQ X Broker 间使用,且不支持订阅远程节点的主题去同步数据
    • MQTT 桥接:MQTT 桥接同时支持转发和通过订阅主题来实现数据同步两种方式

    在 EMQ X 中,通过修改 来配置 bridge。EMQ X 根据不同的 name 来区分不同的 bridge。例如:

    在需要创建多个 bridge 时,可以先复制其全部的配置项,在通过使用不同的 name 来标示(比如 bridge.mqtt.$name.address 其中 $name 指代的为 bridge 的名称)

    1. ## 桥接地址: 使用节点名(nodename@host)则用于 RPC 桥接,使用 host:port 用于 MQTT 连接
    2. bridge.mqtt.aws.address = 192.168.1.2:1883
    3. ## 桥接的协议版本
    4. ## 枚举值: mqttv3 | mqttv4 | mqttv5
    5. bridge.mqtt.aws.proto_ver = mqttv4
    6. ## 客户端的 client_id
    7. bridge.mqtt.aws.client_id = bridge_emq
    8. ## 客户端的 clean_start 字段
    9. ## 注: 有些 MQTT Broker 需要将 clean_start 值设成 `true`
    10. bridge.mqtt.aws.clean_start = true
    11. ## 客户端的 username 字段
    12. bridge.mqtt.aws.username = user
    13. ## 客户端的 password 字段
    14. bridge.mqtt.aws.password = passwd
    15. ## 客户端是否使用 ssl 来连接远程服务器
    16. bridge.mqtt.aws.ssl = off
    17. ## 客户端 SSL 连接的 CA 证书 (PEM格式)
    18. ## 客户端 SSL 连接的 SSL 证书
    19. bridge.mqtt.aws.certfile = etc/certs/client-cert.pem
    20. ## 客户端 SSL 连接的密钥文件
    21. bridge.mqtt.aws.keyfile = etc/certs/client-key.pem
    22. ## SSL 加密方式
    23. bridge.mqtt.aws.ciphers = ECDHE-ECDSA-AES256-GCM-SHA384,ECDHE-RSA-AES256-GCM-SHA384
    24. ## TLS PSK 的加密套件
    25. ## 注意 'listener.ssl.external.ciphers' 和 'listener.ssl.external.psk_ciphers' 不能同时配置
    26. ##
    27. ## See 'https://tools.ietf.org/html/rfc4279#section-2'.
    28. ## bridge.mqtt.aws.psk_ciphers = PSK-AES128-CBC-SHA,PSK-AES256-CBC-SHA,PSK-3DES-EDE-CBC-SHA,PSK-RC4-SHA
    29. ## 客户端的心跳间隔
    30. bridge.mqtt.aws.keepalive = 60s
    31. ## 支持的 TLS 版本
    32. bridge.mqtt.aws.tls_versions = tlsv1.2,tlsv1.1,tlsv1
    33. ## 需要被转发的消息的主题
    34. bridge.mqtt.aws.forwards = sensor1/#,sensor2/#
    35. ## 挂载点(mountpoint)
    36. bridge.mqtt.aws.mountpoint = bridge/emqx2/${node}/
    37. bridge.mqtt.aws.subscription.1.topic = cmd/topic1
    38. ## 订阅对端主题的 QoS
    39. bridge.mqtt.aws.subscription.1.qos = 1
    40. ## 桥接的重连间隔
    41. ## 默认: 30秒
    42. bridge.mqtt.aws.reconnect_interval = 30s
    43. ## QoS1/QoS2 消息的重传间隔
    44. bridge.mqtt.aws.retry_interval = 20s
    45. ## Inflight 大小.
    46. bridge.mqtt.aws.max_inflight_batches = 32
    47. ## emqx_bridge 内部用于 batch 的消息数量
    48. bridge.mqtt.aws.queue.batch_count_limit = 32
    49. ## emqx_bridge 内部用于 batch 的消息字节数
    50. bridge.mqtt.aws.queue.batch_bytes_limit = 1000MB
    51. ## 放置 replayq 队列的路径,如果没有在配置中指定该项,那么 replayq
    52. ## 将会以 `mem-only` 的模式运行,消息不会缓存到磁盘上。
    53. bridge.mqtt.aws.queue.replayq_dir = data/emqx_aws_bridge/
    54. ## Replayq 数据段大小