小言_互联网的博客

rabbitmq专题--介绍

247人阅读  评论(0)

概念

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

运转流程


生产者发送消息的过程

  1. 生产者连接到rabbitmq broker,建立一个连接(connection),开启一个信道(channel)
  2. 生产者声明一个交换器,并设置相关属性,比如 交换机类型,是否持久化等
  3. 生产者声明一个队列并设置相关属性,比如是否排他,是否持久化,是否自动删除等
  4. 生产者通过路由键将交换器和队列绑定起来
  5. 生产者发送消息至rabbitmq broker,其中包含路由键,交换器等信息
  6. 相应的交换器根据接收到的路由键查找相匹配的队列
  7. 如果找到,则将从生产者发送过来的消息存入相应的队列中
  8. 如果没有找到,则根据生产者配置的属性选择丢弃还是回退给生产者
  9. 关闭信道,关闭连接

转载:https://blog.csdn.net/xb1964109474/article/details/105932911
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场