windows配置
1、安装Erlang
新增环境变量ERLANG_HOME,其值为 D:\Program Files\erl8.3;
修改环境变量PATH的值,在PATH的后面添加 %ERLANG_HOME%\bin;
2、安装RabbitMQ
新增环境变量RABBITMQ_SERVER,
其值为 D:\Program Files\RabbitMQ Server\rabbitmq_server-3.6.9
修改环境变量PATH的值,在PATH的后面添加%RABBITMQ_SERVER%\sbin;
查看是否真的安装成功,执行rabbitmqctl status命令,一下为成功
若不成功,查看log(C:\Users\zhangyujie\AppData\Roaming\RabbitMQ\log)
3、安装管理工具
在cmd命令行,进入%RABBITMQ_SERVER%\sbin 目录,以管理员身份运行 rabbitmq-plugins.bat enable rabbitmq_management
4、浏览器访问
打开浏览器,输入网址localhost:15672,就会进入登录页面。 默认账号为guest, 密码为guest
5、修改配置文件
C:\Users\zhangyujie\AppData\Roaming\RabbitMQ\rabbitmq.config
如果不是默认路径,需要编辑环境变量,在系统环境变量中新增变量名"RABBITMQ_CONFIG_FILE",值为rabbitmq.config的目录\etc\rabbitmq(注意,不要加;)
最后,用命令对Rabbitmq服务更新、启动(rabbitmq-service.bat install、rabbitmq-service.bat start)
Exchange 模式
http://blog.csdn.net/csethcrm/article/details/51673029
Exchange 模式 - direct
Exchange 模式 - fanout
Exchange 模式 - topic
RabbitMQ与Spring
application-mq.xml
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:rabbit="http://www.springframework.org/schema/rabbit"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/rabbit
http://www.springframework.org/schema/rabbit/spring-rabbit-1.0.xsd" >
<description>rabbitmq 连接服务配置</description>
<!-- 连接配置 -->
<rabbit:connection-factory id="connectionFactory" host="${mq.host}" username="${mq.username}" password="${mq.password}" port="${mq.port}" virtual-host="${mq.vhost}"/>
<!--abbitmq admin管理-->
<rabbit:admin connection-factory="connectionFactory"/>
<!-- spring template声明-->
<rabbit:template exchange="amqpExchange" id="amqpTemplate" connection-factory="connectionFactory" message-converter="jsonMessageConverter" />
<!-- 申明一个消息队列Queue-->
<rabbit:queue id="test_queue_key" name="test_queue_key" durable="true" auto-delete="false" exclusive="false" />
<rabbit:queue id="test_queue_key" name="test_queue_key" durable="true" auto-delete="false" exclusive="false" />
说明:
durable:是否持久化
exclusive: 仅创建者可以使用的私有队列,断开后自动删除
auto_delete: 当所有消费客户端连接断开后,是否自动删除队列
<!-- 交换机定义-->
<rabbit:direct-exchange name="test-mq-exchange" durable="true" auto-delete="false" id="test-mq-exchange">
<rabbit:bindings>
<rabbit:binding queue="test_queue_key" key="test_queue_key"/>
</rabbit:bindings>
</rabbit:direct-exchange>
说明:
rabbit:direct-exchange:定义exchange模式为direct,意思就是消息与一个特定的路由键完全匹配,才会转发。
rabbit:binding:设置消息queue匹配的key
<!-- 监听配置-->
<rabbit:listener-container connection-factory="connectionFactory" acknowledge="auto">
<rabbit:listener queues="test_queue_key" ref="queueListenter"/>
</rabbit:listener-container>
说明:
queues:监听的队列,多个的话用逗号(,)分隔
ref:监听器