目录

  • 一:需求背景
  • 二:相关文档
  • 三:验证TDMQ广播消息


一:需求背景

  • 目前公司需要将决策引擎处理的结果, 一部分数据交给下游分析/入黑/通知等功能。因此就需要决策引擎生产结果让多方下游去消费。 而我需要实现下游的一部分功能。

二:相关文档

  • TDMQ官方文档(TCP的SDK): https://www.tencentcloud.com/zh/document/product/1110/42950

三:验证TDMQ广播消息

  • 将TDMQ使用配置写入到一个配置文件中: config.py
topic = ''
tdmq_url = ''
tdmq_secret_key = ''
  • 编写生产者发送消息:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time   : 2023/7/24 16:28
# 模拟TDMQ生产者发送消息
import json

import pulsar

from conf.config import tdmq_secret_key, tdmq_url, topic


def produser_send_msg():
    """生产者发送消息"""
    tdmq_client = pulsar.Client(
        authentication=pulsar.AuthenticationToken(tdmq_secret_key),
        service_url=tdmq_url
    )
    producer = tdmq_client.create_producer(
        topic=topic
    )
    send_data = json.dumps({"uniq_id": "1234567890", "project_id": 2})
    producer.send(
        send_data.encode('utf-8'),
        properties={},
        partition_key=''
    )


if __name__ == '__main__':
    produser_send_msg()
  • 编写两个消费者, 消费消息(第二个只需要将subscription_name改为sub_topic2)
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time   : 2023/7/24 18:55
# @Author : shanwen.ren
import pulsar

from conf.config import tdmq_secret_key, tdmq_url, post_fund_topic

tdmq_client = pulsar.Client(
        authentication=pulsar.AuthenticationToken(tdmq_secret_key),
        service_url=tdmq_url
    )

consumer = tdmq_client.subscribe(
    # topic完整路径,格式为persistent://集群(租户)ID/命名空间/Topic名称,从【Topic管理】处复制
    topic=topic,
    # 订阅名称
    subscription_name='sub_topic1'
)


def produser_send_msg():
    """消费者消费消息"""
    # 获取消息
    msg = consumer.receive()
    try:
        # 模拟业务
        print("Received message '{}' id='{}'".format(msg.data(), msg.message_id()))
        # 消费成功,回复ack
        consumer.acknowledge(msg)
    except:
        # 消费失败,消息将会重新投递
        consumer.negative_acknowledge(msg)


if __name__ == '__main__':
    while True:
        produser_send_msg()
  • 开启两个消费者进程。
  • 初识TDMQ_中间件

  • 启动生产者发送消息
  • 初识TDMQ_发送消息_02


  • 初识TDMQ_发送消息_03


  • 初识TDMQ_中间件_04