RabbitMQ是一种消息队列软件,它实现了高度可靠的消息传递机制。RabbitMQ支持多种消息协议,包括AMQP、STOMP、MQTT等,比较灵活。以下是一些rabbitmq的知识点:
-
消息队列:消息队列是一种分布式系统中广泛使用的通信模式,其中应用程序可以通过发送和接收消息实现异步通信。RabbitMQ的主要目的就是在应用程序之间传递消息。
-
消息传递模型:RabbitMQ提供了两种消息传递模型:发布-订阅和点对点。发布-订阅模型允许多个消费者在同一时间收到同一消息。点对点模型只有一个消费者可以收到消息。
-
Exchange:Exchange是一种消息路由器,用于将消息路由到一个或多个队列。Exchange有四种类型:direct、fanout、topic和headers,每种类型都有不同的路由规则。
-
Queue:消息队列是RabbitMQ中存储消息的实体。队列具有名称,并根据名称进行访问。消息可以通过Exchange路由到不同的队列,由消费者从队列中接收。
-
Bindings:Bindings是连接Exchange和Queue的路由规则。Bindings定义了Exchange如何将消息路由到队列。
-
Connection:连接是RabbitMQ客户端与Broker之间的TCP连接。
-
Channel:通道是建立在连接之上的虚拟连接。通过通道,客户端可以与Broker进行交互。
-
消息确认:消息确认是RabbitMQ保证消息到达目的地的机制。客户端可以选择使用自动确认或手动确认模式,手动确认模式可以确保消息被正确地处理。
-
消费者优先级:消费者可以设置优先级,高优先级的消费者可以优先处理消息。
-
死信队列:RabbitMQ支持死信队列,当消息无法被处理时,可以将消息发送到死信队列进行处理。这可以确保消息不会丢失,并允许进一步处理。