0


RabbitMQ中的Routing Key是什么?它的作用是什么?

RabbitMQ中的Routing Key是什么?它的作用是什么?

RabbitMQ中的Routing Key(路由键)是用于将消息路由到指定队列的关键字。它是在消息发布时与消息一起发送的一个属性。Routing Key的作用是根据一定的规则将消息发送到匹配的队列中。

在RabbitMQ中,Exchange(交换机)负责接收来自生产者的消息,并根据Routing Key将消息路由到一个或多个队列中。Exchange与队列之间的绑定关系是通过Binding Key(绑定键)来确定的。当生产者发送消息时,需要指定一个Routing Key,Exchange根据Routing Key将消息发送到与之匹配的队列中。

下面是一个使用Java编写的代码案例,演示了如何使用Routing Key将消息发送到指定的队列:

importcom.rabbitmq.client.Channel;importcom.rabbitmq.client.Connection;importcom.rabbitmq.client.ConnectionFactory;importjava.io.IOException;importjava.util.concurrent.TimeoutException;publicclassRoutingKeyExample{privatefinalstaticStringEXCHANGE_NAME="my_exchange";privatefinalstaticStringQUEUE_NAME_1="my_queue_1";privatefinalstaticStringQUEUE_NAME_2="my_queue_2";privatefinalstaticStringROUTING_KEY_1="key1";privatefinalstaticStringROUTING_KEY_2="key2";publicstaticvoidmain(String[] args)throwsIOException,TimeoutException{// 创建连接工厂ConnectionFactory factory =newConnectionFactory();
        factory.setHost("localhost");// 创建连接Connection connection = factory.newConnection();// 创建通道Channel channel = connection.createChannel();// 声明交换机
        channel.exchangeDeclare(EXCHANGE_NAME,"direct");// 声明队列1
        channel.queueDeclare(QUEUE_NAME_1,true,false,false,null);// 声明队列2
        channel.queueDeclare(QUEUE_NAME_2,true,false,false,null);// 绑定队列1到交换机,并指定Routing Key为key1
        channel.queueBind(QUEUE_NAME_1,EXCHANGE_NAME,ROUTING_KEY_1);// 绑定队列2到交换机,并指定Routing Key为key2
        channel.queueBind(QUEUE_NAME_2,EXCHANGE_NAME,ROUTING_KEY_2);// 发送消息到交换机,并指定Routing Key为key1String message1 ="Hello, RabbitMQ! (Routing Key: key1)";
        channel.basicPublish(EXCHANGE_NAME,ROUTING_KEY_1,null, message1.getBytes());System.out.println("Sent message: "+ message1);// 发送消息到交换机,并指定Routing Key为key2String message2 ="Hello, RabbitMQ! (Routing Key: key2)";
        channel.basicPublish(EXCHANGE_NAME,ROUTING_KEY_2,null, message2.getBytes());System.out.println("Sent message: "+ message2);// 关闭通道和连接
        channel.close();
        connection.close();}}

在上面的代码中,首先我们创建了一个连接工厂,并设置RabbitMQ服务器的主机地址。然后,我们使用连接工厂创建了一个连接,并使用连接创建了一个通道。接下来,我们声明了一个名为"my_exchange"的交换机,并设置交换机的类型为"direct",表示使用Routing Key进行消息路由。然后,我们声明了两个队列,分别是"my_queue_1"和"my_queue_2"。接着,我们使用

queueBind

方法将队列1绑定到交换机,并指定Routing Key为"key1",将队列2绑定到交换机,并指定Routing Key为"key2"。最后,我们使用

basicPublish

方法发送两条消息到交换机,分别指定Routing Key为"key1"和"key2"。

标签: rabbitmq 分布式

本文转载自: https://blog.csdn.net/qq_51447496/article/details/132892137
版权归原作者 极客李华 所有, 如有侵权,请联系我们删除。

“RabbitMQ中的Routing Key是什么?它的作用是什么?”的评论:

还没有评论