设为首页 加入收藏

TOP

RabbitMq应用一(二)
2017-10-13 10:40:35 】 浏览:1160
Tags:RabbitMq 应用
nnel.BasicPublish(
"", "firstQueue", null, body); Console.Write("成功发送第-----"+i+"-----条消息!"); } Console.ReadKey(); } } } }

上述是消费者控制台代码,我下面那个循环时测试的10W条数据,不断的发送和另一个控制台不断的获取消息,测试下来还不错性能。。。这个例子发送的消息比较简单,直接转成二进制就可以了,但是如果我们

用到对象的话,就要先反序列化,再转成二进制。

 /// <summary>
    /// 消息消费者读取消息队列
    /// </summary>
    class Program
    {
        static void Main(string[] args)
        {
            var factory = new ConnectionFactory();
            factory.HostName = "127.0.0.1";
            factory.UserName = "feiyang";
            factory.Password = "123456";
            using (var connection  = factory.CreateConnection())
            {
                using (var channel = connection.CreateModel())
                {
                    //还是连接到哪个队列
                    channel.QueueDeclare("firstQueue",false,false,false,null);
                    //定义消息接受者
                    var customer = new QueueingBasicConsumer(channel);
                    //从指定队列获取消息
                    channel.BasicConsume("firstQueue",true,customer);
                    //开始不断循环出队列的消息
                    while (true)
                    {
                        var ea = (BasicDeliverEventArgs)customer.Queue.Dequeue();
                        //将消息二进制转回字符串
                        var msg = Encoding.UTF8.GetString(ea.Body);
                        Console.WriteLine(msg);
                    }
                    //sw.Stop();
                    //Console.WriteLine("共用时" + sw.ElapsedTicks + "毫秒");
                    //Console.ReadKey();
                }
            }
        }
    }

这个是消费者端。。下面我们运行一下。

附加一句,当队列中有数据的话,用rabbitmqctl list_queues,可以列出所有队列名称,和队列中的消息数量

运行的消息生产者客户端后,往队列firstQueue中发送了10W条消息,我们再运行消费者端。

可见,队列firstQueue中的消息正在不断取出,而且速度很快。

这些是一些RabbitMq的一些基本使用,后面会陆续增加深入的学习心得。

首页 上一页 1 2 下一页 尾页 2/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Java 程序优化 (读书笔记) 下一篇【58沈剑架构系列】一分钟了解负..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目