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

网站备案信息代码永年网站制作

网站备案信息代码,永年网站制作,平面设计软件ps,如何从下载的视频查到原网站简介 发布订阅模式允许一个生产者向多个消费者发送消息。在RabbitMQ中实现发布订阅模式通常涉及以下几个关键组件#xff1a; 生产者#xff1a;负责生产并发送消息到RabbitMQ的Exchange#xff08;路由器#xff09;。Exchange#xff1a;作为消息的中转站#xff0c;…简介 发布订阅模式允许一个生产者向多个消费者发送消息。在RabbitMQ中实现发布订阅模式通常涉及以下几个关键组件 生产者负责生产并发送消息到RabbitMQ的Exchange路由器。Exchange作为消息的中转站根据不同的规则将消息路由到一个或多个队列。队列存储消息的缓冲区每个消费者有自己的独立队列。消费者从自己的队列中接收并消费消息。 在这种模式下生产者发送的消息不是直接发送到特定的队列而是发送给Exchange。Exchange根据配置的规则决定如何处理这些消息。例如它可以将消息路由到一个特定的队列也可以将消息路由到多个队列或者在某些情况下废弃消息。 在实际应用中发布订阅模式常用于构建实时通信系统、通知服务、日志系统等场景其中多个消费者需要接收来自同一生产者的消息。这种模式的优势在于能够实现一对多的通信使得消息的分发更加灵活和高效。 生产者代码 在前面的模式中我们使用了channel.QueueDeclare()来声明队列。这里不需要了 channel.QueueDeclare(hello, true, false, false, null); 在发布订阅模式中生产者只需要将消息发送到交换机上然后由交换机根据绑定规则将消息路由到一个或多个队列中。消费者则可以从自己的队列中获取并处理这些消息。 因此我们这里只声明一个扇形交换机并将消息发布到该交换机上即可。而具体的队列声明和绑定操作可以在消费者端进行。 在前面的第一章和第二章中我们都没有声明交换机这是因为RabbitMQ中有一个默认的交换机称为空字符串名称的默认交换机。当生产者发送消息但没有指定交换机时消息会被发送到这个默认交换机。同样当创建队列但没有指定队列与交换机的绑定关系时队列会自动绑定到默认交换机上。RabbitMQ提供了几种内置的交换机类型如直接交换direct、扇形交换fanout、主题交换topic和头交换headers等以满足不同的业务场景需求。 class MyClass {public static void Main(string[] args){var factory new ConnectionFactory();factory.HostName localhost; //RabbitMQ服务在本地运行factory.UserName guest; //用户名factory.Password guest; //密码//创建连接using (var connection factory.CreateConnection()){//创建通道using (var channel connection.CreateModel()){//声明了一个扇形交换机fanout exchange命名为hellochannel.ExchangeDeclare(hello, fanout);string msg;Console.WriteLine(请输入要发送的消息内容);while (!string.IsNullOrEmpty(msg Console.ReadLine())){var body Encoding.UTF8.GetBytes(msg);channel.BasicPublish(hello, , null, body); //开始传递Console.WriteLine(已发送 {0}, msg);}}}} } 消费者代码 我们通过channel.QueueDeclare().QueueName;声明一个新的队列如果这个方法声明队列RabbitMQ会自动为你生成一个独一无二的队列名称 var queueName channel.QueueDeclare().QueueName; channel.QueueBind(queueName, hello, ); 然后将队列的名称赋值给变量queueName。将该队列绑定到之前声明的扇形交换机hello上使用空字符串作为路由键。每次运行这个项目时都会创建一个新的队列并将其绑定到交换机上。这样多个消费者可以同时连接到同一个交换机并从不同的队列中接收消息。 class MyClass {static void Main(string[] args){//创建连接工厂var factory new ConnectionFactory();factory.HostName localhost;factory.UserName guest;factory.Password guest;//创建连接using (var connection factory.CreateConnection()){//创建通道using (var channel connection.CreateModel()){//声明了一个扇形交换机fanout exchange命名为hellochannel.ExchangeDeclare(hello, fanout);//声明一个新的队列并将这个队列的名称赋值给变量 queueNamevar queueName channel.QueueDeclare().QueueName;channel.QueueBind(queueName, hello, );//事件的基本消费者var consumer new EventingBasicConsumer(channel);consumer.Received (model, ea) {var body ea.Body.ToArray();var message Encoding.UTF8.GetString(body);Console.WriteLine(已接收 {0}, message);};channel.BasicConsume(queueName, true, consumer);Console.ReadKey();}}} } 代码演示 和我前面文章的步骤一样将消费者先进行发布打包双击.exe文件运行多次项目。 我们前面提到的使用channel.QueueDeclare().QueueName;声明一个新的队列在RabbitMQ管理界面可以看到有三个自动生成名称的队列。 然后我们启动生产者并随机发送几条消息 再回到消费者我们运行的三个消费端都同时的收到了消息
http://www.hkea.cn/news/14305432/

相关文章:

  • 金泉网站建设开发制作网页系统
  • 那个网站报道过鸟巢建设南宁企业网站建设制作
  • 旅游网站建设分析kol合作推广
  • 怎么制作外贸网站模板海外服务器怎么搭建
  • 服装网站公司网站企业设计图片
  • ip段访问网站代码wordpress minty 2.6
  • 免费直播网站哪个网站可以接加工单
  • 搭建一个网站教程python自动写wordpress
  • 运用虚拟机建设网站网站建设技术交流
  • 网站设置怎么删除网站建设技术路线
  • 有哪些做h5的网站合肥网络公司排行榜
  • 山东装饰公司网站建设公司网站建设尾款如何做会计分录
  • 设计网站建设wordpress建站指南
  • 宜兴做网站的公司王野天津卫视
  • 网络推广和网站推广的关系国内永久免费crm系统app
  • 做淘客网站需要营业执照吗wordpress用户认证
  • 淄博企业网站设计公司怎么自己做代刷网站
  • php 网站开发框架互联网裁员
  • 海门做网站创建网站的基本步骤
  • 陕西省建设执业注册中心网站网站建设公众号小程序属于什么
  • 网站建设在哪个软件下做珠海网站建设公司哪个好
  • 企业网站的设计策划网站的推广平台有哪些
  • 网站网页制作及优化购书网亚马逊商城
  • 如何设计制作网站dede网站站内推广方法
  • 开发网站现实网络传输失败雷锋书签制作图片
  • 观澜做网站公司可以进网站的软件
  • 智慧团建信息系统网站登录免费毕业设计网站建设
  • 网站被k后换域名 做301之外_之前发的外链怎么办西安专业网站建设
  • 电子商务网站建设不足通联支付网络服务股份有限公司
  • 哪里有学做ppt的网站app购物网站建设