RabbitMQ简介及安装
1、RabbitMQ的优点
- 基于ErLang语言开发具有高可用高并发的优点,适合集群服务器
- 健壮、稳定、跨平台、支持多种语言,文档齐全
- 有消息确认机制和持久化机制,可靠性高
- 开源
2、RabbitMQ的概念
生产者与消费者
- Producer:消息的生产者
- Consumer:消息的消费者
Queue
- 消息队列,提供了FIFO(First Input First Output指先进先出)的处理机制,具有缓存消息的能力。在RabbitMQ中,队列消息可以设置为持久化、临时或者自动删除(可配置)
- 设置为持久化的队列,Queue中的消息会再Server本地磁盘存储一份,防止系统Crash,数据丢失
- 设置为临时队列,Queue中的数据在系统重启之后会丢失
- 设置为自动删除的队列,当不存在用户连接到Server,队列中的数据自动删除
ExChange
ExChange类似数据通信网络中的交换机,提供信息路由策略。在RabbitMQ中,Producer不是通过信息通道直接发给Queue,而是先发给ExChange。一个ExChange可以和多个Queue进行绑定,Producer在传递信息的时候,会传递一个ROUTING_KEY,ExChange会根据这个RIUTING_KEY按照特定的路由算法,将消息路由给绑定的Queue。和Queue一样,ExChange可设置为持久化、临时或者删除。
ExChange的4种类型
- Direct exchange:key等于queue
- Fanout exchange:无视key,给所有的queue都来一份
- Topic exchange:key可以用“宽字符”模糊匹配queue
- Headers exchange:无视key,通过查看消息头部元数据来决定发给哪个queue(AMQP头部元数据非常丰富,且可以自定义)
Binding
绑定就是讲一个ExChange和一个特定的Queue绑定起来,可以是多对多的关系
Virtual Host
在RabbitMQ Server上可以创建多个虚拟的Message Broker,又叫做Virtual Hosts(vhosts),每一个vhosts本质上是一个mini rabbiting server,分别管理自己的ExChange和bindings。vhosts相当于物理的Server,可以为不同app提供便捷隔离,使得应用安全的运行在不同的vhost实例上,互相之间不会干扰。Producer和Consumer连接rabbit server需要制定一个vhost。
RabbitMQ的使用过程
- 客户端连接到消息队列服务器,打开一个Channel
- 客户端申明一个ExChange,并设置相关属性
- 客户端声明一个Queue,并设置相关属性
- 客户端使用Routing Key,在ExChange和Queue之间建立好绑定关系
- 客户端投递消息到ExChange
- ExChange接受到消息后,根据消息的key和已经设置的binding,进行消息路由,将消息投递到一个或多个队列里
3、RabbitMQ安装
在linux系统下(已经安装docker),执行以下命令:
docker search rabbitmq:management
注:一定要有management后缀的,没有的安装后无法访问web页面!

我们下载第一个镜像:
docker pull macintoshplus/rabbitmq-management

下载完成后,执行以下命令启动:
docker run -d --hostname my-rabbit --name rabbit -p 15672:15672 -p 5672:5672 macintoshplus/rabbitmq-management
启动成功可在网页上进入RabbitMQ登录界面


这样就安装完成了。
在windows下,需要先下载Erlang并安装(直接下一步安装即可),再安装RabbitMQ(也全是下一步),路径自己选择合适的即可。安装完成后进入到RabbiitMQ安装目录的ebin目录下,执行cmd命令:
rabbitmq-plugins enable rabbitmq_management
注意:有时候Erlang和RabbitMQ没有安装到默认目录下,会启动报错。这时候需要在系统配置Erlang和RabbitMQ的环境变量。Erlang和RabbitMQ需要有版本对应关系,详细请看官网:https://www.rabbitmq.com/which-erlang.html(RabbitMQ版本需要对应的Erlang版本)

完成后浏览器输入:http://localhost:15672,账号密码都是guest登陆成功。

登陆后的界面:

本文介绍了RabbitMQ的消息中间件优势,如高可用性、高并发、跨平台等,并详细阐述了其核心概念,包括生产者、消费者、队列、交换机、绑定和虚拟主机的工作原理。此外,还提供了在Linux(使用Docker)和Windows上的安装步骤,以及如何通过Web界面访问和管理RabbitMQ。
741

被折叠的 条评论
为什么被折叠?



