浅谈RabbitMQ(一)

本文介绍了消息队列的概念,强调了解耦、异步处理和削峰等优点,并探讨了RabbitMQ作为主流消息队列的特性。详细讲述了RabbitMQ的安装过程,包括Linux和Windows环境,以及其基本概念如生产者、消费者、队列和交换机。文章还介绍了RabbitMQ的五种消息模型,包括一对一、工作队列、发布/订阅、路由和主题模型。
摘要由CSDN通过智能技术生成

消息队列概念

消息队列(Message Queue)简称MQ,简单来说就是一种消息的容器

作用是采用FIFO(先入先出)的方式实现程序之间(服务、进程、线程)的消息通信。
在这里插入图片描述

消息队列的优点

MQ的优点有:
1)解耦

服务之间进行解耦,A服务调用B服务时,需要编写相关的代码,调用情况发生改变时,需要修改调用的代码

2)异步

传统的同步调用方式,需要等待调用完成,才能进行其它业务

异步调用方法,将消息发送到队列中,就可以返回,执行其它业务,速度大大提升

3)削峰

出现流量激增的情况时,消息队列可以设置消息的最大数量,处理一部分消息,其它消息交给队列排队处理

MQ的缺点:

  1. 增加了系统的复杂性
  2. 降低了系统的可用性(消息队列出现问题,整个系统的通信受影响)
  3. 。。。

主流的消息队列

目前市场上主流的消息队列有4种:

  • ActiveMQ

  • RabbitMQ

  • RocketMQ Alibaba

  • Kafka

    在这里插入图片描述
    RabbitMQ并发性能好,而且部署相对容易,是目前很多企业使用的消息队列。

安装RabbitMQ

Linux安装

安装erlang

wget https://packages.erlang-solutions.com/erlang-solutions-1.0-1.noarch.rpm
rpm -Uvh erlang-solutions-1.0-1.noarch.rpm
yum install epel-release
yum install erlang

安装rabbitmsq

wget https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.9.7/rabbitmq-server-3.9.7-1.el7.noarch.rpm
yum install rabbitmq-server-3.9.7-1.el7.noarch.rpm  # 目前的最新版本 支持erlang24

启动rabbitmsq

service rabbitmq-server start

启用管理工具

rabbitmq-plugins enable rabbitmq_management 

防火墙允许端口

firewall-cmd --permanent --add-port=15672/tcp
firewall-cmd --permanent --add-port=5672/tcp

将配置文件模板复制到etc目录:

cp /usr/share/doc/rabbitmq-server-3.9.7-1/rabbitmq.config.example /etc/rabbitmq/rabbitmq.config

通过vi命令编辑:

vi /etc/rabbitmq/rabbitmq.config

修改下面内容:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ou2QLqXY-1634009581873)(assets/1527066694704.png)]
注意要去掉后面的逗号

设置开机启动

输入下面命令

chkconfig rabbitmq-server on

Windows安装

文件下载
1)安装erlang
2)安装rabbitmq
3)打开菜单输入命令,启动管理工具
在这里插入图片描述

rabbitmq-plugins enable rabbitmq_management

4)启动rabbit

net start rabbitmq
net stop rabbitmq

5)浏览器输入: http://localhost:15672 账号密码都是guest
在这里插入图片描述

基本概念

  • 生产者

    向队列中发送消息的程序

  • 消费者

    从队列中消费消息的程序

  • 队列

    消息的容器,FIFO数据结构

  • 交换机

    将消息复制分发到不同的队列中

  • 虚拟主机

    包含交换机和队列的空间

  • 连接

    客户端和MQ服务的连接

  • 通道

    通信的通道

基本使用

用户

不同的系统可以使用各自的用户登录RabbitMQ,可以在Admin的User页面添加新用户
在这里插入图片描述

虚拟主机

虚拟主机相当于一个独立的MQ服务,有自身的队列、交换机、绑定策略等。
添加虚拟主机
在这里插入图片描述

队列

不同的消息队列保存不同类型的消息,如支付消息、秒杀消息、数据同步消息等。
添加队列,需要填写虚拟主机、类型、名称、持久化、自动删除和参数等。
在这里插入图片描述

交换机

生产者将消息发送到交换机Exchange,再由交换机路由到一个或多个队列中;
交换器的类型有fanout、direct、topic、headers这四种,下篇文章将详细介绍。
添加交换机

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值