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

做虚拟网站要花多少钱wordpress文章分类显示

做虚拟网站要花多少钱,wordpress文章分类显示,久久信息网,国际教育机构网站建设开发方案简介 RabbitMQ中的路由模式是一种根据Routing Key有条件地将消息筛选后发送给消费者的模式。在路由模式中,生产者向交换机发送消息时,会指定一个Routing Key。交换机接收生产者的消息后,根据消息的Routing Key将其路由到与Routing Key完全匹…

简介

RabbitMQ中的路由模式是一种根据Routing Key有条件地将消息筛选后发送给消费者的模式。在路由模式中,生产者向交换机发送消息时,会指定一个Routing Key。交换机接收生产者的消息后,根据消息的Routing Key将其路由到与Routing Key完全匹配的队列。消费者只从其绑定的队列中接收消息,因此只接收筛选后的消息。

路由模式的一些特征与优点:

  1. Direct交换机:在路由模式下,使用的交换机类型是Direct交换机。这种类型的交换机会根据消息的路由键来决定将消息投递到哪些队列。
  2. 路由键(RoutingKey):生产者发送消息时需要指定一个路由键。这个路由键是一个字符串,用于指示消息应该被发送到哪个队列。消费者在创建队列和绑定到交换机时也会指定一个路由键。
  3. 精确匹配:Direct交换机会将消息精确地发送到指定路由键的队列。这意味着只有当队列的路由键完全匹配消息的路由键时,消息才会被投递到该队列。
  4. 解耦:路由模式允许生产者和消费者之间的解耦,生产者不需要知道具体的队列名称,只需要知道路由键即可。这使得系统更加灵活,容易扩展和维护。
  5. 动态绑定:在实际应用中,可以根据需要动态地创建队列并绑定到交换机,而不需要重启或修改已有的生产者代码。
  6. 负载均衡:如果多个队列绑定了相同的路由键,Direct交换机会使用轮询(round-robin)的方式将消息均匀地分发到这些队列中,这可以用于实现负载均衡。
  7. 优先级支持:在路由模式中,还可以为队列设置不同的优先级,以便处理不同重要性的消息。

生产者代码

我们使用channel.ExchangeDeclare("hello", "direct")声明一个(Direct)直连交换机,然后在控制台输入一个路由键,存到变量routingKey中,最后通过代码

channel.BasicPublish("hello", routingKey, null, body);

使用BasicPublish方法将消息发布到名为"hello"的交换机,和routingKey队列中

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()){//声明了一个直接交换机(direct),命名为"hello"channel.ExchangeDeclare("hello", "direct");Console.WriteLine("生产者:请输入路由key");var routingKey = Console.ReadLine();string msg;Console.WriteLine("请输入要发送的消息内容:");while (!string.IsNullOrEmpty(msg = Console.ReadLine())){var body = Encoding.UTF8.GetBytes(msg);channel.BasicPublish("hello", routingKey, null, body); //开始传递Console.WriteLine("已发送: {0}", msg);}}}}
}

消费者代码

在消费者代码中,我们如法炮制,在控制台输入一个路由键,存储在变量routingKey中。通过下面代码

var queueName = channel.QueueDeclare().QueueName;

声明一个新的队列,并将这个队列的名称赋值给变量queueName,然后通过下面代码

channel.QueueBind(queueName, "hello", routingKey);

将队列绑定到名为"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()){//声明了一个交换机channel.ExchangeDeclare("hello", "direct");//声明一个新的队列,并将这个队列的名称赋值给变量 queueNamevar queueName = channel.QueueDeclare().QueueName;//从控制台获取一个路由keyConsole.WriteLine("消费者:请输入路由key");var routingKey = Console.ReadLine();channel.QueueBind(queueName, "hello", routingKey);//事件的基本消费者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();}}}
}

代码演示

像第一章一样,我们将生产者,消费者都分别打包发布。然后我们运行三次消费者代码,分别输入三个不同的路由键,如key1、key2、key3。然后运行两次生产者代码,分别输入key1、key2为路由键。我们在生产者发送消息时,只会发送给我们指定好与之对应相同路由键的消费者。

http://www.yayakq.cn/news/332385/

相关文章:

  • 企业网站建设费怎么核算门户网站建设检察
  • 中国建设部网站关于资质多个标签的网站模板
  • 营销网站建设平台中国铁建统一企业门户网站
  • 企业网站的技术维护内容主要包括网页制作基础教程步骤
  • 银川网站网站建设网站设计策划书3000字
  • 企业网站设计优化公司wordpress微信注册
  • 赤峰网站建设培训网页设计师多少钱一个月
  • 中铁集团招聘2022招聘信息北京seo优化厂家
  • 水稻网站做go分析网站设计服务要不要交文化事业建设费
  • 简单的静态 新闻 asp 网站源码四川城乡住房城乡建设厅网站
  • 网站等保如何做消费者联盟网站怎么做
  • 在哪能学到网站建设专业如何重装电脑的wordpress
  • 古风自己做头像的网站定西市城乡建设局网站
  • 做购物网站能赚钱吗免费网站制作软件的app
  • 做外贸推广自己网站单页网站程序
  • 网站建设有什么价值天津专业网站策划公司
  • 深圳网站设计公司排名苏州新区城乡建设网站
  • 大同网站开发微信 怎么上传 wordpress
  • h5网站页面设计旅游网站建设公司排名
  • 哪家做网站做得好手机可以设计网站吗
  • 什么是网站建设的重点sem优化软件选哪家
  • 余姚网站建设公司网站备案有什么风险
  • 域名和网站不是一家怎么办糖果网站是李笑来做的吗
  • 西安 做网站 499个人网站网页首页
  • 怎么用phpcmf做网站做网站的毕业答辩ppt实例
  • 如何申请一个网站空间搜索推广和场景推广
  • 做装修公司的网站刚做的网站怎么才能搜索到
  • 商务网站建设试题家居用品东莞网站建设
  • 好的培训网站模板在线手机网站建设
  • 网站怎么制作成软件seo公司赚钱吗