.Net Core中使用RabbitMQ
(1)、引入依赖
RabbitMQ.Client
(2)、编写发布者代码
var connectionFactory = new ConnectionFactory() { HostName="192.168.205.128",UserName="guest",Password="guest"}; //创建连接工厂
var connection = connectionFactory.CreateConnection(); //创建connection
var channel = connection.CreateModel(); //创建channel
//声明交换机
//String exchange, 交换机名称
//String type, 交换机类型
//Boolean durable, 是否持久化
//Boolean autoDelete, 是否自动删除
//IDictionary< String, Object > arguments 交换机参数
channel.ExchangeDeclare("netExchange", ExchangeType.Direct, true, false, null);
//声明队列
//String queue, 队列名称
//Boolean durable, 是否持久化
//Boolean exclusive, 是否专有的(排外)
//Boolean autoDelete, 是否自动删除
//IDictionary<String, Object> arguments 队列参数
channel.QueueDeclare("netQueue", true, false, false, null);
//将队列绑定到交换机上
//String queue, 队列名称
//String exchange, 交换机名称
//String routingKey, routingKey
//IDictionary< String, Object > arguments 绑定参数
channel.QueueBind("netQueue", "netExchange", "netMessage", null);
//发布消息
//String exchange, 交换机名称
//String routingKey, routingKey
//IBasicProperties basicProperties, 发布属性
//Byte[] body 消息内容
channel.BasicPublish("netExchange", "netMessage", null, Encoding.UTF8.GetBytes("来自.net的问候"));
Console.ReadKey();
(3)、编写消费者代码
var connectionFactory = new ConnectionFactory() { HostName = "192.168.205.128", UserName = "guest", Password = "guest" }; //创建连接工厂
var connection = connectionFactory.CreateConnection(); //创建connection
var channel = connection.CreateModel(); //创建channel
//声明交换机
//String exchange, 交换机名称
//String type, 交换机类型
//Boolean durable, 是否持久化
//Boolean autoDelete, 是否自动删除
//IDictionary< String, Object > arguments 交换机参数
channel.ExchangeDeclare("netExchange", ExchangeType.Direct, true, false, null);
//声明队列
//String queue, 队列名称
//Boolean durable, 是否持久化
//Boolean exclusive, 是否专有的(排外)
//Boolean autoDelete, 是否自动删除
//IDictionary<String, Object> arguments 队列参数
channel.QueueDeclare("netQueue", true, false, false, null);
//将队列绑定到交换机上
//String queue, 队列名称
//String exchange, 交换机名称
//String routingKey, routingKey
//IDictionary< String, Object > arguments 绑定参数
channel.QueueBind("netQueue", "netExchange", "netMessage", null);
//1.直接获取消息
//var result = channel.BasicGet("netQueue", true);
//Console.WriteLine(Encoding.UTF8.GetString(result.Body));
//2.使用事件机制获取消息
EventingBasicConsumer consumer = new EventingBasicConsumer(channel);
consumer.Received += (sender, e) =>
{
Console.WriteLine(Encoding.UTF8.GetString(e.Body));
};
channel.BasicConsume("netQueue", true, consumer);
Console.ReadKey();
.Net Core中使用RabbitMQ的更多相关文章
- .NET Core中使用RabbitMQ正确方式
.NET Core中使用RabbitMQ正确方式 首先甩官网:http://www.rabbitmq.com/ 然后是.NET Client链接:http://www.rabbitmq.com/dot ...
- 在ABP core中使用RabbitMq
距上一篇博客的更新一集很久了,主要是最近做的事情比较杂,中间也有一个难点,就是在ABP中加入APP扫码登录,本来想些的,但是觉得这个写出来会不会让我们的系统被破解-_-||,所以想了想,就没有写. 这 ...
- WSL2+Docker部署RabbitMQ以及在Asp.net core 中使用RabbitMQ示例(1)
本文主要在于最近因疫情不能外出,在家研究的一些技术积累. 主要用到的技术以及知识点: WSL 2 WSL 2+Docker Docker+RabbitMQ 在ASP.NET Core中使用Rabbit ...
- 学习在.NET Core中使用RabbitMQ进行消息传递之持久化(二)
前言 上一节我们简单介绍了RabbitMQ和在安装后启动所出现的问题,本节我们开始正式进入RabbitMQ的学习,对于基本概念请从官网或者其他前辈博客上查阅,我这里不介绍基础性东西,只会简单提一下,请 ...
- DotNet Core中使用RabbitMQ
上一篇随笔记录到RabbitMQ的安装,安装完成,我们就开始使用吧. RabbitMQ简介 AMQP,即Advanced Message Queuing Protocol,高级消息队列协议,是应用层协 ...
- ExpandoObject与DynamicObject的使用 RabbitMQ与.net core(一)安装 RabbitMQ与.net core(二)Producer与Exchange ASP.NET Core 2.1 : 十五.图解路由(2.1 or earler) .NET Core中的一个接口多种实现的依赖注入与动态选择看这篇就够了
ExpandoObject与DynamicObject的使用 using ImpromptuInterface; using System; using System.Dynamic; names ...
- .NET Core 中的通用主机和后台服务
简介 我们在做项目的时候, 往往要处理一些后台的任务. 一般是两种, 一种是不停的运行,比如消息队列的消费者.另一种是定时任务. 在.NET Framework + Windows环境里, 我们一般会 ...
- NET Core中基于Generic Host来实现后台任务
NET Core中基于Generic Host来实现后台任务 https://www.cnblogs.com/catcher1994/p/9961228.html 目录 前言 什么是Generic H ...
- Spring Boot中使用RabbitMQ
很久没有写Spring Boot的内容了,正好最近在写Spring Cloud Bus的内容,因为内容会有一些相关性,所以先补一篇关于AMQP的整合. Message Broker与AMQP简介 Me ...
随机推荐
- 棋盘问题 POJ - 1321
题意: 在一个给定形状的棋盘(形状可能是不规则的)上面摆放棋子,棋子没有区别.要求摆放时任意的两个棋子不能放在棋盘中的同一行或者同一列,请编程求解对于给定形状和大小的棋盘,摆放k个棋子的所有可行的摆放 ...
- Codeforces Round #426 (Div. 2) A,B,C
A. The Useless Toy 题目链接:http://codeforces.com/contest/834/problem/A 思路: 水题 实现代码: #include<bits/st ...
- BUPT2017 wintertraining(15) #2 题解
这场有点难,QAQ.补了好久(。• ︿•̀。) ,总算能写题解了(つд⊂) A. Beautiful numbers CodeForces - 55D 题意 求\([l,r](1\le l_i\l ...
- [BZOJ5248] 2018九省联考 D1T1 一双木棋 | 博弈论 状压DP
题面 菲菲和牛牛在一块\(n\)行\(m\)列的棋盘上下棋,菲菲执黑棋先手,牛牛执白棋后手. 棋局开始时,棋盘上没有任何棋子,两人轮流在格子上落子,直到填满棋盘时结束. 落子的规则是:一个格子可以落子 ...
- 一种BCD码转换的算法
#include "stdio.h" typedef unsigned char uint8_t; typedef unsigned short uint16_t; typedef ...
- 洛谷P2680 运输计划
大概就是二分+树上差分... 题意:给你树上m条路径,你要把一条边权变为0,使最长的路径最短. 最大的最小,看出二分(事实上我并没有看出来...) 然后二分k,对于所有大于k的边,树上差分求出最长公共 ...
- js中if()条件中变量为false的情况
<html> <head> <script type="text/javascript" src="jquery-3.1.1.min.js& ...
- 在Vue中如何使用axios跨域访问数据(转)
最近在项目中需要用到axios,所以就恶补一下这个axios到底是什么东东.越来它是vue-resource的替代品,官网也说了,以后都用axios, vue-resource不在维护.那么这个axi ...
- (reverse)Palindromes hdu2163
Palindromes 链接:http://acm.hdu.edu.cn/showproblem.php?pid=2163 (此题是为了对于JAVA温故知新的) Problem Description ...
- python 正则括号的使用及踩坑
直接先上结论: 若匹配规则里有1个括号------返回的是括号所匹配到的结果, 若匹配规则里有多个括号------返回多个括号分别匹配到的结果, 若匹配规则里没有括号------就返回整条语句所匹配到 ...