我已经按照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丢弃消息订阅服务器失败相关推荐

  1. 异步消息队列zeromq实现服务器间高性能通信

    ZeroMQ 是一个很有个性的项目,它原来是定位为"史上最快消息队列",所以名字里面有"MQ"两个字母,但是后来逐渐演变发展,慢慢淡化了消息队列的身影,改称为消 ...

  2. 史上最快消息内核——ZeroMQ

    ZeroMQ是一个很有个性的项目,它原来是定位为"史上最快消息队列",所以名字里面有"MQ"两个字母,但是后来逐渐演变发展,慢慢淡化了消息队列的身影,改称为消息 ...

  3. SpringBoot整合MQTT服务器实现消息的发送与订阅(推送消息与接收推送)

    场景 Windows上Mqtt服务器搭建与使用客户端工具MqttBox进行测试: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/1 ...

  4. kafka 发布-订阅模式_使用Apache Kafka作为消息系统的发布-订阅通信中的微服务,并通过集成测试进行了验证...

    kafka 发布-订阅模式 发布-订阅消息系统在任何企业体系结构中都起着重要作用,因为它可以实现可靠的集成而无需紧密耦合应用程序. 在解耦的系统之间共享数据的能力并不是一个容易解决的问题. 考虑一个企 ...

  5. 使用Apache Kafka作为消息系统的发布-订阅通信中的微服务,并通过集成测试进行了验证...

    发布-订阅消息系统在任何企业体系结构中都起着重要作用,因为它可以实现可靠的集成而无需紧密耦合应用程序. 在解耦的系统之间共享数据的能力并不是一个容易解决的问题. 考虑一个企业,其中具有使用不同语言和平 ...

  6. Redis的订阅发布功能对比RabbitMQ消息队列

    1.对比 特性 redis RabbitMQ 可靠性 没有相应的机制保证消息的可靠消费,如果发布者发布一条消息,而没有对应的订阅者的话,这条消息将丢失,不会存在内存中 具有消息消费确认机制,如果发布一 ...

  7. 调试笔记 — Redis 消息队列发布信息被消费者重复订阅多次牵扯到的 Tomcat 配置问题 [#00001]

    最近在项目中发现了一个奇葩的 BUG ,当用户调用后台时,后台向消息队列中发布一条消息,这条消息会被监听器(消费者)监听到,有趣的事情就在这里,此时由于只发送了一条消息,照理说监听器应该只会触发一次, ...

  8. SpringBoot RedisMQ消息队列与发布订阅

    SpringBoot简单整合RedisMQ消息队列和发布订阅 注:RedisMq消息队列使用redis数组实现,leftpush存一,rightpop取一. 1.application.propert ...

  9. google的api key调用次数是多少_Sprint Boot如何基于Redis发布订阅实现异步消息系统的同步调用?...

    前言 在很多互联网应用系统中,请求处理异步化是提升系统性能一种常用的手段,而基于消息系统的异步处理由于具备高可靠性.高吞吐量的特点,因而在并发请求量比较高的互联网系统中被广泛应用.与此同时,这种方案也 ...

最新文章

  1. 求最小子数组之二维篇
  2. springmvc三十二:spring mvc的运行流程
  3. python日历小程序_一个查看网络设备信息Python小程序
  4. beautifulsoup4
  5. 转-iOS开发系列--地图与定位
  6. C语言实用算法系列之行指针
  7. 抖音客新版UI短视频点赞任务系统完美运营级别[等级功能+信誉积分+保证金]
  8. 《工业设计史》 第二章:手工艺设计阶段
  9. ExpandableListView 实现三级菜单中grou_item与child_item点击无响应
  10. Word2013怎样从任意页开始设置页码
  11. 宝宝湿疹怎么办?宝宝湿疹怎么处理最好?
  12. 修改VS项目的目标平台(目标框架)
  13. python04-集合与字典
  14. java70-GUL图形用户界面初识
  15. doraemon的python 模块
  16. No interface expected here的解决方法
  17. 2021最新版万年历小程序搭建教程
  18. (一)C#Winform导入Excel数据到datagridview控件
  19. Web前端,CSS中关于背景颜色、背景图片、背景平铺、背景位置、背景相关属性连写
  20. Cisco交换机配合NPS执行802.1X有线准入

热门文章

  1. 那朵美丽的格桑花,你是否依然绽放?
  2. mysql数据库无限分类_php+mysql数据库实现无限分类的方法
  3. 数据库半年回顾:国外波澜不惊,国内势如破竹
  4. 【讲师专访】Oracle ACE 总监侯圣文:不懂开发的运维终将被淘汰
  5. 【华为云技术分享】【我的物联网成长记16】玩转设备固件升级
  6. 【华为云技术分享】关于Linux下Nginx的安装及配置
  7. DevOps组织IO专业人员新角色分析与技能提升
  8. 关于卸载Python第三方包的粗暴方法
  9. 如何在有道云笔记的Markdown上上传本地图片(亲测好用,而且不用开会员)
  10. [Spark] - HashPartitioner RangePartitioner 区别