zeromq不需要消息服务器,ZeroMQ发布订阅TCP丢弃消息订阅服务器失败
我已经按照github页面上的说明在我的Manjaro Linux机器上从源代码构建了ZeroMQ。所有测试都通过了。在
基本上./autogen
./configure
./make
./make install
./make check
我用Python运行指南中的气象站示例,并使用tcp通过家庭WiFi从ly笔记本电脑向我的PC发送/接收消息。在
服务器:
^{pr2}$
客户:#
# Weather update client
# Connects SUB socket to tcp://localhost:5556
# Collects weather updates and finds avg temp in zipcode
#
import sys
import zmq
# Socket to talk to server
context = zmq.Context()
socket = context.socket(zmq.SUB)
print("Collecting updates from weather server…")
socket.connect("tcp://192.168.1.2:5556")
# Subscribe to zipcode, default is NYC, 10001
zip_filter = sys.argv[1] if len(sys.argv) > 1 else "10001"
# Python 2 - ascii bytes to unicode str
if isinstance(zip_filter, bytes):
zip_filter = zip_filter.decode('ascii')
socket.setsockopt_string(zmq.SUBSCRIBE, zip_filter)
# Process 5 updates
total_temp = 0
for update_nbr in range(500):
string = socket.recv_string()
zipcode, temperature, relhumidity = string.split()
total_temp += int(temperature)
print("Average temperature for zipcode '%s' was %dF" % (
zip_filter, total_temp / update_nbr)
)
偶尔,订阅者不会检测到从发布者发送的消息,订阅者将坐在那里等待下一条消息的传入。发布者将继续发送消息,但是一旦订阅者接收不到消息,它将不再接收任何消息。我发现重新启动发布服务器将导致订阅服务器重新开始接收消息。在
我能理解一条消息正在被丢弃,但是有人能解释一下为什么一旦发生这种情况,订阅者就不能接收到更多的消息了吗?我做得不对吗?在
我相信这可能是一个构建问题,因为当我在基于apt-get安装的docker中运行相同的示例代码时,我不会丢失任何消息,也不会失败。我需要重建,因为我最终想使用NORM。在
谢谢。在
zeromq不需要消息服务器,ZeroMQ发布订阅TCP丢弃消息订阅服务器失败相关推荐
- 异步消息队列zeromq实现服务器间高性能通信
ZeroMQ 是一个很有个性的项目,它原来是定位为"史上最快消息队列",所以名字里面有"MQ"两个字母,但是后来逐渐演变发展,慢慢淡化了消息队列的身影,改称为消 ...
- 史上最快消息内核——ZeroMQ
ZeroMQ是一个很有个性的项目,它原来是定位为"史上最快消息队列",所以名字里面有"MQ"两个字母,但是后来逐渐演变发展,慢慢淡化了消息队列的身影,改称为消息 ...
- SpringBoot整合MQTT服务器实现消息的发送与订阅(推送消息与接收推送)
场景 Windows上Mqtt服务器搭建与使用客户端工具MqttBox进行测试: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/1 ...
- kafka 发布-订阅模式_使用Apache Kafka作为消息系统的发布-订阅通信中的微服务,并通过集成测试进行了验证...
kafka 发布-订阅模式 发布-订阅消息系统在任何企业体系结构中都起着重要作用,因为它可以实现可靠的集成而无需紧密耦合应用程序. 在解耦的系统之间共享数据的能力并不是一个容易解决的问题. 考虑一个企 ...
- 使用Apache Kafka作为消息系统的发布-订阅通信中的微服务,并通过集成测试进行了验证...
发布-订阅消息系统在任何企业体系结构中都起着重要作用,因为它可以实现可靠的集成而无需紧密耦合应用程序. 在解耦的系统之间共享数据的能力并不是一个容易解决的问题. 考虑一个企业,其中具有使用不同语言和平 ...
- Redis的订阅发布功能对比RabbitMQ消息队列
1.对比 特性 redis RabbitMQ 可靠性 没有相应的机制保证消息的可靠消费,如果发布者发布一条消息,而没有对应的订阅者的话,这条消息将丢失,不会存在内存中 具有消息消费确认机制,如果发布一 ...
- 调试笔记 — Redis 消息队列发布信息被消费者重复订阅多次牵扯到的 Tomcat 配置问题 [#00001]
最近在项目中发现了一个奇葩的 BUG ,当用户调用后台时,后台向消息队列中发布一条消息,这条消息会被监听器(消费者)监听到,有趣的事情就在这里,此时由于只发送了一条消息,照理说监听器应该只会触发一次, ...
- SpringBoot RedisMQ消息队列与发布订阅
SpringBoot简单整合RedisMQ消息队列和发布订阅 注:RedisMq消息队列使用redis数组实现,leftpush存一,rightpop取一. 1.application.propert ...
- google的api key调用次数是多少_Sprint Boot如何基于Redis发布订阅实现异步消息系统的同步调用?...
前言 在很多互联网应用系统中,请求处理异步化是提升系统性能一种常用的手段,而基于消息系统的异步处理由于具备高可靠性.高吞吐量的特点,因而在并发请求量比较高的互联网系统中被广泛应用.与此同时,这种方案也 ...
最新文章
- 求最小子数组之二维篇
- springmvc三十二:spring mvc的运行流程
- python日历小程序_一个查看网络设备信息Python小程序
- beautifulsoup4
- 转-iOS开发系列--地图与定位
- C语言实用算法系列之行指针
- 抖音客新版UI短视频点赞任务系统完美运营级别[等级功能+信誉积分+保证金]
- 《工业设计史》 第二章:手工艺设计阶段
- ExpandableListView 实现三级菜单中grou_item与child_item点击无响应
- Word2013怎样从任意页开始设置页码
- 宝宝湿疹怎么办?宝宝湿疹怎么处理最好?
- 修改VS项目的目标平台(目标框架)
- python04-集合与字典
- java70-GUL图形用户界面初识
- doraemon的python 模块
- No interface expected here的解决方法
- 2021最新版万年历小程序搭建教程
- (一)C#Winform导入Excel数据到datagridview控件
- Web前端,CSS中关于背景颜色、背景图片、背景平铺、背景位置、背景相关属性连写
- Cisco交换机配合NPS执行802.1X有线准入
热门文章
- 那朵美丽的格桑花,你是否依然绽放?
- mysql数据库无限分类_php+mysql数据库实现无限分类的方法
- 数据库半年回顾:国外波澜不惊,国内势如破竹
- 【讲师专访】Oracle ACE 总监侯圣文:不懂开发的运维终将被淘汰
- 【华为云技术分享】【我的物联网成长记16】玩转设备固件升级
- 【华为云技术分享】关于Linux下Nginx的安装及配置
- DevOps组织IO专业人员新角色分析与技能提升
- 关于卸载Python第三方包的粗暴方法
- 如何在有道云笔记的Markdown上上传本地图片(亲测好用,而且不用开会员)
- [Spark] - HashPartitioner RangePartitioner 区别