这里先分三章来做讲解
第一章节:安装
第二章节:项目中rabbitmq-cli 使用rabbitmq
第三章节:springboot项目中使用rabbitmq
这里我使用的版本:
springboot:2.2.4
erlang:22.1
rabbitmq:3.8.2
滴滴、美团、头条、去哪儿、艺龙 都在使用rabbitmq
Virtual host:最上层的消息路由 下面的exchange queue不能重名 一个逻辑概念 比如redis的16个分区。
exchange:通过exchange路由到队列 将队列与exchange绑定(binding)
queue:消息队列保存发送的信息发送给消费者
Routing key: 绑定时候的路由规则
Binding 绑定 将队列与交换机、或者交换机与交换机进行绑定
概念图:
生产者将消息发送给exchange。exchange通过一定的路由规则绑定在队列上
消费者监听这个队列 得到消息
yum -y install make gcc gcc-c++ kernel-devel m4 ncurses-devel openssl-devel unixODBC unixODBC-devel httpd python-simplejson
解压erlang
tar -zxvf ./otp_src_22.1.tar.gz
编译erlang
./configure --prefix=/usr/apps/erlang --with-ssl --enable-threads --enable-smp-support --enable-kernel-poll --enable-hipe --without-javac
编译选项:
erlang语言编译配置选项:
–prefix 指定安装目录
–enable-smp-suppo2020/2/22 14:26
–enable-threads启用异步线程支持
–enable-sctp启用流控制协议支持(Stream Control Transmission Protocol,流控制传输协议)
–enable-kernel-poll启用Linux内核poll
–enable-hipe启用高性能Erlang
–with-ssl 启用ssl包
–without-javac 不用java编译
安装erlang
make && make install
配置环境变量:
vim /etc/profile
export PATH=$PATH:/usr/local/erlang/bin
source /etc/profile
测试Erlang安装是否成功,输入erl
解压
tar -xvf ./rabbitmq-server-generic-unix-3.8.2.tar
设置rabbitmq的环境变量
vim /etc/profile
export PATH=$PATH:/usr/local/rabbitmq_server-3.8.0/sbin
source /etc/profile
编辑rabbitmq/ebin/rabbit。App
只留下一个guest 尖括号引号去掉
默认是无法使用这个用户登陆的 修改之后可以登陆
测试启动是否成功
rabbitmq-server -detached //启动rabbitmq,-detached代表后台守护进程方式启动。
rabbitmqctl status //查看状态,如果显示如下截图说明安装成功
其他相关命令
启动服务:rabbitmq-server -detached【 /usr/local/rabbitmq_server-3.8.0/sbin/rabbitmq-server -detached 】
查看状态:rabbitmqctl status【 /usr/local/rabbitmq_server-3.8.0/sbin/rabbitmqctl status 】
关闭服务:rabbitmqctl stop【 /usr/local/rabbitmq_server-3.8.0/sbin/rabbitmqctl stop 】
开启服务 rabbitmqctl start_app
列出角色:rabbitmqctl list_users
打开网址:http://192.168.106.70:15672/
发现网址根本打不开 这是因为没有启动页面监控服务
Rabbitmqctl stop 先关闭服务
rabbitmq-plugins enable rabbitmq_management 开启监控插件
查看启动插件
rabbitmq-plugins list //[E*显示启动] [e*隐式启动]
重新启动rabbitmq
rabbitmq-server -detached
Rabbitmqctl stop_app 关闭应用
Rabbitmqctl start_app 开启应用
Rabbitmqctl status 查看状态
Rabbitmqctl add_user username password 添加用户
Rabbitmqctl list_users 列出所有用户
Rabbitmqctl delete_user username 删除用户
Rabbitmqctl clear_permissions -p vhostpath username清除用户权限
Rabbitmqctl list_user_permissions username列出用户权限
Rabbitmqctl change_password username newpassword 修改密码
Rabbitmqctl add_vhost vhostpath 创建虚拟主机
Rabbitmqctl list_vhost 列出所有虚拟主机
Rabbitmqctl list_permissions -p vhostpath 列出虚拟主机权限
Rabbitmqctl delete_vhost vhostpath 删除虚拟主机
Rabbitmqctl list_queues 查看所有队列信息
Rabbitmqctl -p vhostpath purge_queue blue清除队列中的消息
硬操作(影响服务):
Rabbitmqctl reset 清除所有数据(rabbitmqctl stop_app之后)
Rabbitmqctl joincluster
Rabbitmqctl cluster_status集群状态
Rabbitmqctl change_cluster_node_type disc|ram 修改集群节点存储方式
Rabbitmqctl forget_cluster_node [--offline]忘记节点
Rabbitmqctl rename_cluster_node oldnode1 newnode1 [oldnode2] [newnode2]修改节点名称