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

一般网站做响应式吗黄金网站下载免费

一般网站做响应式吗,黄金网站下载免费,中企动力科技股份有限公司常州分公司,苏州建网站多少钱目录 一、死信队列介绍 1.死信 2.死信的来源 2.1 TTL 2.2 死信的来源 3.死信队列 4.死信队列的用途 二、死信队列的实现 1.导入依赖 pom.xml 2.application.properties 3.配置类 4.生产者 5.业务消费者#xff08;正常消费者#xff09; 6.死信队列消费者 一、…目录 一、死信队列介绍 1.死信 2.死信的来源 2.1 TTL 2.2 死信的来源 3.死信队列  4.死信队列的用途 二、死信队列的实现 1.导入依赖 pom.xml 2.application.properties 3.配置类 4.生产者 5.业务消费者正常消费者 6.死信队列消费者 一、死信队列介绍 1.死信 死信顾名思义就是没办法被消费的消息 2.死信的来源 2.1 TTL 什么是TTL TTLTime To Live翻译为生存时间是指消息在队列中可以存活的时间如果消息在队列中存活的时间超过了TTL那么消息就会被标记为死信然后进入死信队列 2.2 死信的来源 消息TTL过期 队列达到最大长度 队列满了无法再添加消息就会成为死信然后进入死信队列消息被拒绝比如我们设置了消息的应答模式为手动应但是没有调用ack方法那么消息就会被标记为死信然后进入死信队列 3.死信队列  我们能了解到消息生产者生产消息消费者消费处理消息消息生产者发送消息到队列消费者从队列中获取消息某些消息会无法被消费就会成为死信自然而然的我们需要一个队列来存储死信而这个队列就被成为死信队列 4.死信队列的用途 首先呢一个事物能够存在就说明他有存在的理由死信队列其实一般来做一个定时的作用 例如 在保证订单业务中的消息数据不丢失当消息没有被处理或者是超出了TTL时间那么我们就可以将他放在死信队列中然后定时去消费死信队列中的消息然后进行相应的处理如果这个消息是被动的就是说我们想让他被消费但是没有被消费那么其实就是保证了消息的不丢失如果是一个主动的我们设置了我们需要的TTL那么就可以成为一个定时功能。比如取消支付功能 1.2.1 延迟队列 如果是这个消息使我们故意的想让发到死信队列中其实我们可以将他叫做为延时队列我们可以设置一个时间比如我们想让这个消息延迟10分钟再发送到死信队列中那么我们就可以将这个消息发送到延迟队列中然后定时去消费延迟队列中的消息然后进行相应的处理 二、死信队列的实现 1.导入依赖 pom.xml dependenciesdependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-amqp/artifactId/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactId/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-test/artifactIdscopetest/scope/dependencydependencygroupIdorg.springframework.amqp/groupIdartifactIdspring-rabbit-test/artifactIdscopetest/scope/dependency /dependencies 2.application.properties spring.application.namespringboot-rabbitmq server.port8080 #默认地址就是127.0.0.15672如果是服务器的rabbitmq就改下 spring.rabbitmq.host192.168.174.130 spring.rabbitmq.port5672 spring.rabbitmq.usernameadmin spring.rabbitmq.passwordadmin spring.rabbitmq.listener.typesimple #设置为false会丢弃消息或者重新发步到死信队列 spring.rabbitmq.listener.simple.default-requeue-rejectedfalse #手动签收 spring.rabbitmq.listener.simple.acknowledge-modemanual #虚拟主机目录 spring.rabbitmq.virtual-host/ 3.配置类 Configuration public class rabbitMQConf {//普通交换机的名字public static final String NORMAL_EXCHANGE normalExchange;//普通队列的名字public static final String NORMAL_QUEUE normalQueue;//死信交换机的名字public static final String DEAD_EXCHANGE deadExchange;//死信队列的名字public static final String DEAD_QUEUE deadQueue;/*** 普通交换机*/Beanpublic DirectExchange normalExchange() {return new DirectExchange(NORMAL_EXCHANGE);}/*普通队列*/Beanpublic Queue normalQueue() {return new Queue(NORMAL_QUEUE);}/*** 死信交换机 死信队列*/Beanpublic DirectExchange deadExchange() {return new DirectExchange(DEAD_EXCHANGE);}/*** 死信队列*/Beanpublic Queue deadQueue() {return new Queue(DEAD_QUEUE);}/*** 绑定正常队列*/Beanpublic Binding normalBinding() {return BindingBuilder.bind(normalQueue()).to(normalExchange()).with(normal);}/*** 死信队列绑定* return*/Beanpublic Binding deadBinding() {return BindingBuilder.bind(deadQueue()).to(deadExchange()).with(dead);} } 4.生产者 Slf4j RestController RequestMapping(/test) public class SendMessageController {Autowiredprivate RabbitTemplate rabbitTemplate;GetMapping(/sendMsg/{msg})public String sendMsg(PathVariable(value msg) String msg) {log.info(send msg: msg);rabbitTemplate.convertAndSend(NORMAL_EXCHANGE, normal, msg);return success;} } 5.业务消费者正常消费者 Service Slf4j public class NormalMessageReceiver {/*** 消费消息*/RabbitListener(queues NORMAL_QUEUE)SneakyThrowspublic void receive(Message msg, Channel channel) {String s msg.getBody().toString();String s1 new String(msg.getBody());log.info(这个是toString方式得出来的s{}, s);log.info(这个是new String方式得出来的s{}, s1);boolean acktrue;Exception exceptionnull;try {if (s1.contains(dead)){throw new RuntimeException(dead letter exception);}} catch (RuntimeException e) {ackfalse;exceptione;}if (!ack){System.out.println(error msg{ }exception.getMessage());//设置死信消息channel.basicNack(msg.getMessageProperties().getDeliveryTag(),false,false);}else {channel.basicAck(msg.getMessageProperties().getDeliveryTag(),false);}System.out.println(正常消息消费者收到消息 msg);} }6.死信队列消费者 Component public class DeadMessageReceiver {/*** 死信队列*/RabbitListener(queues rabbitMQConf.DEAD_QUEUE)public void receiveA(Message message, Channel channel) throws IOException {System.out.println(DeadMessageA{} new String(message.getBody()));channel.basicAck(message.getMessageProperties().getDeliveryTag(), false);} }
http://www.dnsts.com.cn/news/36865.html

相关文章:

  • 北京网站设计公司新网站建设论文选题表
  • word如何做网站网站建设工作会议召开
  • 秦都区建设局网站湖州网
  • sem和seo是什么职业湖南网站建设方案优化
  • 网站服务公司有哪些万网虚拟主机做网站教程
  • 保定seo网站排名中国做w7的网站
  • 网站建设岗位绩效网站怎么做301
  • 兰州网站seo服务如何做内网网站
  • 如何免费建网站微信商城怎么找
  • 浙江省邮电工程建设有限公司 网站网站建设观点
  • 网络推广与传统推广的区别如何优化关键词提升相关度
  • 沈阳市建设局网站首页wordpress首页调用分类及描述
  • 成品网站软件wordpress开发 文档
  • wap网站部署网站代理协议
  • 临沂网站建设方案书cantos wordpress
  • 建筑设计怎么学 从零开始上海网络公司seo
  • 标准论坛网站建设wordpress 转换 织梦
  • 如何判断网站是响应式的还是百度信息
  • 制作网站支付方式企业网站排名运营
  • 网站管理助手婚庆网站建设目的
  • 推销别人做网站有什么作用网站备案要求企业 个人
  • 建设银行德阳分行网站引流推广怎么做
  • wordpress建站课程虚拟云手机 免费
  • 怎么联系百度推广荆门seo
  • 好看的个人网站模板十大培训机构教育培训机构哪家好
  • 网站开发需要注意的超市网站规划
  • dede网站更新如何同步腾讯微博更新泰安电脑网站建设电话
  • 没有营业执照网站备案wordpress menu 插件
  • 网站建设教程科普建手机网站怎么收费
  • 网站建设工程师职责建网站需要哪些资质