一个C#操作RabbitMQ的完整例子

简介: 一、下载RabbitMQ http://www.rabbitmq.com/install-windows.html   二、下载OTP http://www.erlang.org/downloads   三、安装OTP、RabbitMQ 四、配置RabbitMQ 找到bat的目录 执行相关命令    1.

 

一、下载RabbitMQ

http://www.rabbitmq.com/install-windows.html

 

二、下载OTP

http://www.erlang.org/downloads

 

三、安装OTP、RabbitMQ

四、配置RabbitMQ

找到bat的目录

执行相关命令

 

 1.添加用户密码 rabbitmqctl add_user wenli wenli

 2.设置wenli为管理员 rabbitmqctl set_user_tags wenli administrator

 3.启动RabbitMQ的web管理 rabbitmq-plugins enable rabbitmq_management

 4.创建virtual host 

5.设置用户权限

点击用户名进行设置

将virtual hosts 权限赋给用户wenli

 

6.创建Exchanges

 

五.创建C# console

  1.下载RabbitMQ驱动 https://github.com/yswenli/Wenli.Data.RabbitMQ/releases/tag/Release1.0.0

  2.添加引用     

  3.添加配置

     

   4.测试代码:

    

 1 using System;
 2 using System.Text;
 3 using System.Threading;
 4 using System.Threading.Tasks;
 5 
 6 namespace Wenli.Data.RabbitMQ.Console
 7 {
 8     using Console = System.Console;
 9 
10     class Program
11     {
12         static void Main(string[] args)
13         {
14             Console.Title = "Wenli.Data.RabbitMQ.Console";
15             Console.WriteLine("正连接到mq");
16 
17             try
18             {
19                 Test();
20             }
21             catch (Exception ex)
22             {
23                 Console.WriteLine("err:" + ex.Message + ex.Source + ex.StackTrace);
24             }
25 
26             Console.Read();
27         }
28 
29 
30         static void Test()
31         {
32 
33             var topic = "testtopic";
34 
35             var cnn = RabbitMQBuilder.Get(MQConfig.Default).GetConnection();
36 
37             var operation = cnn.GetOperation(topic);
38 
39             Console.WriteLine("正连接到订阅【" + topic + "");
40 
41             operation.Subscribe();
42 
43             Console.WriteLine("正在入队");
44 
45             Task.Factory.StartNew(() =>
46             {
47                 while (true)
48                 {
49                     operation.Enqueue(Encoding.UTF8.GetBytes(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + "     hello!"));
50                     Thread.Sleep(1);
51                 }
52             });
53 
54 
55 
56 
57             Console.WriteLine("正在出队");
58 
59 
60 
61             Task.Factory.StartNew(() =>
62             {
63                 while (true)
64                 {
65                     var result = operation.Dnqueue();
66 
67                     if (result == null)
68                     {
69                         Thread.Sleep(1);
70                     }
71                     else
72                     {
73                         Console.WriteLine(Encoding.UTF8.GetString(result));
74                     }
75                 }
76             });
77 
78             Console.ReadLine();
79 
80             Console.WriteLine("正在取消订阅");
81 
82             operation.UnSubscribe();
83 
84             Console.WriteLine("测试完成");
85         }
86     }
87 }

  5.运行结果:

   

至此C# 成功操作Rabbitmq完成

 

 


转载请标明本文来源:http://www.cnblogs.com/yswenli/p/7446919.html
更多内容欢迎star作者的github:https://github.com/yswenli/Wenli.Data.RabbitMQ
如果发现本文有什么问题和任何建议,也随时欢迎交流~

 

相关实践学习
消息队列RocketMQ版:基础消息收发功能体验
本实验场景介绍消息队列RocketMQ版的基础消息收发功能,涵盖实例创建、Topic、Group资源创建以及消息收发体验等基础功能模块。
消息队列 MNS 入门课程
1、消息队列MNS简介 本节课介绍消息队列的MNS的基础概念 2、消息队列MNS特性 本节课介绍消息队列的MNS的主要特性 3、MNS的最佳实践及场景应用 本节课介绍消息队列的MNS的最佳实践及场景应用案例 4、手把手系列:消息队列MNS实操讲 本节课介绍消息队列的MNS的实际操作演示 5、动手实验:基于MNS,0基础轻松构建 Web Client 本节课带您一起基于MNS,0基础轻松构建 Web Client
目录
相关文章
|
4月前
|
设计模式 NoSQL Java
常用的设计模式以及操作Redis、MySQL数据库、各种MQ、数据类型转换的方法
常用的设计模式以及操作Redis、MySQL数据库、各种MQ、数据类型转换的方法
|
2月前
|
消息中间件 C语言 RocketMQ
消息队列 MQ操作报错合集之出现"Connection reset by peer"的错误,该如何处理
消息队列(MQ)是一种用于异步通信和解耦的应用程序间消息传递的服务,广泛应用于分布式系统中。针对不同的MQ产品,如阿里云的RocketMQ、RabbitMQ等,它们在实现上述场景时可能会有不同的特性和优势,比如RocketMQ强调高吞吐量、低延迟和高可用性,适合大规模分布式系统;而RabbitMQ则以其灵活的路由规则和丰富的协议支持受到青睐。下面是一些常见的消息队列MQ产品的使用场景合集,这些场景涵盖了多种行业和业务需求。
|
2月前
|
消息中间件 Java 物联网
消息队列 MQ操作报错合集之建立连接时发生了超时错误,该如何解决
消息队列(MQ)是一种用于异步通信和解耦的应用程序间消息传递的服务,广泛应用于分布式系统中。针对不同的MQ产品,如阿里云的RocketMQ、RabbitMQ等,它们在实现上述场景时可能会有不同的特性和优势,比如RocketMQ强调高吞吐量、低延迟和高可用性,适合大规模分布式系统;而RabbitMQ则以其灵活的路由规则和丰富的协议支持受到青睐。下面是一些常见的消息队列MQ产品的使用场景合集,这些场景涵盖了多种行业和业务需求。
消息队列 MQ操作报错合集之建立连接时发生了超时错误,该如何解决
|
2月前
|
消息中间件 JavaScript Linux
消息队列 MQ操作报错合集之客户端在启动时遇到了连接错误,是什么原因
消息队列(MQ)是一种用于异步通信和解耦的应用程序间消息传递的服务,广泛应用于分布式系统中。针对不同的MQ产品,如阿里云的RocketMQ、RabbitMQ等,它们在实现上述场景时可能会有不同的特性和优势,比如RocketMQ强调高吞吐量、低延迟和高可用性,适合大规模分布式系统;而RabbitMQ则以其灵活的路由规则和丰富的协议支持受到青睐。下面是一些常见的消息队列MQ产品的使用场景合集,这些场景涵盖了多种行业和业务需求。
|
2月前
|
消息中间件 缓存 Apache
消息队列 MQ使用问题之对于Grpc参数的调优,该如何操作
消息队列(MQ)是一种用于异步通信和解耦的应用程序间消息传递的服务,广泛应用于分布式系统中。针对不同的MQ产品,如阿里云的RocketMQ、RabbitMQ等,它们在实现上述场景时可能会有不同的特性和优势,比如RocketMQ强调高吞吐量、低延迟和高可用性,适合大规模分布式系统;而RabbitMQ则以其灵活的路由规则和丰富的协议支持受到青睐。下面是一些常见的消息队列MQ产品的使用场景合集,这些场景涵盖了多种行业和业务需求。
|
3月前
|
消息中间件 监控 应用服务中间件
消息队列 MQ操作报错合集之重启Broker后,积压数出现为负数是什么导致的
在使用消息队列MQ时,可能会遇到各种报错情况。以下是一些常见的错误场景、可能的原因以及解决建议的汇总:1.连接错误、2.消息发送失败、3.消息消费报错、4.消息重试与死信处理、5.资源与权限问题、6.配置错误、7.系统资源限制、8.版本兼容性问题。
135 1
消息队列 MQ操作报错合集之重启Broker后,积压数出现为负数是什么导致的
|
3月前
|
消息中间件 Java 测试技术
消息队列 MQ操作报错合集之设置了setKeepAliveInterval(1)但仍然出现客户端未连接,该怎么解决
在使用消息队列MQ时,可能会遇到各种报错情况。以下是一些常见的错误场景、可能的原因以及解决建议的汇总:1.连接错误、2.消息发送失败、3.消息消费报错、4.消息重试与死信处理、5.资源与权限问题、6.配置错误、7.系统资源限制、8.版本兼容性问题。
|
3月前
|
消息中间件 设计模式 网络安全
消息队列 MQ操作报错合集之broker启用controller配置时,遇到报错,是什么导致的
在使用消息队列MQ时,可能会遇到各种报错情况。以下是一些常见的错误场景、可能的原因以及解决建议的汇总:1.连接错误、2.消息发送失败、3.消息消费报错、4.消息重试与死信处理、5.资源与权限问题、6.配置错误、7.系统资源限制、8.版本兼容性问题。
|
3月前
|
消息中间件 Apache RocketMQ
消息队列 MQ操作报错合集之设置了controller后,有一主一从,但只显示一个,该怎么解决
在使用消息队列MQ时,可能会遇到各种报错情况。以下是一些常见的错误场景、可能的原因以及解决建议的汇总:1.连接错误、2.消息发送失败、3.消息消费报错、4.消息重试与死信处理、5.资源与权限问题、6.配置错误、7.系统资源限制、8.版本兼容性问题。
|
4月前
|
消息中间件 Java
Java操作RabbitMQ单一生产-消费者模式
Java操作RabbitMQ单一生产-消费者模式
54 0