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

阿里云智能建站千锋教育和黑马哪个好

阿里云智能建站,千锋教育和黑马哪个好,网页布局的设计原则,网站界面设计和ios移动界面设计的区别官方文档参考#xff1a;https://www.rabbitmq.com/tutorials/tutorial-four-python.html 使用direct类型的Exchange,发N条消息并使用不同的routingKey,消费者定义队列并将队列routingKey、Exchange绑定。此时使用direct模式Exchange必须要routingKey完成匹配的情况下消息才…官方文档参考https://www.rabbitmq.com/tutorials/tutorial-four-python.html 使用direct类型的Exchange,发N条消息并使用不同的routingKey,消费者定义队列并将队列routingKey、Exchange绑定。此时使用direct模式Exchange必须要routingKey完成匹配的情况下消息才会转发到对应的队列中被消费。 样例使用日志分发为样例。即按日志不同的级别分发到不同的队列。每个队列只处理自己的对应的级别日志。 创建生产者 import com.rabbitmq.client.BuiltinExchangeType; import com.rabbitmq.client.Channel; import com.rabbitmq.client.Connection; import com.rabbitmq.client.ConnectionFactory;import java.nio.charset.StandardCharsets; import java.util.concurrent.ThreadLocalRandom;public class Product {private static final String[] LOG_LEVEL {ERROR, WARN, INFO};public static void main(String[] args) throws Exception {ConnectionFactory factory new ConnectionFactory();factory.setUri(amqp://root:123456node1:5672/%2f);Connection connection factory.newConnection();Channel channel connection.createChannel();// 声明交换机交换器和消息队列的绑定不需要在这里处理。channel.exchangeDeclare(ex.routing,BuiltinExchangeType.DIRECT,// 持久的标识false,// 自动删除的标识false,// 属性null);for (int i 0; i 30; i) {String level LOG_LEVEL[ThreadLocalRandom.current().nextInt(0, LOG_LEVEL.length)];String dataMsg [ level ] 消息发送 : i;// 发送消息channel.basicPublish(ex.routing, level, null, dataMsg.getBytes(StandardCharsets.UTF_8));}} }创建ERROR的消费者 import com.rabbitmq.client.BuiltinExchangeType; import com.rabbitmq.client.Channel; import com.rabbitmq.client.Connection; import com.rabbitmq.client.ConnectionFactory;import java.nio.charset.StandardCharsets;public class ErrorConsumer {public static void main(String[] args) throws Exception {ConnectionFactory factory new ConnectionFactory();factory.setUri(amqp://root:123456node1:5672/%2f);Connection connection factory.newConnection();Channel channel connection.createChannel();// 声明队列并绑定channel.exchangeDeclare(ex.routing,BuiltinExchangeType.DIRECT,// 持久的标识false,// 自动删除的标识false,// 属性null);// 此也可以声明为临时队列但是如果消息很重要不要声明临时队列。channel.queueDeclare(log.error,// 永久false,// 排他false,// 自动删除true,// 属性null);//消费者享有绑定到交换器的权力。channel.queueBind(log.error, ex.routing, ERROR);// 通过chanel消费消息channel.basicConsume(log.error,(consumerTag, message) - {System.out.println(ERROR收到的消息: new String(message.getBody(), StandardCharsets.UTF_8));},consumerTag - {});} }创建INFO级的消费者 import com.rabbitmq.client.BuiltinExchangeType; import com.rabbitmq.client.Channel; import com.rabbitmq.client.Connection; import com.rabbitmq.client.ConnectionFactory; import java.nio.charset.StandardCharsets;public class InfoConsumer {public static void main(String[] args) throws Exception {ConnectionFactory factory new ConnectionFactory();factory.setUri(amqp://root:123456node1:5672/%2f);Connection connection factory.newConnection();Channel channel connection.createChannel();// 声明队列并绑定channel.exchangeDeclare(ex.routing,BuiltinExchangeType.DIRECT,// 持久的标识false,// 自动删除的标识true,// 属性null);// 此也可以声明为临时队列但是如果消息很重要不要声明临时队列。channel.queueDeclare(log.info,// 永久false,// 排他false,// 自动删除false,// 属性null);//消费者享有绑定到交换器的权力。channel.queueBind(log.info, ex.routing, INFO);// 通过chanel消费消息channel.basicConsume(log.info,(consumerTag, message) - {System.out.println(INFO收到的消息: new String(message.getBody(), StandardCharsets.UTF_8));},consumerTag - {});} }创建WARN级别的消息者 import com.rabbitmq.client.BuiltinExchangeType; import com.rabbitmq.client.Channel; import com.rabbitmq.client.Connection; import com.rabbitmq.client.ConnectionFactory; import java.nio.charset.StandardCharsets;public class WarnConsumer {public static void main(String[] args) throws Exception {ConnectionFactory factory new ConnectionFactory();factory.setUri(amqp://root:123456node1:5672/%2f);Connection connection factory.newConnection();Channel channel connection.createChannel();// 声明队列并绑定channel.exchangeDeclare(ex.routing,BuiltinExchangeType.DIRECT,// 持久的标识false,// 自动删除的标识false,// 属性null);// 此也可以声明为临时队列但是如果消息很重要不要声明临时队列。channel.queueDeclare(log.warn,// 永久false,// 排他false,// 自动删除true,// 属性null);//消费者享有绑定到交换器的权力。channel.queueBind(log.warn, ex.routing, WARN);// 通过chanel消费消息channel.basicConsume(log.warn,(consumerTag, message) - {System.out.println(warn收到的消息: new String(message.getBody(), StandardCharsets.UTF_8));},consumerTag - {});} }首先启动三个消费者 查看队列及交换机情况 [rootnullnull-os ~]# rabbitmqctl list_exchanges --formatter pretty_table Listing exchanges for vhost / ... ┌────────────────────┬─────────┐ │ name │ type │ ├────────────────────┼─────────┤ │ amq.fanout │ fanout │ ├────────────────────┼─────────┤ │ amq.rabbitmq.trace │ topic │ ├────────────────────┼─────────┤ │ amq.headers │ headers │ ├────────────────────┼─────────┤ │ amq.topic │ topic │ ├────────────────────┼─────────┤ │ amq.direct │ direct │ ├────────────────────┼─────────┤ │ │ direct │ ├────────────────────┼─────────┤ │ ex.routing │ direct │ ├────────────────────┼─────────┤ │ amq.match │ headers │ └────────────────────┴─────────┘ [rootnullnull-os ~]# rabbitmqctl list_bindings --formatter pretty_table Listing bindings for vhost /... ┌─────────────┬─────────────┬──────────────────┬──────────────────┬─────────────┬───────────┐ │ source_name │ source_kind │ destination_name │ destination_kind │ routing_key │ arguments │ ├─────────────┼─────────────┼──────────────────┼──────────────────┼─────────────┼───────────┤ │ │ exchange │ log.info │ queue │ log.info │ │ ├─────────────┼─────────────┼──────────────────┼──────────────────┼─────────────┼───────────┤ │ │ exchange │ log.warn │ queue │ log.warn │ │ ├─────────────┼─────────────┼──────────────────┼──────────────────┼─────────────┼───────────┤ │ │ exchange │ log.error │ queue │ log.error │ │ ├─────────────┼─────────────┼──────────────────┼──────────────────┼─────────────┼───────────┤ │ ex.routing │ exchange │ log.error │ queue │ ERROR │ │ ├─────────────┼─────────────┼──────────────────┼──────────────────┼─────────────┼───────────┤ │ ex.routing │ exchange │ log.info │ queue │ INFO │ │ ├─────────────┼─────────────┼──────────────────┼──────────────────┼─────────────┼───────────┤ │ ex.routing │ exchange │ log.warn │ queue │ WARN │ │ └─────────────┴─────────────┴──────────────────┴──────────────────┴─────────────┴───────────┘ [rootnullnull-os ~]# 可以发现交换器ex.routing 绑定了三个队列log.error、log.info 、log.warn并指定了路由键。 启动消费者查看消息通否被正常消费。 ERROR的消费者控制台输出 ERROR收到的消息:[ERROR] 消息发送 :1 ERROR收到的消息:[ERROR] 消息发送 :2 ERROR收到的消息:[ERROR] 消息发送 :6 ERROR收到的消息:[ERROR] 消息发送 :8 ERROR收到的消息:[ERROR] 消息发送 :9 ERROR收到的消息:[ERROR] 消息发送 :11 ERROR收到的消息:[ERROR] 消息发送 :15 ERROR收到的消息:[ERROR] 消息发送 :16 ERROR收到的消息:[ERROR] 消息发送 :19 ERROR收到的消息:[ERROR] 消息发送 :20 ERROR收到的消息:[ERROR] 消息发送 :21 ERROR收到的消息:[ERROR] 消息发送 :23 ERROR收到的消息:[ERROR] 消息发送 :24 ERROR收到的消息:[ERROR] 消息发送 :27 ERROR收到的消息:[ERROR] 消息发送 :28INFO的消费者控制台输出 INFO收到的消息:[INFO] 消息发送 :0 INFO收到的消息:[INFO] 消息发送 :3 INFO收到的消息:[INFO] 消息发送 :4 INFO收到的消息:[INFO] 消息发送 :13 INFO收到的消息:[INFO] 消息发送 :14 INFO收到的消息:[INFO] 消息发送 :22 INFO收到的消息:[INFO] 消息发送 :25WARN的消费都控制台输出: warn收到的消息:[WARN] 消息发送 :5 warn收到的消息:[WARN] 消息发送 :7 warn收到的消息:[WARN] 消息发送 :10 warn收到的消息:[WARN] 消息发送 :12 warn收到的消息:[WARN] 消息发送 :17 warn收到的消息:[WARN] 消息发送 :18 warn收到的消息:[WARN] 消息发送 :26 warn收到的消息:[WARN] 消息发送 :29至此验证已经完成。
http://www.zqtcl.cn/news/423878/

相关文章:

  • 八零婚纱摄影工作室网站南昌微信营销公司
  • 海南网站开发公司百度网站建设费用怎么做账
  • 做网站的研究生专业微信公众号推广的方法
  • sql网站开发数据库连接失败wordpress改全屏
  • 做外贸怎么上国外网站网上注册公司流程图文
  • 网站开发 慕课厦门建设局网站技司学校
  • 中山自助建站系统多个网站能否统一做等保
  • 做网站怎么别人搜不出来电商购物网站开发需求分析
  • 教育网站设计用模板做的网站不好优化
  • php网站api接口写法中国做铁塔的公司网站
  • 做博客网站如何盈利wordpress百家号
  • 读经典做临床报名网站cnzz 网站跳出率查询
  • 青岛网站建设网站广东手机网站制作公司
  • 个人免费建站软件影视传媒网站源码
  • 网站软件下载app如何做国外网站
  • 网站建设小细节图片北京装修公司报价
  • 辽宁省住房和城乡建设厅网站换了淮安做网站公司
  • 天津商业网站建设搜狗排名优化工具
  • 阿里服务器可以做多少个网站在家怎么利用电脑赚钱
  • 免费建设一个网站google官方版下载
  • 心馨人生珠海网站建设外贸型企业网站建设
  • 好网站建设公司昆明乐清网站优化推广
  • 哪些网站用天平做logo站长工具app官方下载
  • 做餐厅logo用什么软件网站手机自适应网站源码
  • 股票网站模板辽宁工程建设信息网站
  • 毕业设计某网站开发的开题报告范文广西建设教育网站
  • 浏览小城镇建设的网站商丘网站公司
  • python学习网站做好网络推广的技巧
  • 网站有几种类型小说网站开发源码
  • 给城市建设提议献策的网站网站建设可研报告