关于rabbitmq的两个问题[说法/持久化]

问题描述

才接触rabbitmq不久,有一些疑问恳请大家帮忙看一下,不甚感激。1、javaclient给出的toturialsone中有一段代码:这里channel.basicPublish("",QUEUE_NAME,null,message.getBytes());

中QUEUE_NAME应该不是真正意义上的QUEUE吧,我认为应该是rabbitmq默认的exchange对应的名为QUEUE_NAME的一个routingKey吧,因为是rabbitmq默认的exchange的纷发模式direct,所以就感觉是直接给相应的queue一样,再翻看对应的api中该方法是这样的:basicPublish(java.lang.Stringexchange,java.lang.StringroutingKey,AMQP.BasicPropertiesprops,byte[]body)

不知道我理解的有没有问题。2、关于producer-exchange-queue-consumer模式到底怎么持久化消息啊?难道producer在publish消息的时候要有相应的queue存在,因为消息只存储在queue中。那么,倘若这样的话,我怎么知道有哪些consumer有哪些queue呢?我在stackoverflow上找到这么一段:他的意思是必须要现有一个queue但是只是执行的方式不同罢了。但现在问题来了,正如该答案下面的提问一样:我怎么知道有哪些queue,我怎么知道exchange的纷发规则呢?对于老旧的数据怎么处理呢?我想问一下大家的想法,看看大家平时是怎么处理的。

解决方案

解决方案二:
不好意思,没有接触过,祝你好运!!!
解决方案三:
楼主这研究的是中间件的通讯方式吗?有介绍这方面知识的书吗,楼主推荐一两本

时间: 2025-01-03 07:35:39

关于rabbitmq的两个问题[说法/持久化]的相关文章

RabbitMq的整理 exchange、route、queue关系

http://blog.csdn.net/samxx8/article/details/47417133 从AMQP协议可以看出,MessageQueue.Exchange和Binding构成了AMQP协议的核心,下面我们就围绕这三个主要组件    从应用使用的角度全面的介绍如何利用Rabbit MQ构建消息队列以及使用过程中的注意事项.     1. 声明MessageQueue       在Rabbit MQ中,无论是生产者发送消息还是消费者接受消息,都首先需要声明一个MessageQue

快速部署rabbitMQ教程

RabbitMQ是一个开源的AMQP实现,服务器端用Erlang语言编写,支持多种客户端,如:Python.Ruby..NET.Java.JMS.C.PHP.ActionScript.XMPP.STOMP等,支持AJAX.用于在分布式系统中存储转发消息,在易用性.扩展性.高可用性等方面表现不俗. 部署方式 在阿里云服务器下部署 RabbitMQ提供两种部署方式: RabbitMQ镜像部署 手动部署(源码编译安装/YUM安装) 一般推荐镜像部署适合新手使用更加快捷方便,安装包部署以及手动部署适合对

android cookie持久化

原博客地址:http://blog.csdn.net/shimiso/article/details/39033353 在解析网页信息的时候,需要登录后才能访问,所以使用httpclient模拟登录,然后把cookie保存下来,以供下一次访问使用,这时就需要持久化cookie中的内容. 在之前先科普一下基础知识: 什么是Cookies? Cookies是一些小文件,它们被创建在客户端的系统里,或者被创建在客户端浏览器的内存中(如果是临时性的话).用它可以实现状态管理的功能.我们可以存储一些少量信

RabbitMQ管理(1)——多租户与权限

每一个RabbitMQ服务器都能创建虚拟的消息服务器,我们称之为虚拟主机(virtual host),简称为vhost.每一个vhost本质上是一个独立的小型RabbitMQ服务器,拥有自己独立的队列.交换器以及绑定关系等待,并且它拥有自己独立的权限.vhost就像是虚拟机与物理服务器一样,它们在各个实例间提供逻辑上的分离,允许你为不同程序安全保密地运行数据,它既能将同一个RabbitMQ的中众多客户区分开,又可以避免队列和交换器等命令冲突.vhost之间是绝对隔离的,你无法将vhost1中的交

Kafka、RabbitMQ、RocketMQ消息中间件的对比—— 消息发送性能

引言 分布式系统中,我们广泛运用消息中间件进行系统间的数据交换,便于异步解耦.现在开源的消息中间件有很多,前段时间我们自家的产品 RocketMQ (MetaQ的内核) 也顺利开源,得到大家的关注. 那么,消息中间件性能究竟哪家强? 带着这个疑问,我们中间件测试组对常见的三类消息产品(Kafka.RabbitMQ.RocketMQ)做了性能比较.   Kafka是LinkedIn开源的分布式发布-订阅消息系统,目前归属于Apache定级项目.Kafka主要特点是基于Pull的模式来处理消息消费,

Redis协议简介及持久化Aof文件解析

Redis提供了两种不同的持久化模式: RDB 快照模式,该模式用于生成某个时间点的备份信息,并且会对当前的key value进行编码存储到rdb文件中 AOF 持久化模式,该模式类似binlog的形式,会记录服务器所有的写请求,在服务重启的时候通过回放执行命令请求来恢复原有的数据 AOF文件记录的是原始的Redis写请求命令,所以在了解AOF文件之前我们需要了解下Redis协议. Redis协议介绍 Redis客户端和服务端之间可以通过RESP (REdis Serialization Pro

云服务器 ECS 建站教程:部署RabbitMQ

部署RabbitMQ RabbitMQ 是一个开源的 AMQP 实现,服务器端用 Erlang 语言编写,支持多种客户端,如:Python.Ruby..NET.Java.JMS.C.PHP.ActionScript.XMPP.STOMP 等,支持 AJAX.用于在分布式系统中存储转发消息,在易用性.扩展性.高可用性等方面表现不俗. 部署方式 在阿里云服务器下部署 RabbitMQ 提供两种部署方式: RabbitMQ 镜像部署 手动部署(源码编译安装) 一般推荐镜像部署适合新手使用更加快捷方便,

Redis持久化方案

前言:Redis的高性能是由于其将所有数据都存储在了内存中,为了使Redis在重启之后仍能保证数据不丢失,需要将数据从内存中同步到硬盘中,这一过程就是持久化.    Redis支持两种方式的持久化,一种是RDB方式,一种是AOF方式.可以单独使用其中一种或将二者结合使用. RDB持久化 RDB方式的持久化是通过快照(snapshotting)完成的,当符合一定条件时Redis会自动将内存中的数据进行快照并持久化到硬盘. RDB是Redis默认采用的持久化方式,在redis.conf配置文件中默认

RabbitMQ之死信队列

DLX, Dead-Letter-Exchange.利用DLX, 当消息在一个队列中变成死信(dead message)之后,它能被重新publish到另一个Exchange,这个Exchange就是DLX.消息变成死信一向有一下几种情况: 消息被拒绝(basic.reject/ basic.nack)并且requeue=false 消息TTL过期(参考:RabbitMQ之TTL(Time-To-Live 过期时间)) 队列达到最大长度 DLX也是一个正常的Exchange,和一般的Exchan