当前位置:   article > 正文

RabbitMQ的介绍&RabbitMQ的安装和使用_rabbitmq amd64

rabbitmq amd64

一、RabbitMQ的介绍

1.1什么是MQ

        MQ(message queue):消息队列,存储消息的容器

 1.1.2选型和对比

RabbitMQActiveMQRocketMQKafka
公司/社区RabbitApache阿里Apache
开发语言ErlangJavaJavaScala&Java
协议AMQPOpenWire、AUTO、Stomp、MQTT自定义自定义
单机吞吐量万级万级(最差)十万级十万级
消息延迟微妙级毫秒级毫秒级毫秒以内
特性并发能力很强,延时很低老牌产品,文档较多MQ功能比较完备,扩展性佳只支持主要的MQ功能,毕竟是为大数据领域准备的。

1.2 什么是RabbitMQ

       rabbitmqerlang语言编写实现AMQP协议消息中间件

        AMQP协议:即 Advanced Message Queuing Protocol(高级消息队列协议),是一个网络协议,是应用层协议的一个开放标准,为面向消息的中间件设计。基于此协议的客户端与消息中间件可传递消息,并不受客户端/中间件不同产品,不同的开发语言等条件的限制。2006年,AMQP规范发布。类比HTTP。

        connection:连接
        channel:轻量级的connection
        exchange:只负责分发消息,若没有queue绑定到exchange上则消息会丢失
        routingkey:控制消息的去向,支持通配符;eg:*匹配1个单词,#匹配多个单词;
        queue:存储消息的容器 

1.3 为什么使用RabbitMQ

1.3.1解耦

传统模式:系统间耦合性太强,如图所示,系统A在代码中直接调用系统B和系统C的代码,如果将来D系统接入,系统A还需要修改代码,过于麻烦!

中间件模式:将消息写入消息队列,需要消息的系统自己从消息队列中订阅,从而系统A不需要做任何修改。  

1.3.2 异步

传统模式: 一些非必要的业务逻辑以同步的方式运行,太耗费时间

中间件模式: 将消息写入消息队列,非必要的业务逻辑以异步的方式运行,加快响应速度  

1.3.3 削峰

传统模式:并发量大的时候,所有的请求直接怼到数据库,造成数据库连接异常

中间件模式: 系统A慢慢的按照数据库能处理的并发量,从消息队列中慢慢拉取消息  

 总结:

  1. 解耦:a服务本来是调用b、c服务,若再添加d服务则无须修改a服务的源代码
  2. 异步:a服务把消息发送到mq,b、c服务接收消息后以异步的方式允许
  3. 削峰:按并发能力拉取消息,慢慢处理业务

二、RabbitMQ的安装

2.1 下载

官网下载地址:Downloading and Installing RabbitMQ — RabbitMQ

 2.2 安装Erlang

 依次执行命令:

  1. rpm -ivh esl-erlang-17.3-1.x86_64.rpm --force --nodeps

      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

2.3 安装RabbitMQ

上传安装包:

安装RabbitMQ :

 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

防火墙开放15672端口

/sbin/iptables -I INPUT -p tcp --dport 15672 -j ACCEPT ​

/etc/rc.d/init.d/iptables save

开启web界面管理工具

rabbitmq-plugins enable rabbitmq_management ​

service rabbitmq-server restart

 2.4 创建账户

这里我们以创建个admin帐号,密码1111为例,创建一个账号并支持远程ip访问。

1.创建账号

rabbitmqctl add_user admin 1111

2.设置用户角色

rabbitmqctl set_user_tags admin administrator

3.设置用户权限

rabbitmqctl set_permissions -p "/" admin ".*" ".*" ".*"

4.设置完成后可以查看当前用户和角色(需要开启服务)

rabbitmqctl list_users

5.测试

浏览器输入:serverip:15672。其中serverip是RabbitMQ-Server所在主机的ip,15672是RabbitMQ-Server的端口号

2.5 管理界面

1)主页总览

 

connections:无论生产者还是消费者,都需要与RabbitMQ建立连接后才可以完成消息的生产和消费,在这里可以查看连接情况

channels:通道,建立连接后,会形成通道,消息的投递获取依赖通道。

Exchanges:交换机,用来实现消息的路由

Queues:队列,即消息队列,消息存放在队列中,等待消费,消费后被移除队列。

端口:

5672: rabbitMq的编程语言客户端连接端口

15672:rabbitMq管理界面端口

25672:rabbitMq集群的端口

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/空白诗007/article/detail/792821
推荐阅读
相关标签
  

闽ICP备14008679号