RibbitMQ简单介绍和安装

RibbitMQ简单介绍、安装和使用

一、RibbitMQ简单介绍

1 什么是MQ

消息队列(Message Queue):是在消息传输过程中保存消息的容器。用于分布式之间进行通信
MQ中间件

2 选型和对比

众多MQ的优缺点

综合上图可以得出结论:

  1. 中小型公司没有那么大的数据量,建议选择RibbitMQ。一方面Erlang语言天生就有处理高并发的特点,RibbitMQ在众多社区中热度也比较高,相关bug可以通过搜索来解决,这点对中小型公司比较重要。
  2. 大型软件公司就选择RocketMQ或者Kafka二选一,因为大型公司不差钱儿去做分布式,也拥有足够大的数据量。针对RocketMQ可以进行定制化开发。至于Kafka,根据业务场景选择,如果有日志采集功能,首选Kafka。

3 什么是RibbitMQ

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

Ribbit的逻辑图

2007年,Rabbit技术公司基于AMQP标准开发的RabbitMQ1.0发布。RabbitMQ采用Erlang 语言开发。

4 为什么要使用RabbitMQ ?

4.1 解耦

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

传统模式系统间的关系

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

中间件模式

4.2 异步

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

各服务之间同步关系

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

各服务之间异步关系

4.3 削峰

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

偶尔的并发过高导致数据库崩溃

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

将请求放到消息队列中

二、RibbitMQ的安装

1 拷贝centos

克隆一台空白虚拟机
一套下一步连招中,注意选择克隆类型时:需要选择完整克隆
选择创建完整克隆

2 下载

官网下载地址:http://www.rabbitmq.com/download.html

RibbitMQ的官网图

3 安装Erlang

在这里插入图片描述

下载链接:https://download.youkuaiyun.com/download/QAQnullPoint/86504242

下载完成之后上传安装包到**/usr/upload**目录下

依次执行命令:

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

rpm -ivh esl-erlang_17.3-1~centos~6_amd64.rpm --force --nodeps

rpm -ivh esl-erlang-compat-R14B-1.el6.noarch.rpm --force --nodeps

4 安装RabbitMQ

上传安装包
RibbitMQ的安装包
安装RabbitMQ(链接在上面)

rpm -ivh rabbitmq-server-3.4.1-1.noarch.rpm

5 启动、停止

service rabbitmq-server start #启动

service rabbitmq-server stop #停止

service rabbitmq-server restart #重启

service rabbitmq-server status #查看状态

6 设置开机启动

chkconfig rabbitmq-server on

7 防火墙开放15672端口

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

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

8 开启web界面管理工具

rabbitmq-plugins enable rabbitmq_management

service rabbitmq-server restart #一定要重启

9 创建账户

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

  1. 创建账号
rabbitmqctl  add_user admin 1111

在这里插入图片描述

  1. 设置用户角色
rabbitmqctl  set_user_tags admin  administrator

在这里插入图片描述

  1. 设置用户权限
rabbitmqctl set_permissions -p "/" admin ".*" ".*" ".*"

在这里插入图片描述

  1. 设置完成后可以查看当前用户和角色
rabbitmqctl list_users

创建账户成功

guest账户只能在本地通过localhost:15672访问时登录使用。所以一般都不用(密码也是guest)
使用创建的账户可以通过远程进行访问,以及操作。

10 测试

浏览器输入:serverIP:15672。其中serverIP是RabbitMQ-Server所在主机的ip,15672是RabbitMQ-Server的端口号
RibbitMQ的登录界面

10.1 管理界面

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

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

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

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

10.2 端口:

5672: rabbitMq的编程语言客户端连接端口(配置文件里面用)

15672:rabbitMq管理界面端口(登录管理页面用)

25672:rabbitMq集群的端口(集群用)

(使用方法放到下一篇文章单独写)

链接:https://editor.youkuaiyun.com/md/?articleId=126655319

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值