概念
RabbitMQ是一个开源的AMQP实现,服务器端用Erlang语言编写,支持多种客户端。用于分布式系统中存储转发消息,在易用性,扩展性,高可用性等方面表现不俗。
配置
Rabbitmq 有一套默认的配置,能够满足日常开发需求,如果需要修改,需要自己创建一个配置文件。
端口
Rabbitmq会绑定一些端口,安装完后,需要将这些端口添加至防火墙。
4369:是Erlang的端口/结点名称映射程序,用来跟踪结点名称监听地址,在集群中起到类似DNS的作用。
5672,5671:AMQP 0-9-1和1.0客户端端口,没有使用SSL和使用SSL的端口
25672
用于rabbitmq节点间和CLI工具通信,配合4369使用。
15672
HTTP_API端口,管理员用户才能访问,用于管理rabbitmq,需要启用management插件。
AMQP
AMQP结构
Rabbitmq整体结构
Producer
Broker
Virtual Host
Channel
RoutingKey
Exchange
Queue
Binding
Exchange 类型
rabbitmq常用的交换器类型有fanout,direct,topic,headers这4种
fanout
direct
topic
headers
Consumer
运转流程
生产者发送消息的过程
- 生产者连接到rabbitmq broker,建立一个连接(connection),开启一个信道(channel)
- 生产者声明一个交换器,并设置相关属性,比如 交换机类型,是否持久化等
- 生产者声明一个队列并设置相关属性,比如是否排他,是否持久化,是否自动删除等
- 生产者通过路由键将交换器和队列绑定起来
- 生产者发送消息至rabbitmq broker,其中包含路由键,交换器等信息
- 相应的交换器根据接收到的路由键查找相匹配的队列
- 如果找到,则将从生产者发送过来的消息存入相应的队列中
- 如果没有找到,则根据生产者配置的属性选择丢弃还是回退给生产者
- 关闭信道,关闭连接
转载:https://blog.csdn.net/xb1964109474/article/details/105932911
查看评论