RabbitMQ

文章目录

  • 简介
    • 定义
    • 消息队列的作用
    • 特点
  • RabbitMQ安装
    • 下载
    • 安装erlang
    • 安装RabbitMq
    • 启动RabbitMq

简介

定义

消息队列(Massage Queue)是在消息的传输过程中保存消息的容器。在消息队列中,通常有生产者和消费者两个角色。生产者只负责发送数据到消息队列,谁从消息队列中取出数据处理,他不管。消费者只负责从消息队列中取出数据处理,他不管这是谁发送的数据。
RabbitMQ_第1张图片

消息队列的作用

解耦

假设系统B、C、D都需要系统A的数据,因此A调用三个方法发送数据到B、C、D。之后,系统D不需要了,要删除在A的相关代码。若新的系统E需要数据,A需要增加调用E的代码,为了降低这种强耦合,系统A只需要把数据发送到MQ,其它系统如需数据,只需要从MQ获取即可。

异步

客户端请求发送给系统A,系统A再将数据传给MQ,MQ就可以返回响应给客户端,而不是等待B、C、D的响应,可以大大提高性能。对于发送短信、邮件可以采用MQ。
RabbitMQ_第2张图片

削峰

假设系统A在某一段时间请求数暴增,有5000个请求发送过来,系统A这时就会发送5000条SQL进入MySQL进行执行,MySQL对于如此庞大的请求当然处理不过来,MySQL就会崩溃,导致系统瘫痪。如果使用MQ,系统A不再是直接发送SQL到数据库,而是把数据发送到MQ,MQ短时间积压数据是可以接受的,然后由消费者每次拉取2000条进行处理,防止在请求峰值时期大量的请求直接发送到MySQL导致系统崩溃。
RabbitMQ_第3张图片

特点

可靠性。支持持久化,传输确认,发布确认等保证了MQ的可靠性。
灵活的分发消息策略。这应该是RabbitMQ的一大特点。在消息进入MQ前由Exchange(交换机)进行路由消息。分发消息策略有:简单模式、工作队列模式、发布订阅模式、路由模式、通配符模式。
支持集群。多台RabbitMQ服务器可以组成一个集群,形成一个逻辑Broker。
多种协议。RabbitMQ支持多种消息队列协议,比如 STOMP、MQTT 等等。
支持多种语言客户端。RabbitMQ几乎支持所有常用编程语言,包括 Java、.NET、Ruby 等等。
可视化管理界面。RabbitMQ提供了一个易用的用户界面,使得用户可以监控和管理消息 Broker。
插件机制。RabbitMQ提供了许多插件,可以通过插件进行扩展,也可以编写自己的插件。

RabbitMQ安装

RabbitMq是一个开源的基于Erlang语言编写实现的,支持多种客户端语言,用于在分布式系统中储存消息,转发消息,具有高可用高可扩性,易用性等特征。

下载

由于rabbitMq是基于Erlang语言开发的,所以系统环境必须提供Erlang环境,因此需要安装Erlang。
Erlang下载地址
rabbitMq下载地址
Erlang和RabbitMQ版本对照

安装erlang

1、首先在Linux系统下创建一个文件夹存放对应文件

[root@qjy ~]# mkdir -p /usr/rabbitmq

2、然后用xftp工具将刚刚下载的两个.rpm文件上传到Linux下创建的文件夹中
3、切换到/usr/rabbitmq目录,解压erlang

# 解压
rpm -Uvh erlang-23.2.7-2.el7.x86_64.rpm

# 安装
yum install -y erlang

#安装成功后查看版本号
erl -v

安装RabbitMq

1、在安装时需要依赖socat插件:

yum install -y socat

2、解压安装RabbitMq的安装包

# 解压
rpm -Uvh rabbitmq-server-3.8.14-1.el7.noarch.rpm

# 安装
yum install -y rabbitmq-server

启动RabbitMq

# 启动rabbitmq
systemctl start rabbitmq-server

# 查看rabbitmq状态
systemctl status rabbitmq-server

显示active就表示启动成功

你可能感兴趣的:(Linux学习,java-rabbitmq,rabbitmq,java)