RabbitMQ的介绍及安装
介绍
百度百科:
RabbitMQ是实现了高级消息队列协议(AMQP)的开源消息代理软件(亦称面向消息的中间件)。RabbitMQ服务器是用Erlang语言编写的,而集群和故障转移是构建在开放电信平台框架上的。所有主要的编程语言均有与代理接口通讯的客户端库。
首先RabbitMQ基于AMQP协议开发,所以很多基于AMQP协议的功能RabbitMQ都是支持的,比如SpringCloud中的消息总线bus
其次RabbitMQ是基于Erlang编写,这是也是RabbitMQ天生的优势,Erlang被称为面向并发编程的语言,并发能力极强,在众多的MQ中,RabbitMQ的延迟特别低,在微秒级别,所以一般的业务处理RabbitMQ比Kafka和RocketMQ更有优势。
最后RabbitMQ提供自带了图形化界面,操作方便,还自带了多种集群模式,可以保证RabbitMQ的高可用,并且SpringBoot默认就整合RabbitMQ,使用简单方便。
RabbitMQ解决的问题:
应用程序之间的解耦:通过消息队列来实现应用程序之间的异步通信,从而降低应用程序之间的耦合度。
提高系统的可靠性:通过消息队列和消息缓存机制来保证消息的可靠性,从而降低应用程序之间的通信出错率。
提高系统的可扩展性:通过消息队列和消息缓存机制来缓解系统的负载压力,从而提高系统的可扩展性。
提高应用程序的性能:通过异步消息传递机制来提高应用程序的响应时间和处理能力,从而提高应用程序的性能。
总结RabbitMQ的作用主要是用来服务解耦、消息可靠、请求削峰、异步通信。
安装
这里推荐搭建采用Docker的方式在Linux中安装RabbitMQ,如果对Docker不了解,推荐去学习一下Docker的应用,不然学习其他的知识时,安装的成本都特别高,这里我们就采用Docker的方式安装RabbitMQ。
直接使用docker-compose.yml文件即可安装RabbitMQ服务:
version: '3.1'
services:
rabbitmq:
restart: always
image: daocloud.io/library/rabbitmq:3.8.8
restart: always
volumes:
- ./data/:/var/lib/rabbitmq/
- ./log/:/var/log/rabbitmq/log/
ports:
- 15672:15672
- 5672:5672
执行命令运行
docker-compose up -d
测试效果
curl localhost:5672