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

做一个旅游团网站怎么做群晖 wordpress 端口 转发

做一个旅游团网站怎么做,群晖 wordpress 端口 转发,网站开发网站定制,wordpress打不开主页文章目录 1.Fanout#xff08;广播模式#xff09;1.基本介绍2.需求分析3.具体实现1.编写配置类 RabbitMQConfig.java2.编写生产者#xff0c;发送消息到交换机 MQSender.java3.编写消费者#xff0c;接受消息 MQReceiver.java4.控制层调用方法#xff0c;发送信息到交换机… 文章目录 1.Fanout广播模式1.基本介绍2.需求分析3.具体实现1.编写配置类 RabbitMQConfig.java2.编写生产者发送消息到交换机 MQSender.java3.编写消费者接受消息 MQReceiver.java4.控制层调用方法发送信息到交换机 4.启动测试1.访问查看IDEA控制台输出1.访问 http://localhost:9092/seckill/mq/exchange2.查看控制台输出两个队列同时接受到了消息 2.访问RabbitMQ控制台 http://ip:156721.查看交换机是否绑定了两个队列2.再查看Queues新增了两个队列 2.Direct路由模式1.基本介绍2.需求分析3.具体实现1.配置类 RabbitMQConfig.java2.编写生产者发送消息到交换机并指定路由 MQSender.java3.编写消费者接受消息 MQReceiver.java4.控制层调用方法发送信息到交换机 4.启动测试1.访问查看IDEA控制台输出1.访问 http://localhost:9092/seckill/mq/direct/green2.访问 http://localhost:9092/seckill/mq/direct/red 2.访问RabbitMQ控制台 http://140.143.164.206:156721.交换机绑定了两个队列2.再查看Queues新增了两个队列 3.Topic主题模式1.基本介绍1.介绍2.关于匹配模式的说明 2.需求分析3.具体实现1.配置类 RabbitMQConfig.java2.编写生产者发送消息到交换机并指定路由 MQSender.java3.编写消费者接受消息 MQReceiver.java4.控制层调用方法发送信息到交换机 4.启动测试1.示意图2.访问查看IDEA控制台输出1.访问 http://localhost:9092/seckill/mq/topic/one.orange.one 匹配Q12.访问 http://localhost:9092/seckill/mq/topic/one.one.rabbit 匹配Q23.访问 http://localhost:9092/seckill/mq/topic/lazy.orange.one 匹配Q1和Q24.访问 http://localhost:9092/seckill/mq/topic/lazy.any.any.any.any 匹配Q2 4.Headers头路由模式使用较少1.基本介绍2.示意图3.需求分析4.具体实现1.配置类 RabbitMQConfig.java2.编写生产者发送消息到交换机并指定路由 MQSender.java3.编写消费者接受消息 MQReceiver.java4.控制层调用方法发送信息到交换机 5.启动测试1.访问查看IDEA控制台输出1.访问 http://localhost:9092/seckill/mq/headers 匹配队列一2.访问 http://localhost:9092/seckill/mq/headers2 匹配队列二 5.RabbitMQ使用模式总结1.整体架构图2.通用使用方式1.编写RabbitMQ的配置类2.编写消息发送者3.编写消息接受者4.编写控制层 1.Fanout广播模式 1.基本介绍 2.需求分析 3.具体实现 1.编写配置类 RabbitMQConfig.java // 定义一个交换机两个队列的名称private static final String EXCHANGE exchange;private static final String QUEUE1 queue1;private static final String QUEUE2 queue2;// 创建两个队列和一个交换机// 创建队列1Beanpublic Queue queue1() {return new Queue(QUEUE1, true);}// 创建队列2Beanpublic Queue queue2() {return new Queue(QUEUE2, true);}// 创建交换机Beanpublic FanoutExchange exchange() {return new FanoutExchange(EXCHANGE);}// 将队列一和交换机绑定Beanpublic Binding binding1() {return BindingBuilder.bind(queue1()).to(exchange());}// 将队列二和交换机绑定Beanpublic Binding binding2() {return BindingBuilder.bind(queue2()).to(exchange());}2.编写生产者发送消息到交换机 MQSender.java // 发送消息到交换机public void sendExchange(Object message) {log.info(发送消息到交换机 message);// 发送消息到交换机需要指定在配置类中配置的交换机名这里的空字符串表示忽略路由键rabbitTemplate.convertAndSend(exchange, , message);}3.编写消费者接受消息 MQReceiver.java // 两个队列从交换机接受消息RabbitListener(queues queue1)public void receive1(Object message) {log.info(queue1接收消息: message);}// 两个队列从交换机接受消息RabbitListener(queues queue2)public void receive2(Object message) {log.info(queue2接收消息: message);}4.控制层调用方法发送信息到交换机 // 发送信息到交换机RequestMapping(/mq/exchange)ResponseBodypublic void mqExchange() {mqSender.sendExchange(hello rabbitmq exchange);}4.启动测试 1.访问查看IDEA控制台输出 1.访问 http://localhost:9092/seckill/mq/exchange 2.查看控制台输出两个队列同时接受到了消息 2.访问RabbitMQ控制台 http://ip:15672 1.查看交换机是否绑定了两个队列 2.再查看Queues新增了两个队列 2.Direct路由模式 1.基本介绍 2.需求分析 3.具体实现 1.配置类 RabbitMQConfig.java // ----------------- Direct模式 -----------------// 定义一个交换机两个队列的名称private static final String DIRECT_EXCHANGE directExchange;private static final String DIRECT_QUEUE1 directQueue1;private static final String DIRECT_QUEUE2 directQueue2;// 定义两个路由分别为red和greenpublic static final String RED red;public static final String GREEN green;// 创建两个队列和一个交换机// 创建队列1Beanpublic Queue directQueue1() {return new Queue(DIRECT_QUEUE1, true);}// 创建队列2Beanpublic Queue directQueue2() {return new Queue(DIRECT_QUEUE2, true);}// 创建Direct交换机Beanpublic DirectExchange directExchange() {return new DirectExchange(DIRECT_EXCHANGE);}// 将队列一和交换机绑定并指定路由为redBeanpublic Binding directBinding1() {return BindingBuilder.bind(directQueue1()).to(directExchange()).with(RED);}// 将队列二和交换机绑定并指定路由为greenBeanpublic Binding directBinding2() {return BindingBuilder.bind(directQueue2()).to(directExchange()).with(GREEN);}// ----------------- Direct模式 -----------------2.编写生产者发送消息到交换机并指定路由 MQSender.java // ----------------- Direct模式 -----------------// 发送消息到Direct交换机指定路由键public void sendDirect(Object message, String routingKey) {log.info(发送消息到Direct交换机 message);// 发送消息到交换机需要指定在配置类中配置的交换机名这里的路由键为 routingKeyrabbitTemplate.convertAndSend(directExchange, routingKey, message);}// ----------------- Direct模式 -----------------3.编写消费者接受消息 MQReceiver.java // ----------------- Direct模式 -----------------// directQueue1接收消息RabbitListener(queues directQueue1)public void receiveDirect(Object message) {log.info(directQueue1接收消息: message);}// directQueue2接收消息RabbitListener(queues directQueue2)public void receiveDirect2(Object message) {log.info(directQueue2接收消息: message);}// ----------------- Direct模式 -----------------4.控制层调用方法发送信息到交换机 // ----------------- Direct模式 -----------------// 发送消息到Direct交换机指定路由键RequestMapping(/mq/direct/{routingKey})ResponseBodypublic void mqDirect(PathVariable String routingKey) {mqSender.sendDirect(hello rabbitmq direct, routingKey);}// ----------------- Direct模式 -----------------4.启动测试 1.访问查看IDEA控制台输出 1.访问 http://localhost:9092/seckill/mq/direct/green 2.访问 http://localhost:9092/seckill/mq/direct/red 2.访问RabbitMQ控制台 http://140.143.164.206:15672 1.交换机绑定了两个队列 2.再查看Queues新增了两个队列 3.Topic主题模式 1.基本介绍 1.介绍 2.关于匹配模式的说明 星号可以匹配一个单词井号可以匹配零个或多个单词 2.需求分析 3.具体实现 1.配置类 RabbitMQConfig.java // ----------------- Topic模式 -----------------// 定义一个交换机两个队列的名称private static final String TOPIC_EXCHANGE topicExchange;private static final String TOPIC_QUEUE1 topicQueue1;private static final String TOPIC_QUEUE2 topicQueue2;// 定义三个路由public static final String ROUTING_KEY1 *.orange.*;public static final String ROUTING_KEY2 *.*.rabbit;public static final String ROUTING_KEY3 lazy.#;// 创建两个队列和一个交换机// 创建队列1Beanpublic Queue topicQueue1() {return new Queue(TOPIC_QUEUE1, true);}// 创建队列2Beanpublic Queue topicQueue2() {return new Queue(TOPIC_QUEUE2, true);}// 创建Topic交换机Beanpublic TopicExchange topicExchange() {return new TopicExchange(TOPIC_EXCHANGE);}// 将队列一和交换机绑定并指定路由为*.orange.*Beanpublic Binding topicBinding1() {return BindingBuilder.bind(topicQueue1()).to(topicExchange()).with(ROUTING_KEY1);}// 将队列二和交换机绑定并指定路由为*.*.rabbit和lazy.#Beanpublic Binding topicBinding2() {return BindingBuilder.bind(topicQueue2()).to(topicExchange()).with(ROUTING_KEY2);}Beanpublic Binding topicBinding3() {return BindingBuilder.bind(topicQueue2()).to(topicExchange()).with(ROUTING_KEY3);}// ----------------- Topic模式 ----------------- 2.编写生产者发送消息到交换机并指定路由 MQSender.java // ----------------- Topic模式 -----------------// 发送消息到Topic交换机指定路由键public void sendTopic(Object message, String routingKey) {log.info(发送消息到Topic交换机 message);// 发送消息到交换机需要指定在配置类中配置的交换机名这里的路由键为 routingKeyrabbitTemplate.convertAndSend(topicExchange, routingKey, message);}// ----------------- Topic模式 ----------------- 3.编写消费者接受消息 MQReceiver.java // ----------------- Topic模式 -----------------// topicQueue1接收消息RabbitListener(queues topicQueue1)public void receiveTopic1(Object message) {log.info(topicQueue1接收消息: message);}// topicQueue2接收消息RabbitListener(queues topicQueue2)public void receiveTopic2(Object message) {log.info(topicQueue2接收消息: message);}// ----------------- Topic模式 ----------------- 4.控制层调用方法发送信息到交换机 // ----------------- Topic模式 -----------------// 发送消息到Topic交换机指定路由键RequestMapping(/mq/topic/{routingKey})ResponseBodypublic void mqTopic(PathVariable String routingKey) {mqSender.sendTopic(hello rabbitmq topic, routingKey);}// ----------------- Topic模式 -----------------4.启动测试 1.示意图 2.访问查看IDEA控制台输出 1.访问 http://localhost:9092/seckill/mq/topic/one.orange.one 匹配Q1 2.访问 http://localhost:9092/seckill/mq/topic/one.one.rabbit 匹配Q2 3.访问 http://localhost:9092/seckill/mq/topic/lazy.orange.one 匹配Q1和Q2 4.访问 http://localhost:9092/seckill/mq/topic/lazy.any.any.any.any 匹配Q2 4.Headers头路由模式使用较少 1.基本介绍 2.示意图 3.需求分析 4.具体实现 1.配置类 RabbitMQConfig.java // ----------------- Headers模式 -----------------// 定义一个交换机两个队列的名称private static final String HEADERS_EXCHANGE headersExchange;private static final String HEADERS_QUEUE1 headersQueue1;private static final String HEADERS_QUEUE2 headersQueue2;// 创建两个队列和一个交换机// 创建队列1Beanpublic Queue headersQueue1() {return new Queue(HEADERS_QUEUE1, true);}// 创建队列2Beanpublic Queue headersQueue2() {return new Queue(HEADERS_QUEUE2, true);}// 创建Headers交换机Beanpublic HeadersExchange headersExchange() {return new HeadersExchange(HEADERS_EXCHANGE);}// 将队列一和交换机绑定并指定key-value使用any表示只要有一个匹配就可以Beanpublic Binding headersBinding1() {MapString, Object map new HashMap();map.put(key1, value1);map.put(key2, value2);return BindingBuilder.bind(headersQueue1()).to(headersExchange()).whereAny(map).match();}// 将队列二和交换机绑定并指定key-value使用all表示所有的key-value都要匹配Beanpublic Binding headersBinding2() {MapString, Object map new HashMap();map.put(key3, value3);map.put(key4, value4);return BindingBuilder.bind(headersQueue2()).to(headersExchange()).whereAll(map).match();}// ----------------- Headers模式 -----------------2.编写生产者发送消息到交换机并指定路由 MQSender.java // ----------------- Headers模式 -----------------// 发送消息到Headers交换机匹配队列一public void sendHeaders(Object message) {log.info(发送消息到Headers交换机 message);// 发送消息到交换机需要指定在配置类中配置的交换机名这里的空字符串表示忽略路由键rabbitTemplate.convertAndSend(headersExchange, , message, message1 - {message1.getMessageProperties().getHeaders().put(key1, value1);return message1;});}// 发送消息到Headers交换机匹配队列二public void sendHeaders2(Object message) {log.info(发送消息到Headers交换机 message);// 发送消息到交换机需要指定在配置类中配置的交换机名这里的空字符串表示忽略路由键rabbitTemplate.convertAndSend(headersExchange, , message, message1 - {message1.getMessageProperties().getHeaders().put(key3, value3);message1.getMessageProperties().getHeaders().put(key4, value4);return message1;});}// ----------------- Headers模式 -----------------3.编写消费者接受消息 MQReceiver.java // ----------------- Headers模式 -----------------// headersQueue1接收消息RabbitListener(queues headersQueue1)public void receiveHeaders1(Object message) {log.info(headersQueue1接收消息: message);}// headersQueue2接收消息RabbitListener(queues headersQueue2)public void receiveHeaders2(Object message) {log.info(headersQueue2接收消息: message);}// ----------------- Headers模式 -----------------4.控制层调用方法发送信息到交换机 // ----------------- Headers模式 -----------------// 发送消息到Headers交换机匹配队列一RequestMapping(/mq/headers)ResponseBodypublic void mqHeaders() {mqSender.sendHeaders(hello rabbitmq headers);}// 发送消息到Headers交换机匹配队列二RequestMapping(/mq/headers2)ResponseBodypublic void mqHeaders2() {mqSender.sendHeaders2(hello rabbitmq headers2);}// ----------------- Headers模式 -----------------5.启动测试 1.访问查看IDEA控制台输出 1.访问 http://localhost:9092/seckill/mq/headers 匹配队列一 2.访问 http://localhost:9092/seckill/mq/headers2 匹配队列二 5.RabbitMQ使用模式总结 1.整体架构图 2.通用使用方式 1.编写RabbitMQ的配置类 创建交换机和队列将队列分别与交换机按照具体标识绑定 2.编写消息发送者 指定交换机携带消息和具体队列标识 3.编写消息接受者 只需要监听队列接收消息即可 4.编写控制层 调用消息发送者向交换机发送请求
http://www.hkea.cn/news/14535612/

相关文章:

  • 360建站平台深圳工业设计师工资一般多少
  • 大连微信网站开发深圳网站建设排行
  • 百度开放云制作网站wordpress积分主题
  • 免费网站空间有什么用网站上展示手机页面是怎么做的
  • 绚丽的网站欣赏有没有专门的销售公司
  • 泰安微信网站建设修改wordpress文章发布页面模板
  • htmi 个人小网站 模板广州网站开发水平广州亦客网络
  • 国外好的室内设计网站网站建设公司排行
  • 网站开发者工资互联网营销是干什么
  • 好用的html 模板网站免费友链互换
  • 贵阳建站推广公司重庆市工程建设信息网官网新域名
  • 展会网站模板wordpress登录400错误
  • 网站建设拾金手指下拉十九企业网站开发上海韵茵
  • 可信网站认证 服务中心网站设计画布规范1680
  • 宁波网站制作设计网站怎么做404页面的跳转
  • 网站模板下载工具哪个网站可以做字体大小
  • 创业网站平台排名wordpress外链跳转样式
  • 公司域名更改 网站怎么做提示wordpress外观小工具
  • 专业做网站的团队推荐南通住房和城乡建设局网站首页
  • iis7.5发布网站教程网站名字大全有哪些
  • 有设计感的网站wordpress自己发文章
  • 动易 网站顶部导航 sitefactory企业网站建设流程的第一步工作是
  • 深圳营销型网站建设服务商代码wordpress
  • 做网站的人跑了网站可以恢复吗暴雪公司现状
  • 网站网络推广优化营销型网站报价
  • 有哪些做网站公司长沙网站seo排名
  • 做景观素材有哪几个网站开发公司行政部提升
  • 受欢迎的昆明网站建设惠州app开发公司
  • 移动端网站怎么布局岳阳找工作网站
  • 深圳建设合同备案 网站东莞网站开发多少钱