安装

1.进入rabbitMQ官网下载安装包

2.点击安装包安装的时候会提示需要先装erlang

点击是会自动跳转到erlang的下载界面如果没有跳转可以直接点击这里下载,根据系统选择下载包

下载完之后双击exe安装包进行安装,一直下一步就行了(如果不想装在c盘那就改一下盘符)

3.装完了erlang,回去找到刚才第一步下载的rabbitMQ的安装包双击安装,一样的一直下一步就行了(中间遇到需要给它网络点确定就可以了)

4.以上步骤完成了rabbitMQ服务的安装,为了方便操作和管理下面我们安装可视化管理界面

4.1打开cmd界面进入rabbitMQ的安装目录下的sbin目录

  

4.2根据官网步骤执行命令rabbitmq-plugins enable rabbitmq_management

  

4.3安装成功找到安装目录找到rabbitmq-server.bat双击运行(如果有错就右键以管理员身份运行)出现如下界面

4.4打开浏览器访问http://localhost:15672/

4.5默认用户和密码都是guest直接登录看下结果


代码实现

1,创建demo生产者控制台项目

2,通过nuget安装RabbitMQ.Client

3,在主函数Main里面写生产者代码这里先生产5条消息只是简单的demo(特别提醒代码里的端口号是5672不是进入管理地址的15672)

string hostName = "192.168.50.176";
int port = ;//默认端口5672;前端界面的端口是15672特别注意不要混淆
string userName = "wyb";
string password = "";
string virtualHost = "/"; //创建一个连接工厂
var factory = new ConnectionFactory();
factory.UserName = userName;
factory.Password = password;
factory.HostName = hostName;
factory.Port = port;
factory.VirtualHost = virtualHost;
//创建一个连接,此时可以在rabbitmq后台Web管理页面中的Connections中看到一个连接生成
//一个连接可以创建多个通道
var connection = factory.CreateConnection(); string queueName = "q1";//队列名称 //创建一个通道
//此时可以在rabbitmq后台Web管理页面中的Channels中看到一个新通道生成
var channel = connection.CreateModel();
//给通道绑定一个队列,队列如果不存在,则会创建新队列,如果队列已存在,那么参数一定要正确,特别是arguments参数,否则会报错
var arguments = new Dictionary<string, object>() { { "x-queue-type", "classic" } };
channel.QueueDeclare(queue: queueName, durable: true, exclusive: false, autoDelete: false, arguments: arguments); //发布5条消息
for (var i = ; i < ; i++)
{
var buffer = Encoding.UTF8.GetBytes(i.ToString());
channel.BasicPublish("", queueName, null, buffer);
Console.WriteLine("发布消息:"+i);
}
channel.Close(); Console.ReadKey();

4,f5运行项目看到如下结果就表示成功

5,同生产者项目一样的步骤创建一下消费者控制台项目(一样nuget安装RabbitMQ.Client)

6,在消费者项目的main函数里写消费者的代码

string hostName = "192.168.50.176";
int port = ;//默认端口5672;前端界面的端口是15672特别注意不要混淆
string userName = "wyb";
string password = "";
string virtualHost = "/"; //创建一个连接工厂
var factory = new ConnectionFactory();
factory.UserName = userName;
factory.Password = password;
factory.HostName = hostName;
factory.Port = port;
factory.VirtualHost = virtualHost;
//创建一个连接,此时可以在rabbitmq后台Web管理页面中的Connections中看到一个连接生成
//一个连接可以创建多个通道
var connection = factory.CreateConnection(); string queue = "q1";//队列名称 //创建一个通道
//此时可以在rabbitmq后台Web管理页面中的Channels中看到一个新通道生成
var channel = connection.CreateModel();
//给通道绑定一个队列,队列如果不存在,则会创建新队列,如果队列已存在,那么参数一定要正确,特别是arguments参数,否则会报错
var arguments = new Dictionary<string, object>() { { "x-queue-type", "classic" } };
channel.QueueDeclare(queue: queue, durable: true, exclusive: false, autoDelete: false, arguments: arguments);
//channel.BasicQos(2, 2, false);//设置QOS //在通道中定义一个事件消费者
EventingBasicConsumer consumer = new EventingBasicConsumer(channel);
consumer.Received += (sender, e) =>
{
var body = e.Body.Span;
var message = Encoding.UTF8.GetString(body);
Console.WriteLine($"接收到消息:{message}"); Thread.Sleep();//暂停一下 //通知消息已被处理,如果没有,那么消息将会被重复消费
channel.BasicAck(e.DeliveryTag, false);
};
//ack设置成false,表示不自动提交,那么就需要在消息被消费后,手动调用BasicAck去提交消息
channel.BasicConsume(queue, false, consumer); Console.ReadKey();

7运行消费者项目结果如下

结束

简单操作到此,后面再介绍实际应用

netcore RabbitMQ入门--win10开发环境的更多相关文章

  1. JavaWeb零基础入门-02 开发环境安装

    大家好!我又来了,上一篇我们讲了一些基础概念:Html.Web服务器.数据库.Http和JavaWeb三大组件,它们是什么,有什么作用,都有了初步的了解.接下来我们进入学习JavaWeb的第一步,开发 ...

  2. Golang入门及开发环境配置

    Go语言诞生背景 计算机硬件更新频繁,主流编程语言无法发挥多核多CPU的性能 软件系统复杂度不断变高,缺乏简洁高效的编程语言 C/C++运行速度快,但编译速度慢 Go语言特点 静态类型开发语言 静态: ...

  3. PHP入门教程-开发环境搭建

    1.PHP简介: PHP是能让你生成动态网页的工具之一.PHP网页文件被当作一般HTML网页文件来处理并且在编辑时你可以用编辑HTML的常规方法编写PHP. 2.学习需要基础: a.HTML b.Ja ...

  4. Spring框架入门之开发环境搭建(MyEclipse2017平台)

    基于MyEclipse2017平台搭建Spring开发环境,这里MyEclipse已将Spring集成好了,我们只需要做一简单配置即可 一.环境配置 OS:Windows7 64位 IDE工具:MyE ...

  5. spring boot + vue + element-ui全栈开发入门——windows开发环境

     一.node.js开发环境 windows系统,去网站https://nodejs.org/en/download/,下载对应的安装程序,并安装Windows Installer (.msi) 接下 ...

  6. Golang 入门 : 打造开发环境

    工欲善其事,必先利其器!在学习和使用 Golang 时如果有一款得心应手的 IDE,相信一定可以事半功倍.虽然很多 IDE 都提供了对 Golang 的支持,但真正好用的没几个.VSCode 算是不错 ...

  7. springboot 入门2 开发环境与生产环境采用不同配置问题

    目开发中我们通常有两套配置信息  分别配置了我们的数据源信息等? 那么我们要如何不通过修改配置文件大量配置来实现简单的修改与配置来实现相关配置加载功能 首先springboot 有一个核心的配置文件a ...

  8. 1-ESP8266 SDK开发基础入门篇--开发环境搭建

    因为今天终于做好了自己的另一块工控板,所以我就开始写基础公开篇的内容,希望自己小小的努力能够帮到大家 自己做的另一块板子 https://www.cnblogs.com/yangfengwu/cate ...

  9. Angular入门,开发环境搭建,使用Angular CLI创建你的第一个Angular项目

    前言: 最近一直在使用阿里的NG-ZORRO(Angular组件库)开发公司后端的管理系统,写了一段时间的Angular以后发现对于我们.NET后端开发而言真是非常的友善.因此这篇文章主要是对这段时间 ...

随机推荐

  1. 入门大数据---Python基础

    前言 由于AI的发展,包括Python集成了很多计算库,所以淡入了人们的视野,成为一个极力追捧的语言. 首先概括下Python中文含义是蟒蛇,它是一个胶水语言和一个脚本语言,胶水的意思是能和多种语言集 ...

  2. volatile与lock前缀指令

    前言 我们知道volatile关键字的作用是保证变量在多线程之间的可见性,它是java.util.concurrent包的核心,没有volatile就没有这么多的并发类给我们使用. 本文详细解读一下v ...

  3. script写在head与写在body中的区别

    咱先说将Javascript写在head里面的情况吧,如果你要在这里面去操控DOM元素,是会报错的,因为浏览器是先执行head标签里面的内容,在执行时你的DOM元素还没有生成.(使用了windows. ...

  4. 如何获取自定义meta标签信息?

    <meta name="apple-itunes-app" content="app-id=432274380" /> 类似于这种meta信息,js ...

  5. Linux下Jmeter+nmon+nmon analyser实现性能监控及结果分析

    一.概述 前段时间讲述了Jmeter利用插件PerfMon Metrics Collector来监控压测过程中服务器资源的消耗,一个偶然机会,我发现nmon这个 工具挺不错,和Jmeter插件比起来, ...

  6. Java1.7的HashMap源码分析-面试必备技能

    HashMap是现在用的最多的map,HashMap的源码可以说是面试必备技能,今天我们试着分析一下jdk1.7下的源码. 先说结论:数组加链表 一.先看整体的数据结构 首先我们注意到数据是存放在一个 ...

  7. SpringMvc流程分析,简单源码分析

    SpringMvc的请求入口:web.xml中的DispatcherServlet <servlet> <servlet-name>springServlet</serv ...

  8. CSS position 属性_css中常用position定位属性介绍

    css可以通过为元素设置一个position属性值,从而达到将不同的元素显示在不同的位置, position定位是指定位置的定位,以下为常用的几种: 1.static(静态定位): 这个是元素的默认定 ...

  9. 一个howdoo的预兆

    原文链接:https://medium.com/howdoo/its-an-omen-for-howdoo-b33b831ed936 它是一个预兆.它是刻在墙上的.它不会消失 随着越来越多的人对Fac ...

  10. HashMap等集合初始化时应制定初始化大小

    阿里巴巴开发规范中,推荐用户在初始化HashMap时,应指定集合初始值大小. 一.原因 这个不用多想,肯定是效率问题,那为什么会造成效率问题呢? 当我们new一个HashMap没有对其容量进行初始化的 ...