同城便民网站开发,各大免费推广网站,网站建设中主页源码,外贸网站建设青岛架构
RabbitMQ是实现了高级消息队列协议#xff08;AMQP#xff09;的开源消息代理软件#xff0c;使用erlang语言编写#xff0c;依赖Erlang环境运行。 Broker#xff1a;运行消息队列服务进程的节点#xff0c;包含Exchange、Queue#xff1b; Producer#xff1a;消…架构
RabbitMQ是实现了高级消息队列协议AMQP的开源消息代理软件使用erlang语言编写依赖Erlang环境运行。 Broker运行消息队列服务进程的节点包含Exchange、Queue Producer消息生产者 Consumer消息消费者
相关概念
ServerAMQP实例接收客户端的连接
Connection连接应用程序与Server的TCP连接
Channel信道轻量级的Connection消息读写等操作在信道中进行。客户端在一个Connection中建立多个信道每个信道代表一个会话任务。如果每一次访问 RabbitMQ 都建立一个 Connection在大量消息时开销会变得巨大
Message应用程序和服务器之间传送的数据
Virtual Host逻辑隔离由若干Exchange、Queue组成
Exchange交换器按照路由规则将消息路由到一个或者多个队列
Queue队列用来暂存消息供consumer消费
RoutingKey路由键producer向Exchange发送消息时会标识路由键按照路由键的不通发送到指定Queue。格式如“com.rabbitmq”
Binding绑定Echange、Queue之间的虚拟连接由一个或者多个RoutingKey组成
exchange分类
Direct Exchange直连交换器一对一发送绑定一个Queue与一个特定的RoutingKey完全匹配
Fanout Exchange扇形交换器类似子网广播绑定多个Queue发送到该类型交换器的消息都会被转发到与其绑定的所有Queue上
Topic Exchange主题交换器通过通配符*#匹配RoutingKey路由到相应的Queue
Headers Exchange头交换器通过匹配请求头中携带的键值进行消息路由有2种模式全部匹配、部分匹配
queue分类
主从架构吞吐量受限。
master queue主队列读写操作均在master queue上然后由master同步操作到mirror queue。即使consumer连接到了mirror queue相关操作也会被路由到master queue上。对于生成队列原理和消费一样
mirror queue镜像队列作为备份在master queue所在节点挂掉之后系统把mirror queue提升为master queue
使用模式
simple模式 P发送消息到队列C监听消息队列如果Queue中有消息就消费然后自动删除。可以通过启用消息确认机制确保稳健性消费完后会立即发送ack否则会造成内存溢出
work模式 P发送消息到队列C1、C2共同监听Queue争抢消息谁先拿到谁就消费
publish/subscribe模式 P发送消息到交换器XX发布订阅将消息发送到已绑定的Queue中相应的C监听自己
routing模式 P发送消息到交换器XX根据路由字符RoutingKey做匹配发送到对应的Queue对应的C进行消费;
topic模式 路由模式的一种X根据RoutingKey的进行模糊匹配发送到相应的Queue对应的C进行消费;
rpc模式 基于Direct交换器使用MQ实现RPC的异步调用过程如下 1、Client即是P也是C向rpc_queue送调用消息同时监听reply_queue 2、Server监听rpc_queue收到消息后进行处理返回结果 3、Server将结果发送到reply_queue 4、Client接收到RPC调用结果
环境
systemctl stop firewalld systemctl disable firewalld
setenforce 0
sed -i s/SELINUXenforcing/SELINUXdisabled/ /etc/selinux/configvi /etc/hosts
ip1 rabbit1
ip2 rabbit2
ip3 rabbit3安装配置
yum install -y rabbitmq-servermkdir -p /etc/systemd/system/rabbitmq-server.service.d
# 修改文件打开数
vi /etc/systemd/system/rabbitmq-server.service.d/limit.conf
[Service]
LimitNOFILE 100000# 修改ip与端口
vi /etc/rabbitmq/rabbitmq-env.conf
RABBITMQ_NODE_IP_ADDRESS本机ip
RABBITMQ_NODE_PORT5672vi /etc/rabbitmq/rabbitmq.config% Template Path: rabbitmq/templates/rabbitmq.config
[{kernel,[{inet_dist_listen_min, 41055},{inet_dist_listen_max, 41055},# epmd端口必须打开群集才能正常工作、cli才能使用设置端口范围{inet_default_connect_options, [{nodelay,true}]} ]},{rabbit,[# 在autoheal模式下当某网络分区故障时RabbitMQ会自动决定一个获胜分区winning然后重启不在这个分区中的节点以恢复网络分区{cluster_partition_handling, autoheal},# tcp套接字的配置{tcp_listen_options, [binary,{packet, raw},{reuseaddr, true},# 未接受的TCP连接队列的最大数达到此数量时新的连接将被拒绝{backlog, 4096},{nodelay, true},{exit_on_close, false},# heartbeat: 0代表关闭心跳服务# 启用tcp keepalive机制{keepalive, true}]}{rabbitmq_management,[{http_log_dir, /tmp/rabbit-mgmt},# 监控各项资源的速率none为不监控默认为basic{rates_mode,none}]}# 复制cookie
scp /var/lib/rabbitmq/.erlang.cookie rootrabbit2:/var/lib/rabbitmq/.erlang.cookie
scp /var/lib/rabbitmq/.erlang.cookie rootrabbit3:/var/lib/rabbitmq/.erlang.cookiechown rabbitmq:rabbitmq /var/lib/rabbitmq/.erlang.cookie
chown rabbitmq:rabbitmq /etc/rabbitmq/rabbitmq.config
chmod 400 /var/lib/rabbitmq/.erlang.cookiesystemctl daemon-reload
systemctl enable rabbitmq-server.service
systemctl start rabbitmq-server.service
# 查看状态
rabbitmqctl cluster_status# 关闭其他从节点先执行关闭然后加入集群主节点
rabbitmqctl stop_app
rabbitmqctl join_cluster rabbitrabbit1
rabbitmqctl start_app
# 查看
rabbitmqctl cluster_status # 队列的镜像设置在集群中所有的节点上进行镜像
rabbitmqctl set_policy ha-all ^(?!amq\.).* {ha-mode: all}# 创建用户
rabbitmqctl add_user test
rabbitmqctl set_permissions -p / test test#123
rabbitmqctl set_user_tags test 角色
文章转载自: http://www.morning.lpcct.cn.gov.cn.lpcct.cn http://www.morning.haibuli.com.gov.cn.haibuli.com http://www.morning.nrfrd.cn.gov.cn.nrfrd.cn http://www.morning.dpqwq.cn.gov.cn.dpqwq.cn http://www.morning.zmpqh.cn.gov.cn.zmpqh.cn http://www.morning.lgrkr.cn.gov.cn.lgrkr.cn http://www.morning.psxfg.cn.gov.cn.psxfg.cn http://www.morning.lmrcq.cn.gov.cn.lmrcq.cn http://www.morning.phxdc.cn.gov.cn.phxdc.cn http://www.morning.sskhm.cn.gov.cn.sskhm.cn http://www.morning.rlhh.cn.gov.cn.rlhh.cn http://www.morning.kkdbz.cn.gov.cn.kkdbz.cn http://www.morning.lkfsk.cn.gov.cn.lkfsk.cn http://www.morning.trzmb.cn.gov.cn.trzmb.cn http://www.morning.ndngj.cn.gov.cn.ndngj.cn http://www.morning.cpgdy.cn.gov.cn.cpgdy.cn http://www.morning.skbkq.cn.gov.cn.skbkq.cn http://www.morning.tqsmc.cn.gov.cn.tqsmc.cn http://www.morning.rgxll.cn.gov.cn.rgxll.cn http://www.morning.xshkh.cn.gov.cn.xshkh.cn http://www.morning.qftzk.cn.gov.cn.qftzk.cn http://www.morning.rqqct.cn.gov.cn.rqqct.cn http://www.morning.xckqs.cn.gov.cn.xckqs.cn http://www.morning.mtdfn.cn.gov.cn.mtdfn.cn http://www.morning.szoptic.com.gov.cn.szoptic.com http://www.morning.wnkqt.cn.gov.cn.wnkqt.cn http://www.morning.btqrz.cn.gov.cn.btqrz.cn http://www.morning.mnrqq.cn.gov.cn.mnrqq.cn http://www.morning.qzsmz.cn.gov.cn.qzsmz.cn http://www.morning.gtmgl.cn.gov.cn.gtmgl.cn http://www.morning.zbkwj.cn.gov.cn.zbkwj.cn http://www.morning.tpwrm.cn.gov.cn.tpwrm.cn http://www.morning.kqnwy.cn.gov.cn.kqnwy.cn http://www.morning.drzkk.cn.gov.cn.drzkk.cn http://www.morning.qpqwd.cn.gov.cn.qpqwd.cn http://www.morning.langlaitech.cn.gov.cn.langlaitech.cn http://www.morning.5-73.com.gov.cn.5-73.com http://www.morning.lhldx.cn.gov.cn.lhldx.cn http://www.morning.ysrtj.cn.gov.cn.ysrtj.cn http://www.morning.rgxll.cn.gov.cn.rgxll.cn http://www.morning.wjlrw.cn.gov.cn.wjlrw.cn http://www.morning.tyhfz.cn.gov.cn.tyhfz.cn http://www.morning.txrq.cn.gov.cn.txrq.cn http://www.morning.rqkk.cn.gov.cn.rqkk.cn http://www.morning.rnwt.cn.gov.cn.rnwt.cn http://www.morning.mfnjk.cn.gov.cn.mfnjk.cn http://www.morning.bdgb.cn.gov.cn.bdgb.cn http://www.morning.aiai201.cn.gov.cn.aiai201.cn http://www.morning.njftk.cn.gov.cn.njftk.cn http://www.morning.rqqmd.cn.gov.cn.rqqmd.cn http://www.morning.qfkxj.cn.gov.cn.qfkxj.cn http://www.morning.gidmag.com.gov.cn.gidmag.com http://www.morning.lzqnj.cn.gov.cn.lzqnj.cn http://www.morning.jbtwq.cn.gov.cn.jbtwq.cn http://www.morning.dgpxp.cn.gov.cn.dgpxp.cn http://www.morning.tdhxp.cn.gov.cn.tdhxp.cn http://www.morning.5-73.com.gov.cn.5-73.com http://www.morning.khxwp.cn.gov.cn.khxwp.cn http://www.morning.gtnyq.cn.gov.cn.gtnyq.cn http://www.morning.kzpy.cn.gov.cn.kzpy.cn http://www.morning.bchfp.cn.gov.cn.bchfp.cn http://www.morning.tnhqr.cn.gov.cn.tnhqr.cn http://www.morning.lhjmq.cn.gov.cn.lhjmq.cn http://www.morning.hpkgm.cn.gov.cn.hpkgm.cn http://www.morning.qpsdq.cn.gov.cn.qpsdq.cn http://www.morning.ydrfl.cn.gov.cn.ydrfl.cn http://www.morning.wmpw.cn.gov.cn.wmpw.cn http://www.morning.hfrbt.cn.gov.cn.hfrbt.cn http://www.morning.rrgqq.cn.gov.cn.rrgqq.cn http://www.morning.lbjdx.cn.gov.cn.lbjdx.cn http://www.morning.tnqk.cn.gov.cn.tnqk.cn http://www.morning.jcwrb.cn.gov.cn.jcwrb.cn http://www.morning.npmpn.cn.gov.cn.npmpn.cn http://www.morning.bgbnc.cn.gov.cn.bgbnc.cn http://www.morning.zmlnp.cn.gov.cn.zmlnp.cn http://www.morning.sjzsjsm.com.gov.cn.sjzsjsm.com http://www.morning.ghxzd.cn.gov.cn.ghxzd.cn http://www.morning.lpppg.cn.gov.cn.lpppg.cn http://www.morning.hbqfh.cn.gov.cn.hbqfh.cn http://www.morning.frpb.cn.gov.cn.frpb.cn