RabbitMQ 学习初步(一)

        //刚刚接触,如有不对还望不吝指正
        public static void StartUp()
        {
            #region 前期准备工作

            ConnectionFactory factory = new ConnectionFactory();
            factory.Uri = "amqp://guest:[email protected]:5672/";
            //架起物理链路
            IConnection conn = factory.CreateConnection();
            //创建通信信道
            IModel channel = conn.CreateModel();

            string exchangename = "我是负责转发信号的路由1";
            string queuename = "我是信号的接收器1";
            //架设信号路由
            channel.ExchangeDeclare(exchangename, ExchangeType.Direct);
            //架设信号接收器
            channel.QueueDeclare(queuename, false, false, false, null);
            //连通信号路由器和接收器
            channel.QueueBind(queuename, exchangename, "", null);

            #endregion

            byte[] messageBodyBytes = System.Text.Encoding.UTF8.GetBytes("Hello, world!");
            //channel.BasicPublish(exchangename,"",null,messageBodyBytes);
            IBasicProperties props = channel.CreateBasicProperties();
            props.ContentType = "text/plain";
            props.DeliveryMode = 2;
            channel.BasicPublish(exchangename,"",props,messageBodyBytes);

            ConnectionFactory service = new ConnectionFactory();

            using (conn = service.CreateConnection())
            {
                using (IModel servicechannle = conn.CreateModel())
                {
                    //ch.QueueDeclare(queuename, false, false, false, null);
                    //服务端接收消息队列
                    bool noAck = false;
                    BasicGetResult result = servicechannle.BasicGet(queuename, noAck);
                    if (result == null)
                    {
                        Console.WriteLine("没有消息");
                    }
                    else
                    {
                        servicechannle.BasicAck(result.DeliveryTag, false);
                        Console.WriteLine("接收消息成功:" + result.BasicProperties.ContentType);
                        Console.WriteLine("接收消息成功:" + result.BasicProperties.DeliveryMode);
                        Console.WriteLine("接收消息成功:" + System.Text.Encoding.Default.GetString(result.Body));
                    }
                }
            }

            conn.AutoClose = true;
        }
时间: 2024-08-25 09:17:27

RabbitMQ 学习初步(一)的相关文章

RabbitMQ学习及实践2---介绍及简单Java实现

一,基本概念 MQ是消费-生产者模型的一个典型的代表,一端往消息队列中不断写入消息,而另一端则可以读取或者订阅队列中的消息.MQ和JMS类似,但不同的是JMS是SUN JAVA消息中间件服务的一个标准和API定义,而MQ则是遵循了AMQP协议的具体实现和产品. RabbitMQ是一个在AMQP基础上完整的,可复用的企业消息系统.他遵循Mozilla Public License开源协议. RabbitMQ是流行的开源消息队列系统,用erlang语言开发.RabbitMQ是AMQP(高级消息队列协

RabbitMQ学习及实践3--SpringMVC实现

根据学习的RabbitMQ知识配了一个SpringMVC的实现.这是一个完整的工程,view的部分使用freeMarker,持久化操作是通过mybatis实现. 整个工程的目录结构如下: src下的相关包的解释: controller:控制器: domain:对应数据库的操作对象类: persistence:mybatis的持久化操作: util:相关工具类: msg.bean:消息类,定义及描述消息体: msg.convert:实现如何转化消息体为可接受的消息类: msg.process:处理

rabbitmq 学习-9- RpcClient发送消息和同步接收消息原理

rabbitmq 学习-9- RpcClient发送消息和同步接收消息原理

RabbitMQ学习系列(四): 几种Exchange 模式

上一篇,讲了RabbitMQ的具体用法,可以看看这篇文章:RabbitMQ学习系列(三): C# 如何使用 RabbitMQ.今天说些理论的东西,Exchange 的几种模式. AMQP协议中的核心思想就是生产者和消费者隔离,生产者从不直接将消息发送给队列.生产者通常不知道是否一个消息会被发送到队列中,只是将消息发送到一个交换机.先由Exchange来接收,然后Exchange按照特定的策略转发到Queue进行存储.同理,消费者也是如此.Exchange 就类似于一个交换机,转发各个消息分发到相

RabbitMQ学习之:(六)Direct Exchange (转贴+我的评论)

From: http://lostechies.com/derekgreer/2012/04/02/rabbitmq-for-windows-direct-exchanges/ RabbitMQ for Windows: Direct Exchanges Posted by Derek Greer on April 2, 2012 This is the fifth installment to the series: RabbitMQ for Windows.  In thelast inst

RabbitMQ学习笔记五:RabbitMQ之优先级消息队列

RabbitMQ优先级队列注意点: 1.只有当消费者不足,不能及时进行消费的情况下,优先级队列才会生效 2.RabbitMQ3.5以后才支持优先级队列 代码在博客:RabbitMQ学习笔记三:Java实现RabbitMQ之与Spring集成 最后面有下载地址,只是做了少许改变,改变的代码如下: 消费者 spring-config.xml(还需要增加一个QueueListener监听器,代码就不复制到这里了,可以参考项目中的其他监听器) <!-- =========================

RabbitMQ学习系列(三): C# 如何使用 RabbitMQ

上一篇已经讲了Rabbitmq如何在Windows平台安装,还不了解如何安装的朋友,请看我前面几篇文章:RabbitMQ学习系列一:windows下安装RabbitMQ服务 , 今天就来聊聊 C# 实际开发的过程中,怎么调用 用RabbitMQ. 一.客户端 RabbitMQ 有很多客户端API,都非常的好用.我们在一边,一直用的都是 EasyNetQ,所以这里的 demo 只介绍 EasyNetQ 客户端实现.其他的客户端,大家自己去研究吧. EasyNetQ 是一个易于使用的RabbitMQ

Object C学习初步

最近乘着项目不太紧张的时候,赶紧给自己冲了一下电.其实我自己最熟悉的平台应该是.net,所以当初上手windows phone的话是很快,我记得当初是一边跟着项目进展,一边自己开始学习前台的XAML语言以及页面的布局,所以一个项目跟下来的话windows phone平台也就差不多了. 早先就有过学习ios的想法,应该iphone实在是太酷了,感觉开发ios比windows phone更加有成就感.但是前前后后一直在往后推迟,因为ios的同事们一直给我灌输的思想就是oc语言还有挺难学的,相比较c#

MySQL数据库学习初步

我使用的环境是Win7,开始学习PHP和MySQL,并且买了本<Head First PHP & MySQL>,可以从Head First Labs官网获得HeadFirst系列书籍的相关信息和源代码. 1.下载XAMPP开发包 从XAMPP中文官网下载目前比较流行的PHP开发包,XAMPP是完全免费且易于安装的Apache发行版,其中包含MySQL.PHP和Perl.XAMPP适用于Windows.Mac OS X和Linux,XAMPP开放源码包的设置让安装和使用出奇容易.我下载的