1、有时候在学习或者测试的时候,发现我在一个EXCHANGE  上面绑定了多个通道,这些通道的ROUTING_KEY 各不相同。但是从发送端 发到EXCHANGE 时,却在别的通道上面也收到了该消息,那么 有可能 是你之前这两个 或者多个通道都 绑定过这个ROUTING_KEY,你完全可以在WEB 端 将其(队列)删除掉,然后再重新运行你的接收端和发送端 。

2、两个消费者绑定到同一个队列名上,程序会崩溃。
    这个的主要原因是在channel 中创建消费者(BasicConsume函数)的时候第五个参数开启了独占队列,这样就不允许第二个消费者到该队列上取消息了。但是如果关闭了独占队列,那么这个队列 上面的消息就会分配到两个消费者身上,同一个消息只有一个消费者可以拿到。。
3、遇到一个问题,本想测试一下在一个进程 里面使用一个Channel 同时做消息的发送与接收。接收消息在主线程,消息发送部分新建 一个线程,同时将正常的Channel 指针对象通过 参数 的形式传递给线程函数 ,但是每次当调用BasicPublish() 发送消息的时候就会卡住 ,无法进行任何操作。
  调试了一下,在ChannelImpl::GetChannel() 函数中所有amqp_channel_t 对象的状态都是USED,而它需要找到一个OPEN状态的,同时找没找到,然后再去创建 一个新的amqp_channel_t 对象,在这个过程不知道出了什么问题,最后线程被阻塞 在了这个函数 调用的地方。   
> 我在想是不是因为一个channel 在另外 一个线程中使用,需要先有一个可用的amqp_channel_t 对象被创建 。所以我在开户线程函数 的时候 先使用channel 发送一个消息到rabbitMQ 上,然后再把channel 对象传入到线程中,但是发现前面 两次还可以正常使用,之后就又出现 了卡死的现象。
-- 未能找到原因,在线程中重新创建 一个Channel 来避开了这个问题。
 

rabbitMQ 问题的更多相关文章

  1. 消息队列——RabbitMQ学习笔记

    消息队列--RabbitMQ学习笔记 1. 写在前面 昨天简单学习了一个消息队列项目--RabbitMQ,今天趁热打铁,将学到的东西记录下来. 学习的资料主要是官网给出的6个基本的消息发送/接收模型, ...

  2. RabbitMq应用二

    在应用一中,基本的消息队列使用已经完成了,在实际项目中,一定会出现各种各样的需求和问题,rabbitmq内置的很多强大机制和功能会帮助我们解决很多的问题,下面就一个一个的一起学习一下. 消息响应机制 ...

  3. 如何优雅的使用RabbitMQ

    RabbitMQ无疑是目前最流行的消息队列之一,对各种语言环境的支持也很丰富,作为一个.NET developer有必要学习和了解这一工具.消息队列的使用场景大概有3种: 1.系统集成,分布式系统的设 ...

  4. RabbitMq应用一的补充(RabbitMQ的应用场景)

    直接进入正题. 一.异步处理 场景:发送手机验证码,邮件 传统古老处理方式如下图 这个流程,全部在主线程完成,注册->入库->发送邮件->发送短信,由于都在主线程,所以要等待每一步完 ...

  5. RabbitMq应用一

    RabbitMq应用一 RabbitMQ的具体概念,百度百科一下,我这里说一下我的理解,如果有少或者不对的地方,欢迎纠正和补充. 一个项目架构,小的时候,一般都是传统的单一网站系统,或者项目,三层架构 ...

  6. 缓存、队列(Memcached、redis、RabbitMQ)

    本章内容: Memcached 简介.安装.使用 Python 操作 Memcached 天生支持集群 redis 简介.安装.使用.实例 Python 操作 Redis String.Hash.Li ...

  7. 消息队列性能对比——ActiveMQ、RabbitMQ与ZeroMQ(译文)

    Dissecting Message Queues 概述: 我花了一些时间解剖各种库执行分布式消息.在这个分析中,我看了几个不同的方面,包括API特性,易于部署和维护,以及性能质量..消息队列已经被分 ...

  8. windows下 安装 rabbitMQ 及操作常用命令

    rabbitMQ是一个在AMQP协议标准基础上完整的,可服用的企业消息系统.它遵循Mozilla Public License开源协议,采用 Erlang 实现的工业级的消息队列(MQ)服务器,Rab ...

  9. RabbitMQ + PHP (三)案例演示

    今天用一个简单的案例来实现 RabbitMQ + PHP 这个消息队列的运行机制. 主要分为两个部分: 第一:发送者(publisher) 第二:消费者(consumer) (一)生产者 (创建一个r ...

  10. RabbitMQ + PHP (二)AMQP拓展安装

    上篇说到了 RabbitMQ 的安装. 这次要在讲案例之前,需要安装PHP的AMQP扩展.不然可能会报以下两个错误. 1.Fatal error: Class 'AMQPConnection' not ...

随机推荐

  1. JQuery 获取表格table所有行第一列

    main_table 是表ID $("#main_table tr").find("td:eq(0)")

  2. ASN.1

    ASN.1抽象语法标记(Abstract Syntax Notation One https://baike.baidu.com/item/ASN.1/498523?fr=aladdin

  3. java中wait()和sleep()的区别

    前言 以前只知道一个结论,但是没法理解,现在水平上来了,自己代码中写了一个验证的方法. 1.先上结论:wait()会释放持有的锁,sleep()不会释放持有的锁 2.验证:看代码运行结果. packa ...

  4. Sql语法整理-图片版....

  5. Vue学习笔记【33】——相关文章

    vue.js 1.x 文档 vue.js 2.x 文档 String.prototype.padStart(maxLength, fillString) js 里面的键盘事件对应的键码 Vue.js双 ...

  6. PHP disk_total_space() 函数

    定义和用法 disk_total_space() 函数返回指定目录的磁盘总容量,以字节为单位. 语法 disk_total_space(directory) 参数 描述 directory 必需.规定 ...

  7. UVALive 3902 Network (树+dfs)

    Consider a tree network with n nodes where the internal nodes correspond to servers and the terminal ...

  8. 为何使用Html5+CSS3

    一:大多浏览器支持,低版本也没问题 我看点这方面的资料,是为了做手机应用网站(有三个方案,这个是备用方案),可以开发响应式网站,可以脱离开发平台进行跨平台. 在Html5网页中引入Modernizr, ...

  9. 20175223 《Java程序设计》第十一周学习总结

    目录 教材学习内容总结 代码调试中的问题和解决过程 1. Linux中编程实现计算器方法乘法报错,但 IDEA 中可以. [代码托管] 学习进度条 参考资料 目录 教材学习内容总结 因未熟练掌握第十章 ...

  10. selenium.Cookie 转 okhttp3.Cookie

    package org.rx.util; import lombok.SneakyThrows; import okhttp3.HttpUrl; import org.openqa.selenium. ...