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

网站制作 网站建设 杭州北川建设局网站

网站制作 网站建设 杭州,北川建设局网站,一 网站开发背景,wordpress套模板简介 主题模式允许发送者根据主题发布消息#xff0c;而订阅者可以订阅特定的主题。 在主题模式中#xff0c;生产者发送的消息被发送到一个交换机#xff08;Exchange#xff09;#xff0c;该交换机根据消息的路由键#xff08;Routing Key#xff09;和绑定#x…简介 主题模式允许发送者根据主题发布消息而订阅者可以订阅特定的主题。 在主题模式中生产者发送的消息被发送到一个交换机Exchange该交换机根据消息的路由键Routing Key和绑定Binding规则将消息路由到一个或多个队列。消费者随后从队列中接收并消费这些消息。以下是主题模式的一些关键要点 路由键的设计路由键是由点.分隔的字符串例如 stock.usd.nyse。这些字符串通常定义了消息的某些属性或分类。通配符的使用队列绑定时可以使用通配符 * 和 #。其中星号可以替代一个单词井号可以替代零个或多个单词。这增加了灵活性允许使用模糊匹配来定义哪个队列应该接收具有特定路由键的消息。消息的路由过程当消息到达交换机时交换机会查找所有绑定的队列检查它们的绑定键并确定哪些队列的绑定键与消息的路由键相匹配。匹配成功的队列会接收到消息。灵活性和复杂性与直接模式相比主题模式提供了更大的灵活性因为它允许基于多个标准进行路由。然而这种灵活性也带来了额外的复杂性因为需要正确设计路由键和绑定键以实现期望的路由行为。消息的丢失风险如果没有任何队列的绑定键与消息的路由键匹配那么消息将会丢失。因此正确配置交换机、队列的绑定以及路由键非常重要。 通配符 在主题模式中的通配符其实就像我们平时写的正则表达式比如在消费者中使用 stock.# 作为绑定键那么那么绑定键 stock.# 的消费者将匹配到所有以 stock 开头的路由键不论后面跟随什么单词。如stock.usd.nyse、stock.eur.frankfurt 还是 stock.jpy.tokyo只要是以 stock 开头的消息都会被该队列接收。 星号*星号可以代替路由键中的一个单词。例如如果有一个路由键为 stock.usd.nyse 的消息那么绑定键 stock.*.nyse 或 stock.usd.# 都可以匹配到这个消息。星号可以匹配零个或多个单词但不会跨越点.进行匹配。井号#井号可以代替路由键中的零个或多个单词且可以跨越点进行匹配。这意味着如果有一个路由键为 stock.usd.nyse 的消息那么绑定键 stock.# 将匹配到所有以 stock 开头的路由键不论后面跟随什么单词。 生产者 在之前的模式中我们使用的都是路由键RoutingKey而主题模式中的是绑定键 BindingKey。主题模式可以看作是一种特殊的路由模式它允许更复杂的路由策略通过使用通配符 * 和 # 来实现模糊匹配。从而实现处理更加复杂的消息路由需求。 RoutingKey 主要用于生产者发布消息时定义消息的路由路径而 BindingKey 用于定义交换机与队列之间的绑定关系。 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()){//声明了一个主题交换机topic命名为hellochannel.ExchangeDeclare(hello, topic);Console.WriteLine(生产者请输入绑定key);var bindingKey Console.ReadLine();string msg;Console.WriteLine(请输入要发送的消息内容);while (!string.IsNullOrEmpty(msg Console.ReadLine())){var body Encoding.UTF8.GetBytes(msg);channel.BasicPublish(hello, bindingKey, null, body); //开始传递Console.WriteLine(已发送 {0}, msg);}}}} } 消费者 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()){//声明了一个交换机channel.ExchangeDeclare(hello, topic);//声明一个新的队列并将这个队列的名称赋值给变量 queueNamevar queueName channel.QueueDeclare().QueueName;//从控制台获取一个绑定键Console.WriteLine(消费者请输入BindingKey);var bindingKey Console.ReadLine();channel.QueueBind(queueName, hello, bindingKey);//事件的基本消费者var consumer new EventingBasicConsumer(channel);consumer.Received (model, ea) {var body ea.Body.ToArray();var message Encoding.UTF8.GetString(body);Thread.Sleep(1000);Console.WriteLine(已接收 {0}, message);};channel.BasicConsume(queueName, true, consumer);Console.ReadKey();}}} } 演示 还是老样子我们将生产者和消费者都发布打包分别运行三次然后生产者分别发送一条消息如下图。 # 用于匹配多个单词。因此com.#三条消息都收到了。 * 用于匹配一个单词因为有两个生产者的第三个单词是2所以*.*.2的消费者收到了两条消息。 而只有一个生产者的第二个单词是B所以*.B.*的消费者只收到了一条消息
http://www.pierceye.com/news/926107/

相关文章:

  • 长沙哪里学网站建设德阳做网站的公司
  • 制作短链接网站做抽奖网站违法吗
  • 网站备案每年审吗做网站做推广
  • 网站名称 规则个人网页模板背景
  • 网站制作方案策划简历网站建设咨询有客诚信网站建设咨询
  • 格尔木市住房和城乡建设局网站能看全景的地图软件
  • 一站式网站建设与运营wordpress后台代码修改
  • 企业品牌类网站有哪些做网站建设的公司是什么类型
  • 自己制作的网站怎么做分页2022建站市场
  • 网贷审核网站怎么做wordpress 文章列表页
  • 搬家网站建设公司西安是哪个省市
  • php 网站 整合 数据库智能建站系统个人网站
  • 福田区罗湖区宝安区龙华区seo上首页排名
  • 网站建设业务员提成企业网站 需求
  • 做淘宝客网站 首选霍常亮国外网页设计
  • 天津小型企业网站设计方案网页升级访问每天自动更新 下载
  • 好的学习网站打广告壹搜网站建设优化排名
  • 响应式设计 手机网站手机自己制作app软件
  • 东方头条网站源码杭州正晖建设工程有限公司网站
  • 阿里巴巴网站建设与维护深圳民治网站建设
  • 郑州短视频代运营seo外链是什么
  • 网站建设公司 经营资质wordpress文学
  • 手机网站建设请示常州建设网站公司哪家好
  • 网站开发报价ppt重庆沙坪坝有哪些大学
  • 牛商网做的包装盒网站怎么在门户网站上发布
  • 北京网络公司建站成品app直播源码下载
  • 帮忙建站的公司百度收录好的网站排名
  • 芯火信息做网站怎么样郑州网站建设老牌公司
  • 龙华营销型网站建设在线生成短链接网址
  • 深圳做公司网站关键词规划师工具