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

如何设计响应式网站网页美术设计专业

如何设计响应式网站,网页美术设计专业,黑色企业网站,平台推广员rabbitmq五种模式的实现——springboot 基础知识和javase的实现形式可以看我之前的博客 代码地址#xff1a;https://github.com/9lucifer/rabbitmq4j-learning 一、进行集成 #xff08;一#xff09;Spring Boot 集成 RabbitMQ 概述 Spring Boot 提供了对 RabbitMQ 的自…rabbitmq五种模式的实现——springboot 基础知识和javase的实现形式可以看我之前的博客 代码地址https://github.com/9lucifer/rabbitmq4j-learning 一、进行集成 一Spring Boot 集成 RabbitMQ 概述 Spring Boot 提供了对 RabbitMQ 的自动配置支持通过 RabbitTemplate 和 RabbitListener 可以方便地实现消息的生产和消费。以下是基于 Spring Boot 的 RabbitMQ 集成示例。 二生产者代码解析 生产者负责创建消息并将其发送到指定的队列中。 1. 配置文件application.yml spring:rabbitmq:host: 自己服务器的ip # RabbitMQ 服务器地址port: 5672 # RabbitMQ 端口号username: admin # RabbitMQ 用户名password: admin # RabbitMQ 密码virtual-host: / # 虚拟主机默认是 / server:port: 8081 # 应用端口2. 生产者代码Controller package top.miqiu.controller;import org.springframework.amqp.rabbit.core.RabbitTemplate; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController;RestController public class SendController {Autowiredprivate RabbitTemplate rabbitTemplate;GetMapping(/sendMsg)public String sendMsg(RequestParam String msg) {// 发送消息到队列 boot_queuerabbitTemplate.convertAndSend(, boot_queue, msg);return 发送成功: msg;} }关键 RabbitTemplateSpring 提供的 RabbitMQ 操作模板用于发送消息。convertAndSend发送消息到指定队列。GetMapping定义一个 GET 请求接口路径为 /sendMsg。 效果 三消费者代码解析 消费者负责从队列中接收并处理消息。 消费者代码Listener package top.miqiu.controller;import org.springframework.amqp.rabbit.annotation.Queue; import org.springframework.amqp.rabbit.annotation.RabbitListener; import org.springframework.stereotype.Component;Component public class Receive {RabbitListener(queuesToDeclare Queue(boot_queue))public void consumer(String msg) {System.out.println(消息内容为 msg);} }关键 RabbitListener监听指定队列当队列中有消息时自动调用 consumer 方法。queuesToDeclare如果队列不存在会自动创建队列。 效果 二、工作模式 一生产者 生产者通过 RabbitTemplate 将消息发送到 RabbitMQ 的队列中。 关键代码解析 java复制 rabbitTemplate.convertAndSend(, boot_work, msg i);rabbitTemplateRabbitMQ 的核心操作类用于发送消息。convertAndSend 方法 第一个参数是交换机名称这里为空字符串表示默认交换机。第二个参数是队列名称boot_work。第三个参数是消息内容msg i。 循环发送代码中通过循环发送了 20 条消息每条消息内容为 msg i。 运行逻辑 生产者调用 /sendMsg 接口时会将消息发送到队列 boot_work 中消息内容为循环生成的字符串。 二消费者 功能描述 消费者从队列中接收消息并处理处理完成后发送确认信号。 关键代码解析 RabbitListener(queuesToDeclare Queue(boot_work))RabbitListener注解用于监听指定队列的消息。queuesToDeclare声明队列名称boot_work。Queue声明队列的详细信息。 public void consumer(String msg,Header(AmqpHeaders.DELIVERY_TAG) long deliveryTag,Channel channel ) throws IOException, InterruptedException {Thread.sleep(1000); // 模拟消息处理时间channel.basicAck(deliveryTag, true); // 确认消息已处理System.out.println(消费者1 消息内容为 msg); }msg接收到的消息内容。deliveryTag消息的唯一标识用于确认消息是否成功处理。ChannelRabbitMQ 的通道用于执行消息确认操作。basicAck确认消息已处理避免消息重复发送。 第一个参数是 deliveryTag。第二个参数是 multiple表示是否批量确认。 运行逻辑 消费者监听队列 boot_work接收到消息后模拟处理时间Thread.sleep(1000)然后通过 channel.basicAck 发送确认信号表示消息已处理完成。 三效果 可以看到休眠的时长不同消费的速度不同侧面证明该模式适用于任务分配场景多个消费者可以并行处理任务提高效率。 三、Pub/Sub 模式 一Pub/Sub 模式概述 Pub/Sub发布/订阅模式是一种消息传递模式生产者将消息发送到一个交换机Exchange而不是直接发送到队列。消费者通过绑定交换机来接收消息。这种模式允许多个消费者订阅同一个消息源实现消息的广播。 二生产者 功能描述 生产者通过 RabbitTemplate 将消息发送到一个名为 boot-pubsub 的交换机。 关键代码解析 rabbitTemplate.convertAndSend(boot-pubsub, , msg);convertAndSend 方法 第一个参数是交换机名称boot-pubsub。第二个参数是路由键这里为空字符串表示不指定路由键。第三个参数是消息内容msg。 交换机类型boot-pubsub 是一个 fanout 类型的交换机它会将消息广播到所有绑定的队列。 运行逻辑 生产者调用 /sendPubsub 接口时将消息发送到 boot-pubsub 交换机交换机会将消息广播到所有绑定的队列。 运行结果 三消费者 功能描述 消费者通过绑定到 boot-pubsub 交换机接收消息并处理接收到的消息。 关键代码解析 RabbitListener(bindings QueueBinding(value Queue,exchange Exchange(value boot-pubsub, type fanout))) public void consumer(String msg) {System.out.println(consumer 4 消息内容为 msg); }RabbitListener注解用于监听消息。QueueBinding声明队列与交换机的绑定关系。 value Queue声明一个匿名队列。exchange Exchange声明交换机的名称boot-pubsub和类型fanout。 consumer 方法处理接收到的消息并打印消息内容。 运行逻辑 消费者绑定到 boot-pubsub 交换机接收所有广播的消息并打印消息内容。 运行效果 四Pub/Sub 模式特点 广播机制 生产者发送的消息会被广播到所有绑定到交换机的队列多个消费者可以同时接收相同的消息。解耦合 生产者和消费者之间通过交换机解耦生产者无需知道消费者的存在消费者也无需知道生产者的存在。动态绑定 可以动态添加或移除消费者而无需修改生产者的代码。 四、Routing 模式 一Routing 模式概述 Routing 模式是一种基于路由键Routing Key的消息路由模式。生产者将消息发送到 direct 类型的交换机并指定一个路由键。消费者通过绑定到交换机并指定绑定键Binding Key来接收消息。只有路由键与绑定键完全匹配时消息才会被路由到对应的队列。 二生产者 功能描述 生产者通过 RabbitTemplate 将消息发送到 boot-routing 交换机并指定路由键key。 关键代码解析 rabbitTemplate.convertAndSend(boot-routing, key, msg);boot-routing交换机名称类型为 direct。key路由键由方法参数传入用于指定消息的路由规则。msg消息内容由方法参数传入。 运行逻辑 生产者调用 /sendRouting 接口时将消息发送到 boot-routing 交换机并通过路由键决定消息的去向。 三消费者 功能描述 消费者通过绑定到 boot-routing 交换机接收消息并处理接收到的消息。 关键代码解析 RabbitListener(bindings QueueBinding(value Queue,exchange Exchange(value boot-routing, type direct),key {trace})) public void consumer(String msg) {System.out.println(consumer 6 消息内容为 msg); }RabbitListener注解用于监听消息。QueueBinding声明队列与交换机的绑定关系。 value Queue声明一个匿名队列。exchange Exchange声明交换机的名称boot-routing和类型direct。key {trace}绑定键表示该队列只接收路由键为 trace 的消息。 consumer 方法处理接收到的消息并打印消息内容。 运行逻辑 消费者绑定到 boot-routing 交换机并通过绑定键 trace 接收匹配的消息。 四Routing 模式特点 精确匹配 direct 类型的交换机要求路由键与绑定键完全匹配消息才会被路由到对应的队列。 多队列绑定 一个交换机可以绑定多个队列每个队列可以指定不同的绑定键。 解耦合 生产者和消费者之间通过交换机解耦生产者无需知道消费者的存在消费者也无需知道生产者的存在。 五、Topic 模式 一Topic 模式概述 Topic 模式是一种灵活的发布/订阅消息模式适用于需要根据动态路由规则分发消息的场景。生产者将消息发送到一个 topic 类型的交换机并指定一个路由键Routing Key。消费者通过绑定交换机并指定匹配规则Binding Key来接收消息。topic 类型的交换机支持模糊匹配允许更灵活的消息路由。 二生产者 功能描述 生产者通过 RabbitTemplate 将消息发送到 boot-topic 交换机并指定路由键key。 关键代码解析 rabbitTemplate.convertAndSend(boot-topic, key, msg);boot-topic交换机名称类型为 topic。key路由键由方法参数传入用于指定消息的路由规则。例如user.login 或 user.register。msg消息内容由方法参数传入。 运行逻辑 生产者调用 /sendTopic 接口时将消息发送到 boot-topic 交换机并通过路由键决定消息的去向。交换机会根据绑定规则将消息路由到匹配的队列。 三消费者 功能描述 消费者通过绑定到 boot-topic 交换机接收消息并处理接收到的消息。 关键代码解析 RabbitListener(bindings QueueBinding(value Queue,exchange Exchange(value boot-topic, type topic),key {user.*})) public void consumer(String msg) {System.out.println(consumer 8 user.* 消息内容为 msg); }RabbitListener注解用于监听消息。QueueBinding声明队列与交换机的绑定关系。 value Queue声明一个匿名队列。exchange Exchange声明交换机的名称boot-topic和类型topic。key {user.\*}绑定键表示该队列只接收路由键以 user. 开头的消息例如 user.login 或 user.register。 consumer 方法处理接收到的消息并打印消息内容。 运行逻辑 消费者绑定到 boot-topic 交换机并通过绑定键 user.* 接收匹配的消息。例如生产者发送路由键为 user.login 的消息时该消费者会接收并处理该消息。 四Topic 模式特点 灵活的路由规则 topic 类型的交换机支持模糊匹配 *星号匹配一个单词。#井号匹配零个或多个单词。 例如路由键为 user.login 的消息可以被绑定键为 user.* 或 user.login 的队列接收。 动态绑定 消费者可以根据需要动态绑定不同的队列而无需修改生产者的代码。解耦合 生产者和消费者之间通过交换机解耦生产者无需知道消费者的存在消费者也无需知道生产者的存在。 五注意事项 交换机类型 确保交换机类型为 topic因为 topic 类型的交换机支持模糊匹配。绑定键的正确性 消费者需要正确设置绑定键key否则无法接收到匹配的消息。路由键的格式 路由键应使用点分隔符.例如 user.login 或 trace.error以符合 topic 交换机的匹配规则。队列声明 如果使用匿名队列Queue队列会在消费者启动时自动创建但在 RabbitMQ 管理界面中可能看不到队列名称。如果需要持久化队列可以显式声明队列名称。消息丢失问题 如果没有消费者绑定到匹配的路由键消息可能会丢失。可以通过设置交换机的 DLXDead Letter Exchange来处理未消费的消息。
http://www.w-s-a.com/news/203873/

相关文章:

  • 做淘宝需要知道什么网站吗有没有做软件的网站
  • 安丘网站建设制作做网站和微信小程序
  • 京东网站的建设与发展前景黑龙江建设网官网登陆
  • soho的网站怎么做微网站平台建设方案
  • 网站开发下载阿里云oss做视频网站
  • 东莞营销网站制作做一个网站建设
  • 啥网站都能看的浏览器下载网站后台管理系统展望
  • 新建站点步骤汉中 wordpress联盟
  • 坪山网站设计的公司网站 seo 设置
  • 济南网站设计公司排名如何免费注册网站域名
  • 网站开发分工甜妹妹福利wordpress
  • 网站中英文要怎么做网站建设的策划文案
  • 合肥推广外包公司佛山seo
  • 成都网站品牌设计策划课堂网站开发
  • 做直播网站赚钱公司网站空间怎么续费
  • 企业网站制作公司有哪些太原网站建设 thinkphp3.2
  • 云集网站哪个公司做的百度竞价排名怎么做
  • 做网站公司赚钱吗网站建设英语翻译
  • 网络公司除了做网站产品设计作品
  • dede网站模板替换湘潭建设路街道网站
  • 东莞网站优化效果如何网络设计工作
  • 网站备案系统验证码出错的解决方案任丘建设银行网站
  • 个人博客建站wordpress叮当app制作
  • 网站式的公司记录怎么做二手书网站策划书
  • 营销型网站的建设重点是什么帝国程序和WordPress
  • 正能量网站推荐不需要下载巴中网站建设开发公司
  • 学生模拟网站开发西安seo平台
  • 免费的app推广平台免费网站seo
  • 建一个个人网站网站建设中小企业广西
  • 优惠券网站做淘客违规吗个人建网站运营.