问题描述
才接触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的纷发规则呢?对于老旧的数据怎么处理呢?我想问一下大家的想法,看看大家平时是怎么处理的。
解决方案
解决方案二:
不好意思,没有接触过,祝你好运!!!
解决方案三:
楼主这研究的是中间件的通讯方式吗?有介绍这方面知识的书吗,楼主推荐一两本