开发工具分享
  • 首页
  • 计算科学
  • 文化旅游
  • 项目和网站
    • OSSEZ 计算技术
    • USRealEstate 社区
    • 地区文化
    • CWIKI.US
    • BUG.OSSEZ.COM
    • RSS.OSSEZ.COM
CWIKIUS.CN
一个有独立思考和温度的清新站
  1. Home
  2. Computer Science
  3. This article

Python 通过 stomp 发送消息到 ActiveMQ 的代码

2023年09月20日 505Browse 0Like 0Comments

只需要下面简单的几行代码,我们就可以把我们本地数据发送到 ActiveMQ 上面去。

def send_mq(data):
    hosts = [(AMQHOST, AMQPORT)]
    conn = stomp.Connection(host_and_ports=hosts, auto_content_length=False)
    conn.connect(username=AMQUSER, passcode=AMQPASS, wait=True)
    conn.send(body=json.dumps(data), destination=TOPICNAME)

    conn.disconnect()

上面需要根据你自己的服务器配置情况配置参数。

为什么使用消息不使用 API 调用

在跨平台数据交换的时候,我们其实有很多可以实现的方法。

我们可以构建一个 API 服务器,让不同的客户端调用不同的端口来实现数据交换。

我们也可以使用消息服务器,让不同的工具获得自己的数据后发送约定好的数据格式到消息服务器上,然后让我们后台部署的数据服务器来从消息服务器上获得数据并且进行处理。

使用消息服务器的好处是显而易见的,当有多个客户端的时候,我们可以通过消息服务器来作为缓存。

非常重要的一个作用就是解耦。

用户的数据只负责获得数据,比如说我们常用的例子,我们会使用不同的工具来做爬虫程序。

当爬虫获得数据后,爬虫程序将会把已经获得数据组装成消息,然后发送到消息服务器上。

相比较我们让爬虫程序直接调用接口,这样的耦合度更低。

爬虫程序不需要了解接口是怎么定义的,只需要发送我们约定好的数据格式就行。

 

2023-09-19_12-52-35

 

同时假设我们有多个爬虫程序的话,多个程序的 API 调用将会对后端的 API 程序造成负载,而且爬虫程序的启动时间是不一样的,有可能短期有大量的数据涌入,这样我们可以通过消息服务器让程序自动运行,当没有消息的时候,后端程序属于空闲,可以消费积压的消息。

当大量消息涌入的时候,因为消息服务器的消峰功能,不会让后端的数据处理程序出现问题,保持更好的吞吐量。

 

https://www.isharkfly.com/t/python-stomp-activemq/14990

Tags: None
Last updated:2023年09月20日

HoneyMoose

有温度的人文和独立的思考

Like
< Previous
Next >

Comments

Cancel reply

Archives
  • May 2026
  • April 2026
  • March 2026
  • February 2026
  • January 2026
  • December 2025
  • November 2025
  • October 2025
  • September 2025
  • August 2025
  • July 2025
  • June 2025
  • May 2025
  • April 2025
  • March 2025
  • February 2025
  • January 2025
  • December 2024
  • November 2024
  • October 2024
  • September 2024
  • August 2024
  • July 2024
  • June 2024
  • May 2024
  • April 2024
  • March 2024
  • February 2024
  • January 2024
  • December 2023
  • November 2023
  • October 2023
  • September 2023
  • August 2023
  • July 2023
  • June 2023
  • May 2023
  • April 2023
  • December 2022
  • November 2022
  • October 2022
  • September 2022
  • August 2022
  • May 2022
  • April 2022
  • March 2022
  • February 2022
  • January 2022
  • December 2021
  • November 2021
  • October 2021
  • September 2021
  • August 2021
  • July 2021
  • June 2021
  • May 2021
  • April 2021
  • March 2021
  • February 2021
  • January 2021
  • December 2020
  • November 2020
  • October 2020
  • September 2020
  • August 2020
  • July 2020
  • June 2020
  • May 2020
  • April 2020
  • March 2020
  • February 2020
  • January 2020
  • December 2019
  • November 2019
  • October 2019
  • September 2019
  • August 2019
  • July 2019
  • June 2019
  • May 2019
  • April 2019
  • March 2019
  • February 2019
  • January 2019
  • December 2018
  • November 2018
  • October 2018
  • September 2018
  • August 2018
  • July 2018
  • June 2018
  • May 2018
  • April 2018
  • March 2018
Categories
  • Computer Science (2,362)
    • Confluence (663)
    • Gradle (12)
  • U.S. (482)
  • 文化旅游 (145)

COPYRIGHT © 2020 CWIKIUS. ALL RIGHTS RESERVED.

THEME KRATOS MADE BY VTROIS

湘ICP备2020018253号-1