当前位置: 首页 > news >正文

初识TDMQ

目录

    • 一:需求背景
    • 二:相关文档
    • 三:验证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 jsonimport pulsarfrom conf.config import tdmq_secret_key, tdmq_url, topicdef 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 pulsarfrom conf.config import tdmq_secret_key, tdmq_url, post_fund_topictdmq_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()))# 消费成功,回复ackconsumer.acknowledge(msg)except:# 消费失败,消息将会重新投递consumer.negative_acknowledge(msg)if __name__ == '__main__':while True:produser_send_msg()
    
  • 开启两个消费者进程。
    在这里插入图片描述

  • 启动生产者发送消息
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

http://www.lryc.cn/news/100478.html

相关文章:

  • UEditor 百度富文本编辑器使用 遇到问题
  • jaeger+elasticsearch(cassandra ) 单机部署以及(400)报错
  • VSCode配置之C++ SQLite3极简配置方案
  • P5725 【深基4.习8】求三角形
  • 分布式消息中间件介绍
  • 【Linux进程篇】冯诺依曼体系
  • 陕西师范大学大学:融合传统与创新的学府之旅
  • HTML <progress> 标签
  • 常用测试工具汇总
  • 【爬虫逆向案例】某道翻译js逆向—— sign解密
  • Verilog语法学习——LV9_使用子模块实现三输入数的大小比较
  • YAML+PyYAML笔记 7 | PyYAML源码之yaml.compose_all(),yaml.load(),yaml.load_all()
  • (css)列表点击前后样式
  • Redis服务优化
  • uniAPP 浙政钉 入门手册
  • flask处理文件上传
  • 教雅川学缠论04-笔
  • Unity3d_post process layer 抗锯齿设置
  • 基于FPGA实现OSD功能
  • Java019-1——面向对象的三大特性
  • 2023年的深度学习入门指南(22) - 百川大模型13B的运行及量化
  • 无涯教程-jQuery - empty( )方法函数
  • 微信小程序实现蓝牙开锁、开门、开关、指令发送成功,但蓝牙设备毫无反应、坑
  • 微信小程序中使用echarts方法
  • 【面试题】前端中 JS 发起的请求可以暂停吗?
  • 通过社区参与解锁早期增长:Maven 远程医疗平台概览
  • Vue中使用echarts
  • 边缘计算对现代交通的重要作用
  • Python桥接模式介绍、使用
  • ChatGPT在知识图谱的构建和更新中的应用如何?