当前位置: 首页 > news >正文

延安市网站建设_网站建设公司_搜索功能_seo优化

门户网站开发方案,智能行业网站模板,apple网站设计,电子商务网站建设与管理课程的目的一、简介 RabbitMQ是一个消息的代理器#xff0c;用于接收和发送消息#xff0c;你可以这样想#xff0c;他就是一个邮局#xff0c;当您把需要寄送的邮件投递到邮筒之时#xff0c;你可以确定的是邮递员先生肯定会把邮件发送到需要接收邮件的人的手里#xff0c;不…一、简介      RabbitMQ是一个消息的代理器用于接收和发送消息你可以这样想他就是一个邮局当您把需要寄送的邮件投递到邮筒之时你可以确定的是邮递员先生肯定会把邮件发送到需要接收邮件的人的手里不会送错的。在这个比喻中RabbitMQ就是一个邮箱也可以理解为邮局和邮递员他们负责把消息发送出去和用于接收信息。   RabbitMQ和邮局这两者之间的主要区别是它不会处理纸质邮件取而代之的是接收、存储和发送二进制数据块也就是我们通常所说的消息。   RabbitMQ和消息中通常会使用一些专业术语。   生产生产意味着就是发送。 发送消息的程序是一个生产者。下图代表一个消息的生产真      frameborder0 scrollingno styleborder-width: initial; border-style: none; width: 71px; height: 51px;   队列这里的队列是指一个名称但是名称所代表的队列实体寄存在RabbitMQ服务器端中。 虽然消息流过RabbitMQ和您的应用程序但它们只能存储在队列中。 队列只受主机的内存和磁盘的限制它本质上是一个大的消息缓冲区。 许多生产者可以发送消息到一个队列许多消费者可以尝试从一个队列接收数据。 下图代表一个队列     frameborder0 scrollingno styleborder-width: initial; border-style: none; width: 130px; height: 91px;   消费消费具有与接收相似的含义。 消费者是一个主要等待接收消息的程序。下图代表消息的消费者      frameborder0 scrollingno styleborder-width: initial; border-style: none; width: 71px; height: 51px;二、(使用 Net/C# 客户端)   在这篇教程中我们将用C#写两个程序;一个是生产者用于发送一个简单消息一个是消费者用于接收消息和把他们打印出来。我们将忽略一些.NET API的详细信息专注于更简单的开始。这是一个关于Hello World简单的小例子。   在下图中, P是我们的消息生产者C是我们消息的消费者。在中间的红色矩形框代表一个队列也就是消息的缓冲区RabbitMQ代表是消息的消费者。 frameborder0 scrollingno styleborder-width: initial; border-style: none; width: 392px; height: 59px; Net客户端类库     RabbitMQ支持多种协议本教程使用AMQP 0-9-1这是一个针对消息的开放的、通用的协议。RabbitMQ使用了多种语言开发了针对不同环境的客户端。下面我们将使用由RabbitMQ提供的Net客户端。    这个客户端类库支持.NET Core以及.NET Framework 4.5.1 以上的版本。本教程将使用.NET Core以便确保您安装在您的路径中。    你也可以使用 Net Framework 来完成本实例只是安装步骤有些不同而已。    RabbitMQ的客户端类库已经部署到了NuGet上并且您可以通过NuGet下载和使用。    本教程假定您正在使用Windows PowerShell。三、安装   首先让我们确认您已经有了Net Core 的工具链在路径中 dotnet --help 应该生成一个帮助消息。   现在让我们生成两个项目一个是生产者的项目一个是消费者的项目 dotnet new console --name Send mv Send/Program.cs Send/Send.cs dotnet new console --name Receive mv Receive/Program.cs Receive/Receive.cs 这将生成两个目录一个目录是Send,另一个目录是Receive.   然后我们增加客户端的依赖 cd Send dotnet add package RabbitMQ.Client dotnet restore cd ../Receive dotnet add package RabbitMQ.Client dotnet restore 现在我们已经有了两个项目安装完毕可以开始写一些代码了。四、发送消息 frameborder0 scrollingno styleborder-width: initial; border-style: none; width: 216px; height: 100px; 我们会调用我们的消息发布者发送者send.cs和消息消费者接受者receive.cs。发送者链接到RabbitMQ并且发送一个单一消息然后退出。   在Send.cs文件中我们需要引入一些命名空间 using System;using RabbitMQ.Client;using System.Text; 设置类 class Send{          public static void Main(){...}} 然后我们创建一个连接连接到服务器 class Send{         public static void Main(){            var factory new ConnectionFactory() { HostName localhost };            using (var connection factory.CreateConnection()){                using (var channel connection.CreateModel()){...}}}} 当前connection连接是一个抽象的套接字连接为我们负责协议版本的协商和认证等。这里我们连接到本地机器上的消息代理--从此处的localhost关键字可以看出是本机。如果我们想连接到另一台机器上的一个消息代理我们只需在这里指定它的名称或IP地址。    接下来我们创建一个通道这个API的主要功能就是把获得信息保存起来    要发送我们必须声明一个队列然后我们把消息发送到这个队列里面 声明队列是一次性的只有当它不存在时才会被创建。消息内容是字节数组所以您可以编码任何您喜欢的内容。    当上面的代码完成运行时通道和连接将被释放。    发送不成功的解决办法    如果这是您第一次使用RabbitMQ发送消息但是你并没有看到“发送”的消息那么你可能会挠着头想知道错误在什么地方。也许消息代理开始没有足够的可用磁盘空间默认情况下它需要至少50 MB因此拒绝接受消息。必要时检查代理日志文件来确认和减少限制。配置文件的文档会告诉你如何设置disk_free_limit。五、接收消息     以上就是我们的消息生产者我们的消息的消费者是从RabbitMQ拉消息因此不能像我们的消息发布者那样发布单一消息我们需要保持我们的消费者程序持续运行并且监听消息如果有就获取并且打印出来。 frameborder0 scrollingno styleborder-width: initial; border-style: none; width: 216px; height: 100px; Receive.cs文件和Send.cs文件有一些很像的代码需要书写 using RabbitMQ.Client; using RabbitMQ.Client.Events; using System; using System.Text; 消息接收者的设置和消息的发布者一样我们要打开一个连接和一个通道并且声明一个从中获取消息的队列注意这个是和Send.cs文件中的发布者的队列相匹配的。 class Receive {           public static void Main(){                var factory new ConnectionFactory() { HostName localhost };               using (var connection factory.CreateConnection()){                   using (var channel connection.CreateModel()){channel.QueueDeclare(queue: hello,durable: false,exclusive: false,autoDelete: false,arguments: null);...}}}} 注意我们也在这里声明队列。因为我们可能在发行者之前启动消费者所以我们要确保队列在我们尝试从它中获取消息之前存在。    我们正要告诉服务器从队列中传递消息。因为它会异步推送我们的消息我们提供了一个回调。那是EventingBasicConsumer接收事件处理程序所做的。 六、把它放在一起    打开两个端点。    运行消费者         cd Receive       dotnet run    然后运行生产者       cd Send       dotnet Run    消费者将要打印消息生产者通过RabbitMQ发布的消息。消费者不能间断必须保持持续运行等待新消息的到来。当然也可以通过CtrlC 来停止消费者 好了终于写完了其实是我翻译的有翻译不对的地方请谅解。 原文地址http://www.cnblogs.com/PatrickLiu/p/6934745.html .NET社区新闻深度好文微信中搜索dotNET跨平台或扫描二维码关注
http://www.ihoyoo.com/news/57704.html

相关文章:

  • 潍坊网站排名漳州市网站建设费用
  • 网站建设捌金手指下拉三腾讯云ADM怎么做网站
  • 页面设计排版网站wordpress自动图片保存本地
  • 安装网站到服务器外国人做网站
  • 网站下载系统如何做系统企业自建网站劣势
  • logofree制作网站厦门最快seo
  • 网站建设与管理实践实践报告为什么不建议去代账公司
  • 徐州最好网站建设丹徒网站建设信息
  • 网站空间的参数检察网站建设请示
  • 2021免费正能量网站设计网站汇总
  • 国内优秀网站网页设计网站建设方案项目书
  • 什么是网站功能需求后端和前端哪个是青春饭
  • 重庆商城网站建设公司软件开发培训就业
  • 先进的网站建设做微信小程序哪个网站好
  • 景观做文本常用的网站广州建站模板
  • 泉州野外拓展网站建设网站开发代淘宝店铺装修
  • 中国旅游预订网站的建设始于哪一年苏州建网站的公司平台收费标准
  • 知名网站排名邯郸住房和城乡建设局网站
  • 曲靖做网站建设的公司wordpress与joomla
  • 域名服务商网站二级网站模板
  • 黄山新洲建设集团网站建设信用中国网站的目的
  • 招聘网站建设工作总结wordpress调用搜索功能
  • 做绿化生意有什么网站付费网站源码
  • 网站建设及优化心得体会宁波 网站建设
  • 青岛做网站价格上海阳性增多
  • 如何创建网站快捷方式到桌面phpcms 后台修改修改网站备案号
  • 搭建自己的网站青岛网站设计机构
  • 网站开发gif图太多耗资源吗网站设计到底做多宽
  • 丹徒区建设局网站青岛房产交易中心官网
  • 一个企业可以做几个网站唐山网站建设方案报价