基础的教程太多了,就不写了,只记录一些遇到的问题

  1. routing_key 和 binding_key
    实际是同一个东西
    交换器和队列之间的叫做binding_key, 但实际上并不存在,在rabbitmq中也是叫routing_key,只是因为便于和生产者发布消息时的routing_key加以区分,才把队列和交换器之间的routing_key叫做binding_key
    routing_key的字符串中,可以使用*和#表示模糊匹配,*可以代表一个单词,#代表多个.分隔的单词
  2. python中的queue_declare和exchange_declare
    使用python 中的exchange_declare 会指定发布到哪个交换机,如果指定名称的交换机不存在,会自动创建一个同名的交换机,但如果已经存在一个同名的交换机,要注意durable 参数,如果和已经存在的交换机属性一样,则使用已经创建的交换机,如果durable 参数不同, 则会报错,提示durable 不同。
    queue_declare 同上
  3. 消费者的消息确认
    basic_consume 这个方法中,有一个参数,no_ack, 为True 表示不发送消息确认通知。默认为False。在实际应用中,有可能消费者并没有收到消息或者消费者收到消息之后就宕机了,没有来得及处理。这时候可以把no_ack设置为False, 然后等消费者处理完成,发送一个ack给rabbitmq, 这时候消息才会从rbbitmq的队列中删除。如果没有收到ack,rabbitmq队列中会保持这条消息,不会删除
    所以需要注意,如果no_ack设置为False,一定要记得手动发送ack给rabbitmq ,不然可能导致队列里的消息永远不能被成功消费。正常被成功消费的消息都会从队列中删除。
  4. 生产者的消息确认
    看到了很多java的列子,但是python相关的就比较少。调用一下confirm_delivery()方法,在basic_publish的时候,返回值有True和False,分别代表消息发布成功和消息发布失败。如果不调用这个方法的话,basic_publish 返回值一直为True。
  5. 一个其他问题
    • python中的json数据处理,dump函数在处理的时候有一个ensure_ascii参数,默认为True,会把json对象当成是ASCII字符处理。有中文的情况下,会导致乱码。所以使用dump函数的时候,要注意一下ensure_ascii参数的值
    • 另一个是rabbitmq在发布消息的时候,会把消息转化为bytes类型,消费者在接收到消息之后,需要decode一下

rabbitmq 消息推送问题记录相关推荐

  1. 消息队列实践一之RabbitMQ消息推送(解决服务器错误:Whoops! Lost connection to ws://localhost:15674/ws)

    一.写在前面的问题和解决办法 1.问题背景: RabbitMQ,用websock推送消息失败 2.问题描述: 服务器错误:Whoops! Lost connection to ws://localho ...

  2. 微信订阅消息推送(记录)

    1.打开微信公众平台,选用订阅消息模板(可在公共库选用,也可自己申请:审核时间3-7天): 2.打开微信官方文档,了解订阅消息的方法subscribeMessage.send | 微信开放文档 3.建 ...

  3. SpringBoot实现微信支付流程+RabbitMQ消息推送

    微信支付 整个流程使用到的组件代码: 链接:https://pan.baidu.com/s/1v5415tEtetxdsp4o7HMy5A 提取码:ys87 二维码创建 利用qrious制作二维码插件 ...

  4. 未读消息(小红点),前端 与 RabbitMQ 实时消息推送实践,贼简单~

    前几天粉丝群里有个小伙伴问过:web 页面的未读消息(小红点)怎么实现比较简单,刚好本周手头有类似的开发任务,索性就整理出来供小伙伴们参考,没准哪天就能用得上呢. 之前在 <springboot ...

  5. websocket心跳链接代码_Hyperf+RabbitMQ+WebSocket实现大屏幕消息推送

    作者:八重樱 来源:www.cnblogs.com/a609251438/p/12713467.html 介绍 基于 Hyperf+ WebSocket +RabbitMQ 实现的一个简单大屏幕的消息 ...

  6. .net 实时通信_基于 RabbitMQ 的实时消息推送

    实现服务器端推送的几种方式 Web 应用都是基于 HTTP 协议的请求/响应模式,无法像 TCP 协议那样保持长连接,因此 Web 应用就很难像手机那样实现实时的消息推送.就目前来看,Web 应用的消 ...

  7. 【微信小程序】消息推送服务器配置及服务器域名配置(记录坑)

    我最近想在微信小程序推送通知,于是开始学怎么弄模板消息. 首先要配置服务器域名和消息推送配置. 先配置服务器域名吧,这个简单. 配置服务器域名 首先进入小程序后台>>开发>>开 ...

  8. 【go-zero】go-zero 与 amqp go整合 Rabbitmq 实现消息推送 go 消息队列 (best practice)

    目录 RabbitMq安装与go-zero框架整合使用 一.RabbitMq 1.打开 RabbitMq 进行简单地配置 2.Admin创建一个virtual Host 3.Exchanges创建交换 ...

  9. 基于SpringBoot、RabbitMQ的Android消息推送平台搭建

    消息推送,类似于微信来新消息时出现在通知栏那种情景.很多APP都有这个功能.现在有很多第三方平台可以实现这个需要,但是有的公司对所要推送的消息保密要求比较高,不希望被第三方看到,可以使用此种方式进行消 ...

最新文章

  1. 数据科学 | Python数据科学常用库
  2. python学习手册笔记——22.模块代码编写基础
  3. ACCESS的Ole对象读取
  4. mysql 硬负载_为啥单机MySQL又遭遇瓶颈?MySQL主从复制替你解决单机问题
  5. java中jquery怎么学,浅谈jQuery中的事件--Java学习网
  6. C#正则表达式替换字符串
  7. SQL点滴系列之插入数据(四)
  8. 解决远程连接mysql很慢的方法
  9. console.log(iVal)是什么?显示在哪里?
  10. 如何把计算机管理的服务删掉,如何将win7电脑服务列表中残留的服务选项删除掉?...
  11. 1954-计算机基础知识大赛 1
  12. 小米 OJ 编程比赛 02 月常规赛 (Carryon 数数字)
  13. 华为路由器虚拟服务器怎么设置方法,华为路由器PPPoE配置案例-华为路由器设置...
  14. WBS-Work Breakdown Structure工作分解结构
  15. LZY逃命路线总数(记忆化递归)非常难
  16. 前端之jQuery框架/全面教程/一小时速成/常用点整合 【附代码、前端必备之一】
  17. 微信小程序生态1-初识小程序
  18. java-如何用输入流写3000遍“爱你三千次”。
  19. 一款不错的流式布局LayoutManager-FlowLayout
  20. 一个潜藏4年之久的内核bug

热门文章

  1. 快排(java实现)
  2. 【Java小游戏】小动物连连看由易到难
  3. 【计算机毕业设计】147校园失物招领系统
  4. 本地svn 账号密码遗忘找回
  5. PCL点云处理之计算点到空间直线距离的四种方法(二十三)
  6. zynq sdk 开发之通过 BRAM 进行 PL 与 PS 的数据交互
  7. tlab java_Java中的逃逸分析和TLAB以及Java对象分配
  8. android条码支付开发,详解支付宝条码支付:1分钟完成收单 成本降低
  9. mysql源码剖析–通信协议分析
  10. c++filt command