C#操作RabbitMQ的完整实例
作者:YSWALLE 发布时间:2022-05-05 19:41:05
标签:C#,RabbitMQ
一、下载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.测试代码:
using System;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
namespace Wenli.Data.RabbitMQ.Console
{
using Console = System.Console;
class Program
{
static void Main(string[] args)
{
Console.Title = "Wenli.Data.RabbitMQ.Console";
Console.WriteLine("正连接到mq");
try
{
Test();
}
catch (Exception ex)
{
Console.WriteLine("err:" + ex.Message + ex.Source + ex.StackTrace);
}
Console.Read();
}
static void Test()
{
var topic = "testtopic";
var cnn = RabbitMQBuilder.Get(MQConfig.Default).GetConnection();
var operation = cnn.GetOperation(topic);
Console.WriteLine("正连接到订阅【" + topic + "】");
operation.Subscribe();
Console.WriteLine("正在入队");
Task.Factory.StartNew(() =>
{
while (true)
{
operation.Enqueue(Encoding.UTF8.GetBytes(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + " hello!"));
Thread.Sleep(1);
}
});
Console.WriteLine("正在出队");
Task.Factory.StartNew(() =>
{
while (true)
{
var result = operation.Dnqueue();
if (result == null)
{
Thread.Sleep(1);
}
else
{
Console.WriteLine(Encoding.UTF8.GetString(result));
}
}
});
Console.ReadLine();
Console.WriteLine("正在取消订阅");
operation.UnSubscribe();
Console.WriteLine("测试完成");
}
}
}
5.运行结果:
至此C# 成功操作Rabbitmq完成。
来源:http://www.cnblogs.com/yswenli/archive/2017/08/29/7446919.html


猜你喜欢
- 大家在进行Android项目开发的时候经常会遇到中文输入和英文输入切换的情况,本篇内容教给大家实现Android下自动识别中英文键盘的功能。
- 以在搜索框搜索时,自动补全为例:其中还涉及到一个词,Tokenizer:分词器,分解器。上效果图:MainActivity.java:pac
- 简介SpringBoot提供了HATEOAS的便捷使用方式,本文详细讲解SpringBoot提供的这些基本方法。链接LinksHATEOAS
- 在开发Web办公系统或文档系统时,PageOffice组件是众所周知的在线处理微软word/ppt/excel文档的强大工具,它对WORD文
- 布局文件中的TextView属性<TextViewandroid:id="@+id/businesscardsingle_c
- 1.AndroidManinifest.xml中加入权限<uses-permission android:name="and
- 本文实例为大家分享了C#实现简单文本编辑器的具体代码,供大家参考,具体内容如下建立一个窗体文件,实现对文件的编辑保存和对txt文件的打开界面
- 递归算法设计的基本思想是:对于一个复杂的问题,把原问题分解为若干个相对简单类同的子问题,继续下去直到子问题简单到能够直接求解,也就是说到了递
- FeignClient设置动态Url1. 需求描述一般情况下,微服务内部调用都是通过注册中心,eureka,zookeeper,nacos等
- 我们都知道,Android上的界面展示都是通过Activity实现的,Activity实在是太常用了,我相信大家都已经非常熟悉了,这里就不再
- 1.使用API设置主题如下所示,在Activity中使用setThemesetTheme(R.style.MyTheme1);2.调用API
- 在我们平时的工作中,查询列表在我们的系统中基本随处可见,那么我们如何使用jpa进行多条件查询以及查询列表分页呢?下面我将介绍两种多条件查询方
- 界面中控件较多的话,每个控件都设置setOnClickListener(this)是很麻烦的,为此抽出了一个Context的扩展类:fun
- 背景项目中经常会用到消息推送功能,关于推送技术的实现,我们通常会联想到轮询、comet长连接技术,虽然这些技术能够实现,但是需要反复连接,对
- 使用IDEA编辑Web项目已经逐渐超过了使用eclipse的人数,但是IDEA对于pom.xml的执行也就是Maven方式导包支持并不是很完
- 一、构造方法概述构造方法是一种特殊的方法作用:创建对象Student stu = new Student();格式:pucli class
- 本文实例讲述了C#堆排序实现方法。分享给大家供大家参考。具体如下:private static void Adjust (int[] lis
- 在nginx.conf文件的http模块新增以下内容gzip &nbs
- 现在很多的网站都提供有用户注册功能, 通常我们注册成功之后就会收到一封来自注册网站的邮件。邮件里面的内容可能包含了我们的注册的用户名和密码以
- 一开始,学了 * 与过滤器,咋一看两者有点像,实际上两者有很大的不同。就用 * 和过滤器分别做了登录验证试验,这次先说 * 。下面是自己实践