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

自己的简历网站怎么做海宁最火高端网站设计推荐

自己的简历网站怎么做,海宁最火高端网站设计推荐,吉林市网站建设,平面设计软件photoshop目录 通配符模式 概述 应用场景 优势 代码案例 引入依赖 常量类 编写生产者代码 编写消费者1代码 编写消费者2代码 运行代码 通配符模式 概述 通配符模式是一种灵活的消息传递模式,可以根据消息的路由键(routing key)和绑定&…

目录

通配符模式

概述

应用场景

优势

代码案例

引入依赖

常量类

编写生产者代码

编写消费者1代码

编写消费者2代码

运行代码


通配符模式

概述

通配符模式是一种灵活的消息传递模式,可以根据消息的路由键(routing key)和绑定(binding)模式来实现精确的消息过滤和匹配。在RabbitMQ中,路由键由生产者定义,用于标识消息的目的地;而绑定则由消费者定义,用于指定消息的接收规则。

路由模式的升级版, 在routingKey的基础上,增加了通配符的功能, 使之更加灵活.

Topics和Routing的基本原理相同,即:⽣产者将消息发给交换机,交换机根据RoutingKey将消息转发给与RoutingKey匹配的队列. 类似于正则表达式的⽅式来定义Routingkey的模式.

不同之处是:routingKey的匹配⽅式不同,Routing模式是相等匹配,topics模式是通配符匹配.

应用场景

RabbitMQ的通配符模式在需要根据消息的特定属性进行路由和过滤的场景中非常有用。例如,在一个日志系统中,可以使用通配符模式来将不同级别的日志消息路由到不同的队列中,以便进行不同的处理和分析。

优势

通配符模式的优势在于它可以灵活地匹配消息,使得消息可以根据不同的条件进行过滤和选择。通过合理地定义绑定和路由键,可以实现复杂的消息过滤和路由策略,提高系统的灵活性和性能。 

代码案例
引入依赖
<!-- https://mvnrepository.com/artifact/com.rabbitmq/amqp-client -->
<dependency><groupId>com.rabbitmq</groupId><artifactId>amqp-client</artifactId><version>5.21.0</version>
</dependency>
常量类
public class Constants {public static final String HOST = "47.98.109.138";public static final int PORT = 5672;public static final String USER_NAME = "study";public static final String PASSWORD = "study";public static final String VIRTUAL_HOST = "aaa";//通配符模式public static final String TOPIC_EXCHANGE = "topic.exchange";public static final String TOPIC_QUEUE1 = "topic_queue1";public static final String TOPIC_QUEUE2 = "topic_queue2";
}
编写生产者代码
import com.rabbitmq.client.BuiltinExchangeType;
import com.rabbitmq.client.Channel;
import com.rabbitmq.client.Connection;
import com.rabbitmq.client.ConnectionFactory;
import rabbitmq.constant.Constants;import java.io.IOException;
import java.util.concurrent.TimeoutException;/*** 通配符模式生产者*/
public class Producer {public static void main(String[] args) throws IOException, TimeoutException {//1. 建立连接ConnectionFactory connectionFactory = new ConnectionFactory();connectionFactory.setHost(Constants.HOST);connectionFactory.setPort(Constants.PORT); //需要提前开放端口号connectionFactory.setUsername(Constants.USER_NAME);//账号connectionFactory.setPassword(Constants.PASSWORD);  //密码connectionFactory.setVirtualHost(Constants.VIRTUAL_HOST); //虚拟主机Connection connection = connectionFactory.newConnection();//2. 开启信道Channel channel = connection.createChannel();//3. 声明交换机channel.exchangeDeclare(Constants.TOPIC_EXCHANGE, BuiltinExchangeType.TOPIC, true);//4. 声明队列channel.queueDeclare(Constants.TOPIC_QUEUE1, true, false, false, null);channel.queueDeclare(Constants.TOPIC_QUEUE2, true, false, false, null);//5. 绑定交换机和队列channel.queueBind(Constants.TOPIC_QUEUE1, Constants.TOPIC_EXCHANGE, "*.a.*");channel.queueBind(Constants.TOPIC_QUEUE2, Constants.TOPIC_EXCHANGE, "*.*.b");channel.queueBind(Constants.TOPIC_QUEUE2, Constants.TOPIC_EXCHANGE, "c.#");//6. 发送消息String msg = "hello topic, my routingkey is ae.a.f....";channel.basicPublish(Constants.TOPIC_EXCHANGE,"ae.a.f", null, msg.getBytes());  //转发到Q1String msg_b = "hello topic, my routingkey is ef.a.b....";channel.basicPublish(Constants.TOPIC_EXCHANGE,"ef.a.b", null, msg_b.getBytes()); //转发到Q1和Q2String msg_c = "hello topic, my routingkey is c.ef.d....";channel.basicPublish(Constants.TOPIC_EXCHANGE,"c.ef.d", null, msg_c.getBytes());//转发Q2System.out.println("消息发送成功");//7. 释放资源channel.close();connection.close();}
}
编写消费者1代码
import com.rabbitmq.client.*;
import rabbitmq.constant.Constants;import java.io.IOException;
import java.util.concurrent.TimeoutException;public class Consumer1 {public static void main(String[] args) throws IOException, TimeoutException {//1. 建立连接ConnectionFactory connectionFactory = new ConnectionFactory();connectionFactory.setHost(Constants.HOST);connectionFactory.setPort(Constants.PORT); //需要提前开放端口号connectionFactory.setUsername(Constants.USER_NAME);//账号connectionFactory.setPassword(Constants.PASSWORD);  //密码connectionFactory.setVirtualHost(Constants.VIRTUAL_HOST); //虚拟主机Connection connection = connectionFactory.newConnection();//2. 开启信道Channel channel = connection.createChannel();//3. 声明队列channel.queueDeclare(Constants.TOPIC_QUEUE1,true,false,false,null);//4. 消费消息DefaultConsumer consumer = new DefaultConsumer(channel){//从队列中收到消息, 就会执行的方法@Overridepublic void handleDelivery(String consumerTag, Envelope envelope, AMQP.BasicProperties properties, byte[] body) throws IOException {System.out.println("接收到消息:"+ new String(body));}};channel.basicConsume(Constants.TOPIC_QUEUE1, true, consumer);}
}
编写消费者2代码
import com.rabbitmq.client.*;
import rabbitmq.constant.Constants;import java.io.IOException;
import java.util.concurrent.TimeoutException;public class Consumer2 {public static void main(String[] args) throws IOException, TimeoutException {//1. 建立连接ConnectionFactory connectionFactory = new ConnectionFactory();connectionFactory.setHost(Constants.HOST);connectionFactory.setPort(Constants.PORT); //需要提前开放端口号connectionFactory.setUsername(Constants.USER_NAME);//账号connectionFactory.setPassword(Constants.PASSWORD);  //密码connectionFactory.setVirtualHost(Constants.VIRTUAL_HOST); //虚拟主机Connection connection = connectionFactory.newConnection();//2. 开启信道Channel channel = connection.createChannel();//3. 声明队列channel.queueDeclare(Constants.TOPIC_QUEUE2,true,false,false,null);//4. 消费消息DefaultConsumer consumer = new DefaultConsumer(channel){//从队列中收到消息, 就会执行的方法@Overridepublic void handleDelivery(String consumerTag, Envelope envelope, AMQP.BasicProperties properties, byte[] body) throws IOException {System.out.println("接收到消息:"+ new String(body));}};channel.basicConsume(Constants.TOPIC_QUEUE2, true, consumer);}
}
运行代码

观察管理界面可以看到两个队列都各自收到了2条消息,与预期符合。

两个消费者都各自从两个不同的队列中取出并消费了2条消息,与预期符合。


文章转载自:

http://PzEoTWvd.qxLhj.cn
http://TCLoULU5.qxLhj.cn
http://Q1r4NYRR.qxLhj.cn
http://HjYz8KHE.qxLhj.cn
http://BQKcxoj4.qxLhj.cn
http://kEACB3cG.qxLhj.cn
http://sbULsQ7c.qxLhj.cn
http://pVZbnyjI.qxLhj.cn
http://IlCsnSeU.qxLhj.cn
http://r0Ye1Ui3.qxLhj.cn
http://Zk5uUM4X.qxLhj.cn
http://TUdZGjmy.qxLhj.cn
http://UhHOcACf.qxLhj.cn
http://29WNTxYz.qxLhj.cn
http://SAwO4E6S.qxLhj.cn
http://AAj4ciAg.qxLhj.cn
http://ijd9p25x.qxLhj.cn
http://SELV2iku.qxLhj.cn
http://y7gXVy6H.qxLhj.cn
http://ZIBPoxl9.qxLhj.cn
http://EdgXxewe.qxLhj.cn
http://FRNpjsxA.qxLhj.cn
http://vbUIIwA5.qxLhj.cn
http://lpTfFU0V.qxLhj.cn
http://sdUOz8MS.qxLhj.cn
http://MjBJO0rb.qxLhj.cn
http://2i2FKE9m.qxLhj.cn
http://DKEhJgU2.qxLhj.cn
http://dIKBUXqI.qxLhj.cn
http://N7jkoRCV.qxLhj.cn
http://www.dtcms.com/wzjs/685882.html

相关文章:

  • 做外贸一般在哪个网站宝塔做的网站网页打不开
  • 做蛋糕比较火的网站手机网站制作公司报价
  • 创新创意产品设计作品网站要素的优化设计
  • 金融软件网站建设公司wordpress 网膜
  • 网站关键词怎么优化排名大连模板网站制作哪家专业
  • 宁夏网站建设软件技术专科生的出路
  • 做一个商城网站交互网站开发培训
  • 品牌设计包括哪些方面seo外链是什么
  • 网站注册页面模板下载页面素材
  • 给帅哥做奴视频网站地址做网站的大骗子
  • 网站地图建设有什么用新乐市建设银行网站
  • 鞋帽网站欣赏上海网站建设上海迈歌
  • 基础网站怎么做看汽车图片的网站可以做壁纸
  • 网站备案类型有哪些番禺做网站公司哪家好
  • 郑州怎样建设公司网站做简历网站有什么
  • 免费建站软件有哪些龙岩网站建设企业
  • 免费模板网站知乎富阳网站建设服务
  • 网站设计公司的推广外贸网站seo怎么做
  • 江苏德丰建设集团网站天津综合网站建设商店
  • 东营企业自助建站做网站的实践报告
  • 高校网站群建设方案成都文化墙设计公司
  • 乐山网站营销推广哪家公司好无水印做海报的网站
  • 地方门户网站的特点如何建立小程序网站
  • 网站建设厦门同安北京宣传片制作公司
  • 怎么做公司网站的手机客户端网站建设頰算
  • 漂亮的博客网站模板南宁seo推广
  • 一般网站建设中的推广费用阜新本地网站建设平台
  • 自己建网站怎么推广南通专业做网站公司
  • 自适应网站推广做家装施工的网站
  • 厦门无忧网站建设有限公司辽宁建设厅规划设计网站