惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

D
DataBreaches.Net
SecWiki News
SecWiki News
博客园_首页
人人都是产品经理
人人都是产品经理
博客园 - 聂微东
P
Palo Alto Networks Blog
V
Vulnerabilities – Threatpost
Project Zero
Project Zero
WordPress大学
WordPress大学
NISL@THU
NISL@THU
酷 壳 – CoolShell
酷 壳 – CoolShell
P
Privacy & Cybersecurity Law Blog
Jina AI
Jina AI
AWS News Blog
AWS News Blog
Scott Helme
Scott Helme
Martin Fowler
Martin Fowler
C
Cybersecurity and Infrastructure Security Agency CISA
Forbes - Security
Forbes - Security
H
Heimdal Security Blog
小众软件
小众软件
I
Intezer
A
Arctic Wolf
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
O
OpenAI News
S
Security Affairs
阮一峰的网络日志
阮一峰的网络日志
Latest news
Latest news
G
GRAHAM CLULEY
Blog — PlanetScale
Blog — PlanetScale
J
Java Code Geeks
N
News and Events Feed by Topic
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
V2EX - 技术
V2EX - 技术
Stack Overflow Blog
Stack Overflow Blog
www.infosecurity-magazine.com
www.infosecurity-magazine.com
L
LINUX DO - 最新话题
博客园 - Franky
P
Proofpoint News Feed
aimingoo的专栏
aimingoo的专栏
博客园 - 司徒正美
P
Proofpoint News Feed
S
Secure Thoughts
Google DeepMind News
Google DeepMind News
Microsoft Security Blog
Microsoft Security Blog
T
The Exploit Database - CXSecurity.com
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
C
CXSECURITY Database RSS Feed - CXSecurity.com
F
Full Disclosure
Security Latest
Security Latest

博客园 - yi

Fiddler的配置 轻松实现SQL Server与Access、Excel数据表间的导入导出 Sql server性能优化白皮书 索引的优化脚本 查找当前的登录用户 usp_who5脚本,查找当前的进程 linq to sql的性能和reader相比只是差一点点吗 锁与索引 一个数据访问层的小工具 转:对XML插入操作 - yi - 博客园 查看当前的连接和锁 对数据的分页再一次思考 关注商业价值 应用程序优化 关于异常处理的一点看法 骂的人多了,也成了真理 样式小记 - yi - 博客园 重命名你的数据库 不浪费自己的时间,同时也不浪费别人的时间 - yi - 博客园
Rabbitmq的使用及Web监控工具使用
yi · 2018-05-01 · via 博客园 - yi

本文转载自:https://www.cnblogs.com/gossip/p/4475978.html

windows安装手册请参考:http://www.rabbitmq.com/install-windows-manual.html

一、文档资料

二、安装指南

            64位:OTP 17.5 Windows 64-bit Binary File (91.1 MB)

              (选择的是.net 4.0版本,同时也可以通过nuget下载

三、命令行工具

      1、定位到rabbitmq安装目录:

          windows 7   cd C:\Program Files (x86)\RabbitMQ Server\rabbitmq_server-3.5.1\sbin

          Widows Serve  cd /d C:\Program Files (x86)\RabbitMQ Server\rabbitmq_server-3.5.1\sbin

      2、执行rabbitmq命令行工具(rabbitmqctl ):

         rabbitmqctl -q status       //打印了一些rabbitmq服务状态信息,包括内存,硬盘,和使用erlong的版本信息

         rabbitmqctl list_queues     //查看所有队列消息

四、C#客户端使用

         1、服务端代码

       

复制代码

namespace Server
{
    class Program
    {
        static void Main(string[] args)
        {
            var factory = new ConnectionFactory() { HostName = "localhost" };
            using (var connection = factory.CreateConnection())
            {
                using (var channel = connection.CreateModel())
                {
                    //定义队列(hello为队列名)
                    channel.QueueDeclare("hello", false, false, false, null);
 
                    var consumer = new QueueingBasicConsumer(channel);
                    channel.BasicConsume("hello", true, consumer);
 
                    Console.WriteLine(" [*] Waiting for messages." +
                                             "To exit press CTRL+C");
                    while (true)
                    {
                        //接受客户端发送的消息并打印出来
                        var ea = (BasicDeliverEventArgs)consumer.Queue.Dequeue();
 
                        var body = ea.Body;
                        var message = Encoding.UTF8.GetString(body);
                        Console.WriteLine(" [x] Received {0}", message);
                    }
                }
            }
        }
    }
}

复制代码

          2、客户端代码

复制代码

namespace Client
{
    class Program
    {
        static void Main(string[] args)
        {
            var factory = new ConnectionFactory() { HostName = "localhost" };
            using (var connection = factory.CreateConnection())
            {
                using (var channel = connection.CreateModel())
                {
                    //定义队列(hello为队列名)
                    channel.QueueDeclare("hello", false, false, false, null);
                    //发送到队列的消息,包含时间戳
                    string message = "Hello World!" + "_" + DateTime.Now.ToString();
                    var body = Encoding.UTF8.GetBytes(message);
                    channel.BasicPublish("", "hello", null, body);
                    Console.WriteLine(" [x] Sent {0}", message);
                }
            }
        }
    }
} 

复制代码

如果启动服务端前启动了客户端,消息就会存放到队列中,da

五、RabbitMQ GUID使用

       1、官方提供的一个web管理工具(rabbitmq_management)

       2、安装了Rabbitmq后,默认也安装了该管理工具,执行命令即可启动

            rabbitmq-plugins enable rabbitmq_management(先定位到rabbitmq安装目录)  

            

六、异常问题

1、None of the specified endpoints were reachable

      生产端和消费端的factory参数要统一

  var factory = new ConnectionFactory();
  factory.UserName = QueueSetttiong.UserName; //用户名,对应Management工具的admin-->user
  factory.Password = QueueSetttiong.Password; //密码,对应Management工具的admin-->密码
  factory.HostName = QueueSetttiong.HostName; //本地部署服务直接用hostname即可
  factory.Port = AmqpTcpEndpoint.UseDefaultPort;
  factory.VirtualHost = QueueSetttiong.VirtualHost; //使用默认值: "/"
  factory.Protocol = Protocols.DefaultProtocol;