初识rabbitMQ(一)
19/5/29 对于rabbitMQ ,我已经研究了几天。 之前完全的没有接触过,所以有很多的概念,很多的坑要踩
首先是安装 rabbitmq 这个就不记录了。
1、引入 Maven
org.springframework.amqp
spring-amqp
2.0.3.RELEASE
org.springframework.amqp
spring-rabbit
2.0.3.RELEASE
2、配置 ,写配置文件
id="connectionFactory" class="org.springframework.amqp.rabbit.connection.CachingConnectionFactory">
name="host" value="${mq.address}"/>
name="port" value="${mq.port}"/>
name="password" value="${mq.pwd}"/>
name="username" value="${mq.user}"/>
name="publisherConfirms" value="true"/>
name="publisherReturns" value="true"/>
name="virtualHost" value="${mq.vhost}"/>
name="requestedHeartBeat" value="50"/>
id="rabbitTemplate" class="org.springframework.amqp.rabbit.core.RabbitTemplate">
ref="connectionFactory"/>
name="exchange" value="${mq.exchange}"/>
name="routingKey" value="${mq.routingKey}"/>
name="queue" value="${mq.queue}"/>
name="messageConverter" ref="serializerMessageConverter"/>
name="confirmCallback" ref="rabbitTemplateConfig" />
name="returnCallback" ref="rabbitTemplateConfig" />
name="mandatory" value="true" />
id="rabbitTemplateConfig" class="mq.RabbitTemplateConfig"/>
id="serializerMessageConverter" class="org.springframework.amqp.support.converter.SimpleMessageConverter"/>
id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
name="properties">
class="org.springframework.beans.factory.config.PropertiesFactoryBean">
name="locations">
classpath:conf/value.properties
name="fileEncoding" value="UTF-8"/>
id="rmqConsumer" class="mq.RmqConsumer" />
id="messageListenerAdapter" class="org.springframework.amqp.rabbit.listener.adapter.MessageListenerAdapter">
ref="rmqConsumer" />
name="defaultListenerMethod" value="rmqConsumeMessage"/>
name="messageConverter" ref="serializerMessageConverter"/>
id="listener" class="org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer">
name="connectionFactory" ref="connectionFactory"/>
name="queueNames" value="ceshiQueues,ceshi1,ceshi2"/>
name="messageListener" ref="messageListenerAdapter"/>
name="acknowledgeMode" value="MANUAL"/>
这个是我关于rabbitMQ 所用的配置,下面记录一下具体的作用。
(1、)配置链接
通过配置链接工厂从而链接到rabbitMQ
id="connectionFactory" class="org.springframework.amqp.rabbit.connection.CachingConnectionFactory">
name="host" value="${mq.address}"/>//链接的地址 127.0.0.1
name="port" value="${mq.port}"/>//端口号 5627
name="password" value="${mq.pwd}"/> //密码
name="username" value="${mq.user}"/> //用户名
name="publisherConfirms" value="true"/> //是否开启提交到交换机的回调
name="publisherReturns" value="true"/> //是否开启发送到队列的错误回调
name="virtualHost" value="${mq.vhost}"/>// 虚拟机
name="requestedHeartBeat" value="50"/>//心跳时间(这个可删除,我不知道有什么用,以后有领悟再记录)
属性文件中的内容
mq.address=127.0.0.1
mq.exchange=ceshi
mq.routingKey=ceshiRouting
mq.queue=ceshiQueues
mq.port=5672
mq.user=***
mq.pwd=t**an****
mq.timeout=5000
mq.vhost=testMQ
关于开启 Confirm 与 Return 的回调 还需要在模板 rabbitTemplate 中进行设置
id="rabbitTemplate" class="org.springframework.amqp.rabbit.core.RabbitTemplate">
ref="connectionFactory"/>
name="exchange" value="${mq.exchange}"/>
name="routingKey" value="${mq.routingKey}"/>
name="queue" value="${mq.queue}"/>
name="messageConverter" ref="serializerMessageConverter"/>
name="confirmCallback" ref="rabbitTemplateConfig" />
name="returnCallback" ref="rabbitTemplateConfig" />
name="mandatory" value="true" />
注册模板类的bean 类 org.springframework.amqp.rabbit.core.RabbitTemplate
在其构造方法中传入链接工厂的引用, 如上 代码 重点看 下面这几行配置
name="confirmCallback" ref="rabbitTemplateConfig" />
name="returnCallback" ref="rabbitTemplateConfig" />
name="mandatory" value="true" />
这个就是上面提到的 回调,