C#RabbitMQ发布订阅模式配置

本文详细介绍了如何在C#中配置RabbitMQ的发布订阅模式,包括环境搭建、服务器安装与启动、用户权限管理,以及发布者和订阅者的简单示例代码,帮助对消息队列有一定理解但对服务器搭建不熟悉的开发者快速入门。
摘要由CSDN通过智能技术生成

本文适合对消息队列有简单理解但是对于服务器搭建有困难的小伙伴。

首先我们需要搭建rabbitmq服务器来中转我们的消息。

1.环境搭建

1.1由于RabbitMQ使用Erlang语言编写,所有我们需要先安装Erlang环境(安装没什么难度直接双击运行就可以了)

1.2安装RabbitMQ服务端程序

以上安装包稍后会在文章下面贴出来。

使RabbitMQ以windows服务的方式在后台运行

1)cmd切换到sbin目录下面

2)执行:

rabbitmq-service install

rabbitmq-service enable

rabbitmq-service start

现在我们的rabbitmq服务端已经运行起来了。

我们可以尝试:rabbitmqctl status 来看一下服务器的运行状态

如果显示node没有连接上,需要到C:Windows目录下,将.erlang.cookie文件,拷贝到用户目录下C:\User\{用户名},

这是Erlang的Cookie文件,允许Erlang进行交互。

我们可以使用rabbitmqctl list_users查看我们可以使用的用户,默认情况下只有administrator可以使用。

通常情况下我们需要新建一个用户给我们的应用程序使用。

rabbitmqctl add_user wcs 123456 //创建用户名为wcs密码为123456的用户

rabbitmqctl set_permissions wcs  ".*"  ".*"  ".*" //授权给wcs用户所有权限

rabbitmqctl set_user_tags wcs administrator //分配用户组

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
RabbitMQ的发布订阅模式是一种基于交换机(exchange)和队列(queue)的消息传递方式,它可以将消息广播给所有订阅了相关队列的消费者。下面是使用RabbitMQ实现发布订阅模式的基本步骤: 1. 创建一个连接和通道(channel)对象: ``` ConnectionFactory factory = new ConnectionFactory(); Connection connection = factory.newConnection(); Channel channel = connection.createChannel(); ``` 2. 声明一个交换机: ``` String exchangeName = "logs"; channel.exchangeDeclare(exchangeName, "fanout"); ``` 在声明交换机时,需要指定交换机的名称和类型。这里使用的是fanout类型,它会将所有消息广播给所有绑定到该交换机的队列。 3. 声明一个队列: ``` String queueName = channel.queueDeclare().getQueue(); ``` 在声明队列时,如果不指定队列名称,则RabbitMQ会自动生成一个队列名称,并返回给客户端。 4. 将队列绑定到交换机上: ``` channel.queueBind(queueName, exchangeName, ""); ``` 5. 发布消息到交换机上: ``` String message = "Hello World!"; channel.basicPublish(exchangeName, "", null, message.getBytes("UTF-8")); ``` 在发布消息时,需要指定交换机的名称和消息内容。由于是发布订阅模式,所以这里的路由键设置为"",表示消息将被发送到所有绑定到该交换机上的队列中。 6. 接收消息: ``` Consumer consumer = new DefaultConsumer(channel) { @Override public void handleDelivery(String consumerTag, Envelope envelope, AMQP.BasicProperties properties, byte[] body) throws IOException { String message = new String(body, "UTF-8"); System.out.println("Received message: " + message); } }; channel.basicConsume(queueName, true, consumer); ``` 在接收消息时,需要创建一个消费者对象,并将其注册到队列中。在这里,我们使用了一个DefaultConsumer类的子类来实现消费者对象,它会将收到的消息输出到控制台上。注意,在消费完消息后需要向RabbitMQ服务器发送确认消息,以便告诉服务器这条消息已经被处理完毕。 以上就是使用RabbitMQ实现发布订阅模式的基本步骤。在实际开发中,我们可以根据具体的需求来调整这些步骤的顺序和参数设置,以实现不同的功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值