RabbitMQ代码第一步
Hello RabbitMQ
终于到了使用.Net连接RabbitMQ的时候了,我们首先新建一个控制台应用程序,在程序包管理控制器中NuGet中下载 RabbitMQ。
Install-Package RabbitMQ.Client
安装完成后,就可以着手做一个RabbitMQ的消息发布程序了。首先 using RabbitMQ.Client;
从工厂中拿到实例, 这里的User不建议使用guest,因为guest被设置了回环,也就是仅在本地可以被登陆,在其它的机器在浏览器中是无法使用guest账户登陆的,当然在config中可以去设置,但是这是没有好处的
//从工厂中拿到实例 本地host、用户admin
var factory = new ConnectionFactory()
{
UserName = "admin",
Password = "admin",
HostName = "localhost"
};
有的朋友会说,我没有账户怎么办? 可以用到上一篇博文说的ctl去创建一个用户
rabbitmqctl add_user admin admin
然后为admin用户设置vhost的权限
rabbitmqctl set_permissions admin '.*' '.*' '.*'
回到代码中,这时候新建一个连接,因为在连接被使用完后需要释放,所以我们可以使用using包裹起来
//创建连接
using (var connection = factory.CreateConnection())
有了连接这时候就可以创建一个channl(频道)了
//创建返回一个新的频道
using (var channel = connection.CreateModel())
下一步是需要指定一个交换机的,但是RabbitMQ有一个默认的交换机,为了方便所以这一步忽略
声明一个队列,然后发布一条消息,这时候可以把项目运行起来了
//声明队列
channel.QueueDeclare("firstTest", true, false, false, null);
//发布消息
var msg = Encoding.UTF8.GetBytes("Hello RabbitMQ");
channel.BasicPublish(string.Empty, routingKey: "firstTest", basicProperties: null, body: msg);
在Web管理工具中就可以看到我们新加的队列 firstTest,而且有一条消息
这时候可以写一个consumer(消费者)客户端去读取队列中的消息
consumer的客户端不需要发布和创建队列,也就是除了声明队列和发布消息其它都是一致的。所以我们从返回一个新的频道开始写起
BasicGet方法返回类型是BasicGetResult,里面有一些基本信息,例如队列中有多少消息、当前交换机类型、当然还有我们最重要的消息 Body
//获取消息
var result = channel.BasicGet("firstTest", true);
var msg = Encoding.UTF8.GetString(result.Body);
//打印消息
Console.WriteLine(msg);
RabbitMQ代码第一步的更多相关文章
- 零代码第一步,做个添加数据的服务先。node.js + mysql
node.js + mysql 实现数据添加的功能.万事基于服务! 增删改查之添加数据. 优点:只需要设置一个json文件,就可以实现基本的添加功能,可以视为是零代码. 添加数据的服务实现的功能: 1 ...
- PySpark初级教程——第一步大数据分析(附代码实现)
概述 数据正以前所未有的速度与日俱增 如何存储.处理和使用这些数据来进行机器学习?spark正可以应对这些问题 了解Spark是什么,它是如何工作的,以及涉及的不同组件是什么 简介 我们正在以前所未有 ...
- Mirantis MCP 1.0:OpenStack 和 Kubernetes 整合的第一步
1.前言 Mirantis 公司在2014年9月14日宣布收购 TCPCloud,然后宣布在2017年第一季度会推出全新的私有云产品.从那时候开始,我就一直满怀期待.终于,今年4月19日,Mirant ...
- 开发thinkphp的第一步就是给Application目录(不包括其下的文件)777权限, 关闭selinux
开发thinkphp的时候, 总是会出现各种个样 的奇怪的毛病, 比如: 说什么Application目录不可写, 比如: 说什么 _STORAGE_WRITE_ERROR, 不能生成 Runtime ...
- Scala的第一步
第一步:学习使用Scala解释器 开始Scala最简单的方法是使用Scala解释器,它是一个编写Scala表达式和程序的交互式“shell”.在使用Scala之前需要安装Scala,可以参考 Firs ...
- 重制AdvanceWars第一步 -- 搞定地图
首先来聊下高级战争吧Advance Wars,由任天堂旗下的Intelligent Systems开发的战棋游戏.初作诞生于GBA上,后来继续跟进了高战2黑洞崛,而后在下一代掌机DS上也出了三代续作高 ...
- 005.TCP--拼接TCP头部IP头部,实现TCP三次握手的第一步(Linux,原始套接字)
一.目的: 自己拼接IP头,TCP头,计算效验和,将生成的报文用原始套接字发送出去. 若使用tcpdump能监听有对方服务器的包回应,则证明TCP报文是正确的! 二.数据结构: TCP首部结构图: s ...
- Theano2.1.2-基础知识之第一步:代数
来自:http://deeplearning.net/software/theano/tutorial/adding.html Baby Steps - Algebra 一.两个标量相加 在学习the ...
- 仿造slither.io第一步:先画条蛇
前言 最近 slither.io 貌似特别火,中午的时候,同事们都在玩,包括我自己也是玩的不亦乐乎. 好久好久没折腾过canvas相关的我也是觉得是时候再折腾一番啦,所以就试着仿造一下吧.楼主也没写过 ...
随机推荐
- EF分页中的陷阱
(一) 前言 EF使用非常简单,但是如果使用不当就会误入EF陷阱中. ...
- WordPress使用固定链接
WordPress安装后我们会发现,文章默认的url是很丑的,http://example.com/?p=N,其中N是文章ID,一串数字.默认链接在所有的环境下都运转良好,但和其他的类型比起来却没那么 ...
- js前端的各种面试题
转载:http://bbs.blueidea.com/thread-3107428-1-1.html 1.截取字符串abcdefg的efg //alert('abcdefg'.substring(4) ...
- Predicting purchase behavior from social media-www2013
1.Information publication:www2013 author:Yongzheng Zhang 2.What 用社交媒体用户特征 预测用户购买商品类别(排序问题) 3.Dataset ...
- IIS——发布网站
当我们要上线一个网站时,不要把整个项目原封不动的发布到服务器,而要经过右键发布后,然后再将发布的文件路径配置到IIS~ 详细信息见链接:http://www.52ij.com/jishu/aspx/1 ...
- SSH框架 sequence diagram
- C++的异常处理之一:throw是个一无是处的东西
看这篇文章学习C++异常处理的基础知识.看完后,还不过瘾,为什么大家在C++代码中都不用Exception?为什么C++11会引入一些变化? 为什么C++ exception handling需要un ...
- 使用while循环输入 1 2 3 4 5 6 8 9 10
n = 1 while n<11: if n==7: pass else: print(n) n = n +1
- Notes on 'Efficient Graph-Based Image Segmentation'
Notes on Efficient Graph-Based Image Segmentation 算法的目标 按照一种确定的标准, 将图片分割成细粒度的语义区域, 即Super pixel. 算法步 ...
- 素数筛 poj 3518
给你一个n 求包括n的一个非素数区间有多长 +1输出 #include<stdio.h> #include<string.h> #include<algorithm> ...