前言:在这里我将用java来简单的实现rabbitMQ。下面我们带着下面问题来一步步的了解和学习rabbitMQ。
1:如果消费者连接中断,这期间我们应该怎么办
2:如何做到负载均衡
3:如何有效的将数据发送到相关的接收者?就是怎么样过滤
4:如何保证消费者收到完整正确的数据
5:如何让优先级高的接收者先收到数据
一.安装好插件,详见上一篇文章
服务的的开启与关闭
如果没有设置开机自动启动的话,需要开启rabbitmq服务才能够正常工作:
初始化默认端口:15672 用户名密码都是 guest
net stop rabbitmq
net start rabbitmq
或着运行 :services.msc
端口问题:
--看不懂先写到这里:
4369 (epmd), 25672 (Erlang distribution)
5672, 5671 (AMQP 0-9-1 without and with TLS)
15672 (if management plugin is enabled)
61613, 61614 (if STOMP is enabled)
1883, 8883 (if MQTT is enabled)
======================
4369 -- erlang发现口
5672 --client端通信口
15672 -- 管理界面ui端口
25672 -- server间内部通信口
举例说明
-
我们访问RabbitMQ管理界面可以访问如下:
-
我们连接RabbitMQ的话就要用client端通信口:
server: amqp://guest:guest@localhost:5672/
端口修改
有时候由于之前使用activemq占用了5672端口,或者其他需求需要修改端口
因为业务需要断网操作,之前弄了一台Windows服务器,并使用的是activemq消息队列,用于特殊业务的中转,现在外部系统重构后需要采用的是rabbitmq,所以Windows服务器上需要支持rabbitmq,于是下载安装,创建角色,授权,一通搞,单个启动rabbitmq时没有任何问题,但是activemq切启动报端口占用,闪退。经过排查发现activemq使用的默认协议端口5672,和rabblitmq的默认端口冲突了,在不影响业务的情况下,只能修改rabbltmq的tcp监听端口。各种尝试有报错,有不生效,最后成功解决问题,记录如下:
1. rabbitmq.config默认是没有生成的,只有一个rabbitmq.config.example,需要自己建一个,要么就copy一个改下名字,要么就是把.example去掉 。
2. rabbitmq.config目录并非安装目录下面的etc,默认是在 C:\Users\%USERNAME%\AppData\Roaming\RabbitMQ 下,这一点在安装目录下面的etc目录下的readme.txt中有说明。 说明如下:
In this directory you can find an example configuration file for RabbitMQ.
Note that this directory is *not* where the real RabbitMQ
configuration lives. The default location for the real configuration
file is %APPDATA%\RabbitMQ\rabbitmq.config.
%APPDATA% usually expands to C:\Users\%USE