rabrabbitmq消息队列列消息体有长度限制吗

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
您的访问请求被拒绝 403 Forbidden - ITeye技术社区
您的访问请求被拒绝
亲爱的会员,您的IP地址所在网段被ITeye拒绝服务,这可能是以下两种情况导致:
一、您所在的网段内有网络爬虫大量抓取ITeye网页,为保证其他人流畅的访问ITeye,该网段被ITeye拒绝
二、您通过某个代理服务器访问ITeye网站,该代理服务器被网络爬虫利用,大量抓取ITeye网页
请您点击按钮解除封锁&一、文档资料
& & & &1、官方网站:
& & & &2、安装教程:
二、安装指南
& & & 1、下载并按照OTP(必须在安装RabbitMQ Server前安装):& & & & & & 32位:OTP 17.5 Windows 32-bit Binary File (91.0 MB)
& & & & & & 64位:OTP 17.5 Windows 64-bit Binary File (91.1 MB)
& & & 2、下载并安装RabbitMQ Server:
& & & & & & 选择windows平台,直接从官方链接下载,同时也可以从github上下载,安装完成后,服务自动启动(services.msc)& & & 3、下载并安装.Net客户端:& & & & & & &
& & & & & & & (选择的是.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.B
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安装目录) &
& & & & & &&
& & & & 3、启动后,直接在浏览器地址输入:& &账号密码都是:guest& &&
六、异常问题
1、None of the specified endpoints were reachable
& & & 生产端和消费端的factory参数要统一
  var factory = new ConnectionFactory();
  factory.UserName = QueueSetttiong.UserN
//用户名,对应Management工具的admin--&user
  factory.Password = QueueSetttiong.P
//密码,对应Management工具的admin--&密码
  factory.HostName = QueueSetttiong.HostN
//本地部署服务直接用hostname即可
  factory.Port = AmqpTcpEndpoint.UseDefaultP
  factory.VirtualHost = QueueSetttiong.VirtualH
//使用默认值: "/"
  factory.Protocol = Protocols.DefaultP
阅读(...) 评论()5006人阅读
RabbitMQ(12)
队列持久化
在之前的例子中,我们所用的队列都是临时队列,当服务重启后之前创建的队列就都没有了。
队列的持久化是在定义队列时的第二个参数决定的(false为队列不用持久化)
& & &如果持久化标志设置为true,则代表是一个持久的队列,那么在服务重启后,也会存在。因为服务会把持久化的queue存放在硬盘上,当服务重启的时候,会重新申明之前被持久化的queue。队列是可以被持久化,但是里面的消息是否为持久化那还要看消息的持久化设置。也就是说,如果重启之前那个queue里面还有没有发出去的消息的话,重启之后那队列里面是不是还存在原来的消息,这个就要取决于发送者在发送消息时对消息的设置了。
消息持久化
如果要在重启后保持消息的持久化必须设置消息是持久化的标志
接收端(跟之前代码一样)
测试结果:
运行程序后,队列存在,重启RabbitMQ Server后队列依然存在
消息持久化的测试方法:
把消费者中确认接收消息的代码注释掉(前边提到过该操作),启动发送消息程序,重启RabbitMQ Server后消息依然可以接收到
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:173101次
积分:3108
积分:3108
排名:第8137名
原创:124篇
转载:134篇
评论:10条
☆新浪微博:@昵称总是冲突 ☆QQ:
★敏捷事件大看板
(3)(15)(2)(7)(3)(1)(6)(1)(1)(7)(5)(3)(5)(9)(63)(3)(3)(11)(7)(6)(11)(20)(12)(5)(9)(28)(14)一、什么是Trace
& & & &Trace是Rabbitmq用于记录每一次发送的消息,方便使用Rabbitmq的开发者调试、排错。可通过插件形式
提供可视化界面
二、Trace实现概况
& & & &1、Trace启动后会自动创建系统Exchange:amq.rabbitmq.trace
& & & &2、每个队列会自动绑定该Exchange,绑定后发送到队列的消息都会记录到Trace日志
三、怎样使用Trace
& & & &1、先了解Rabbitmq的使用及Web监控工具的使用:
& & & &2、启动Trace插件& & & & & & &a) 列出本机已安装的插件:rabbitmq-plugins list(请先定位到Rabbitmq服务安装目录)& & & & & & &b) 启动Trace插件:rabbitmqctl trace_on & (关闭Trace:rabbitmqctl trace_off)
& & & &3、查看捕获到的Trace信息
& & & & & & &a) Management插件--&Admin--&Trace
& & & & & & &b) 新增Trace,格式分别是Text(方便人类阅读)、Json(方便机器识别)
& & & & & & &c) 发送消息,查看Trace拦截的信息
& & & & & & & d) 查看日志信息 (单击日志文件打开,这里是MyTrace.log)
& & & 1、Rabbitmq的资料比较少,建议大家还是多看官方文档& & & 2、Trace主要通过插件方式提供
& & &&3、Trace日志文件地址:C:\var\tmp\rabbitmq-tracing\MyTrace.log
四、参考资料:
阅读(...) 评论()

我要回帖

更多关于 mq 消息队列 使用场景 的文章

 

随机推荐