赞
踩
MQ(message queue):消息队列,存储消息的容器
RabbitMQ | ActiveMQ | RocketMQ | Kafka | |
---|---|---|---|---|
公司/社区 | Rabbit | Apache | 阿里 | Apache |
开发语言 | Erlang | Java | Java | Scala&Java |
协议 | AMQP | OpenWire、AUTO、Stomp、MQTT | 自定义 | 自定义 |
单机吞吐量 | 万级 | 万级(最差) | 十万级 | 十万级 |
消息延迟 | 微妙级 | 毫秒级 | 毫秒级 | 毫秒以内 |
特性 | 并发能力很强,延时很低 | 老牌产品,文档较多 | MQ功能比较完备,扩展性佳 | 只支持主要的MQ功能,毕竟是为大数据领域准备的。 |
rabbitmq是erlang语言编写实现AMQP协议的消息中间件
AMQP协议:即 Advanced Message Queuing Protocol(高级消息队列协议),是一个网络协议,是应用层协议的一个开放标准,为面向消息的中间件设计。基于此协议的客户端与消息中间件可传递消息,并不受客户端/中间件不同产品,不同的开发语言等条件的限制。2006年,AMQP规范发布。类比HTTP。
connection:连接
channel:轻量级的connection
exchange:只负责分发消息,若没有queue绑定到exchange上则消息会丢失
routingkey:控制消息的去向,支持通配符;eg:*匹配1个单词,#匹配多个单词;
queue:存储消息的容器
传统模式:系统间耦合性太强,如图所示,系统A在代码中直接调用系统B和系统C的代码,如果将来D系统接入,系统A还需要修改代码,过于麻烦!
中间件模式:将消息写入消息队列,需要消息的系统自己从消息队列中订阅,从而系统A不需要做任何修改。
传统模式: 一些非必要的业务逻辑以同步的方式运行,太耗费时间
中间件模式: 将消息写入消息队列,非必要的业务逻辑以异步的方式运行,加快响应速度
传统模式:并发量大的时候,所有的请求直接怼到数据库,造成数据库连接异常
中间件模式: 系统A慢慢的按照数据库能处理的并发量,从消息队列中慢慢拉取消息
总结:
官网下载地址:Downloading and Installing RabbitMQ — RabbitMQ
依次执行命令:
2. rpm -ivh esl-erlang_17.3-1~centos~6_amd64.rpm --force --nodeps
3. rpm -ivh esl-erlang-compat-R14B-1.el6.noarch.rpm --force --nodeps
rpm -ivh rabbitmq-server-3.4.1-1.noarch.rpm
service rabbitmq-server start #启动
service rabbitmq-server stop #停止
service rabbitmq-server restart #重新启动
service rabbitmq-server status #状态
chkconfig rabbitmq-server on
/sbin/iptables -I INPUT -p tcp --dport 15672 -j ACCEPT
/etc/rc.d/init.d/iptables save
rabbitmq-plugins enable rabbitmq_management
service rabbitmq-server restart
这里我们以创建个admin帐号,密码1111为例,创建一个账号并支持远程ip访问。
rabbitmqctl add_user admin 1111
rabbitmqctl set_user_tags admin administrator
rabbitmqctl set_permissions -p "/" admin ".*" ".*" ".*"
rabbitmqctl list_users
浏览器输入:serverip:15672。其中serverip是RabbitMQ-Server所在主机的ip,15672是RabbitMQ-Server的端口号
connections:无论生产者还是消费者,都需要与RabbitMQ建立连接后才可以完成消息的生产和消费,在这里可以查看连接情况
channels:通道,建立连接后,会形成通道,消息的投递获取依赖通道。
Exchanges:交换机,用来实现消息的路由
Queues:队列,即消息队列,消息存放在队列中,等待消费,消费后被移除队列。
端口:
5672: rabbitMq的编程语言客户端连接端口
15672:rabbitMq管理界面端口
25672:rabbitMq集群的端口
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。