以上图为例:
- 路由键为 “com.rabbitmq.client” 的消息会同时路由到 Queuel 和 Queue2;
- 路由键为 “com.hidden.client” 的消息只会路由到 Queue2 中;
- 路由键为 “com.hidden.demo” 的消息只会路由到 Queue2 中;
- 路由键为 “java.rabbitmq.demo” 的消息只会路由到Queuel中;
- 路由键为 “java.util.concurrent” 的消息将会被丢弃或者返回给生产者(需要设置 mandatory 参数),因为它没有匹配任何路由键。
④ headers(不推荐)
headers 类型的交换器不依赖于路由键的匹配规则来路由消息,而是根据发送的消息内容中的 headers属性进行匹配。在绑定队列和交换器时制定一组键值对,当发送消息到交换器时,RabbitMQ会获取到该消息的 headers(也是一个键值对的形式)'对比其中的键值对是否完全匹配队列和交换器绑定时指定的键值对,如果完全匹配则消息会路由到该队列,否则不会路由到该队列。headers 类型的交换器性能会很差,而且也不实用,基本上不会看到它的存在。
参考资料:《Java中高级核心知识全面解析》
获取方式:私信【资料】
免费获取
还有更多Java PDF学习资料等你来拿!!!
二、安装 RabbitMq
通过 Docker 安装非常方便,只需要几条命令就好了,我这里是只说一下常规安装方法。
前面提到了 RabbitMQ 是由 Erlang语言编写的,也正因如此,在安装RabbitMQ 之前需要安装Erlang。
注意:在安装 RabbitMQ 的时候需要注意 RabbitMQ 和 Erlang 的版本关系,如果不注意的话会导致出错,两者对应关系如下:
1.安装 erlang
1)下载 erlang 安装包
在官网下载然后上传到 Linux 上或者直接使用下面的命令下载对应的版本。
[root@SnailClimb local]#wget http://erlang.org/download/otp_src_19.3.tar.gz
2)解压 erlang 安装包
[root@SnailClimb local]#tar -xvzf otp_src_19.3.tar.gz
3) 删除 erlang 安装包
[root@SnailClimb local]#rm -rf otp_src_19.3.tar.gz
4)安装 erlang 的依赖工具
[root@SnailClimb local]#yum -y install make gcc gcc-c++ kernel-devel m4 ncurses- devel openssl-devel unixODBC-devel
5)进入erlang 安装包解压文件对 erlang 进行安装环境的配置
新建一个文件夹
[root@SnailClimb local]# mkdir erlang
对 erlang 进行安装环境的配置
[root@SnailClimb otp_src_19.3]#
./configure --prefix=/usr/local/erlang --without-j
6)编译安装
[root@SnailClimb otp_src_19.3]#
make && make install
7)验证一下 erlang 是否安装成功了
[root@SnailClimb otp_src_19.3]# ./bin/erl
运行下面的语句输出“hello world”
io:format("hello world~n", []).
大功告成,我们的 erlang 已经安装完成。
8)配置 erlang 环境变量
[root@SnailClimb etc]# vim profile
追加下列环境变量到文件末尾
#erlang
ERL_HOME=/usr/local/erlang
PATH=$ERL_HOME/bin:$PATH
export ERL_HOME PATH
运行下列命令使配置文件 profile
生效
[root@SnailClimb etc]# source /etc/profile
输入 erl 查看 erlang 环境变量是否配置正确
[root@SnailClimb etc]# erl
2.安装 RabbitMQ
1)下载rpm
wget https://www.rabbitmq.com/releases/rabbitmq-server/v3.6.8/rabbitmq-server- 3.6.8-1.el7.noarch.rpm
2)安装rpm
rpm --import https://www.rabbitmq.com/rabbitmq-release-signing-key.asc
紧接着执行:
yum install rabbitmq-server-3.6.8-1.el7.noarch.rpm
中途需要你输入"y"才能继续安装。
3)开启 web 管理插件
rabbitmq-plugins enable rabbitmq_management
4)设置开机启动
chkconfig rabbitmq-server on
5)启动服务
service rabbitmq-server start
6)查看服务状态
service rabbitmq-server status
7)访问 RabbitMQ 控制台
浏览器访问:http://你的ip地址:15672/
默认用户名和密码: guest/guest;但是需要注意的是:guestuest用户只是被容许从localhost访问。官网文档描述如下:
“guest” user can only connect via localhost
解决远程访问 RabbitMQ 远程访问密码错误
新建用户并授权
[root@SnailClimb rabbitmq]# rabbitmqctl add_user root root
Creating user "root" ...
[root@SnailClimb rabbitmq]# rabbitmqctl set_user_tags root administrator
# 最后
各位读者,由于本篇幅度过长,为了避免影响阅读体验,下面我就大概概括了整理了,需要的话请**[点赞后点击这里免费下载文章资料!](https://gitee.com/vip204888/java-p7)**
![](https://img-blog.csdnimg.cn/img_convert/b4d05fe6c4e6c4644885b688cc4b83d8.png)
![](https://img-blog.csdnimg.cn/img_convert/f60c07bf77518209bac3e83d62417a5e.png)
![](https://img-blog.csdnimg.cn/img_convert/fc5eead9998a8146314eba0c437ed046.png)
8/java-p7)**
[外链图片转存中...(img-B03c67fD-1628281621687)]
[外链图片转存中...(img-RIuN0sg4-1628281621688)]
[外链图片转存中...(img-MA70UKil-1628281621688)]
![](https://img-blog.csdnimg.cn/img_convert/5a568e0c1fe5600ca346b47e41b0d816.png)