桥接数据到 RocketMQ

EMQX 企业版技术支持发表于:2022年05月09日 16:34:56

桥接数据到 RocketMQ

搭建 RocketMQ 环境,以 Docker-compose为例:

vi docker-compose.yaml

version: '3.5'
services:
  emqx:
   image: emqx/emqx-ee:4.4.3
   container_name: emqx
   ports:
     - 18085:18083
     - 1885:1883
     - 8085:8083
  rmqnamesrv:
    image: foxiswho/rocketmq:server
    container_name: rmqnamesrv
    ports:
      - 9876:9876
    volumes:
      - ./data/logs:/opt/logs
      - ./data/store:/opt/store


  rmqbroker:
    image: foxiswho/rocketmq:broker
    container_name: rmqbroker
    ports:
      - 10909:10909
      - 10911:10911
    volumes:
      - ./data/logs:/opt/logs
      - ./data/store:/opt/store
      - ./data/brokerconf/broker.conf:/etc/rocketmq/broker.conf
      - ./tools.sh:/home/rocketmq/rocketmq-4.5.2/bin/tools.sh
    environment:
        NAMESRV_ADDR: "rmqnamesrv:9876"
        JAVA_OPTS: " -Duser.home=/opt"
        JAVA_OPT_EXT: "-server -Xms128m -Xmx128m -Xmn128m"
    command: mqbroker -c /etc/rocketmq/broker.conf
    depends_on:
      - rmqnamesrv
  

  rmqconsole:
    image: styletang/rocketmq-console-ng
    container_name: rmqconsole
    ports:
      - 8080:8080
    environment:
        JAVA_OPTS: "-Drocketmq.namesrv.addr=rmqnamesrv:9876 -Dcom.rocketmq.sendMessageWithVIPChannel=false"
    depends_on:
      - rmqnamesrv
## 编辑好yaml文件后
docker-compose up -d

创建规则:

打开 EMQX Dashboard,选择左侧的 “规则” 选项卡。

填写规则 SQL:

SELECT * FROM "t/#"

image.png

关联动作:

在 “响应动作” 界面选择 “添加”,然后在 “动作” 下拉框里选择 “桥接数据到 RocketMQ”。

image.png

填写动作参数:

“保存数据到 RocketMQ 动作需要两个参数:

1). RocketMQ 的消息主题

2). 关联资源。现在资源下拉框为空,可以点击右上角的 “新建资源” 来创建一个 RocketMQ 资源:

image.png

填写资源配置:

  填写真实的 RocketMQ 服务器地址,多个地址用,分隔,其他配置保持默认值,然后点击 “测试连接” 按钮,确保连接测试成功。

最后点击 “新建” 按钮。

image.png

返回响应动作界面,点击 “确认”。

image.png

返回规则创建界面,点击 “新建”。

image.png

规则已经创建完成,现在发一条数据:

Topic: "t/1"

QoS: 0

Payload: { "msg": "hello" }

然后通过 RocketMQ  console dashboard页面上查看消息是否生产成功(ip+8080):

image.png

在规则列表里,可以看到刚才创建的规则的命中次数已经增加了 1:

image.png


    您需要登录后才可以回复