RabbitMQ(高级)笔记

一、生产者可靠性

(1)生产者重连(不建议使用)

logging:pattern:dateformat: MM-dd HH:mm:ss:SSSspring:rabbitmq:virtual-host: /hamllport: 5672host: 192.168.92.136username: hmallpassword: 123listener:simple:prefetch: 1connection-timeout: 1stemplate:retry:enabled: trueinitial-interval: 1000msmultiplier: 1max-attempts: 3

 (2)生产者确认

 

 引入日志依赖

        <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-logging</artifactId></dependency>

二、MQ持久化

(1)持久化介绍

 

 

 发送100万条消息给队列,需要先在application.yml中取消生产者确认

    publisher-confirm-type: nonepublisher-returns: false

没有持久化的测试用例,会出行阻塞的状态: 

改为持久化后的测试用例:

(2)最好的持久化方式Lazy Queue

 

 三、消息可靠性

(1)消费者确认

使用auto自动模式 

(2)失败重试机制 

 

 (3)业务幂等性

四、延迟消息

(1)死信交换机

注意:创建的simple.queue需要Add Dead letter exchange,其他都跟之前创建的操作差不多

 监听

    @RabbitListener(queues = "dlx.queue")public void listenDlxQueue(String msg){log.info("dlx.queue消费者收到消息:"+msg);}

测试用例

    @Testvoid testSendTTLMessage(){rabbitTemplate.convertAndSend("simple.direct", "hi", "hello", new MessagePostProcessor() {@Overridepublic Message postProcessMessage(Message message) throws AmqpException {message.getMessageProperties().setExpiration("10000");return message;}});log.info("消息发送成功!");}

(2)延迟消息插件

 

(3)取消订单

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/3859.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

hive启动beeline报错

问题一在zpark启动集群报错 出现上面的问题执行以下代码 chmod 777 /opt/apps/hadoop-3.2.1/logs 问题二启动beeline报错 执行 cd /opt/apps/hadoop-3.2.1 bin/hadoop dfsadmin -safemode leave 问题三执行查询语句报错 执行 set hive.exec.mode.local.autotrue;

flutter 解决ExpandableText组件三个点调整颜色问题

文章目录 前言一、相关代码总结 前言 最近写flutter项目&#xff0c;在使用ExpandableText时解决了一些问题&#xff0c;下面是解决方案&#xff0c;希望帮助到大家。 一、相关代码 1、代码如下&#xff1a; 2、我们设置linkColor就能设置ExpandableText三个点的颜色 Expand…

Spring Boot Admin

概述 Spirng Boot Admin 登录页面 Spring Boot Admin是一个用于管理Spring Boot应用的监控工具,它允许你查看和管理多个Spring Boot应用实例。用于应用信息进行界面化的展示&#xff0c;常常辅助我们开发人员快速查看服务运行状态在微服务架构中&#xff0c;Spring Boot Admin通…

微信小程序:6.事件

什么事事件 事件就是渲染层到逻辑层的通讯方式&#xff0c;比如提交表单&#xff0c;按钮点击都可以看作一个事件。 小程序中常用的事件 事件对象属性列表 当事件回调时&#xff0c;会收到一个事件对象event&#xff0c;他详细属性如夏表所示&#xff1a; target和curren…

微信小程序关于主包大小不能超过1.5MB的问题

常规的解决办法有以下几种 1、把资源文件改成远程服务器的&#xff0c;比如png这些 2、进入如图的分析页面&#xff0c;能明确知道你哪个插件包太大&#xff0c;我这里之前echart的包就1mb&#xff0c;现在给他缩减到了500kb的样子 3、解决vant等npm包太大的问题&#xff0c…

map与forEach的区别

JavaScript中的map和forEach都是数组原型上的方法&#xff0c;它们都可以用来遍历数组&#xff0c;但是它们之间存在一些基本的区别&#xff1a; 1.map方法&#xff1a; map会创建一个新数组&#xff0c;其结果是该数组中的每个元素都调用一个提供的函数后返回的结果。 它返回…

SpringSecurity + Oauth2 + jwt实现单点登录

文章目录 前言一、springsecurity oauth2 redis方式的缺点二、oauth2认证的4种模式的选择三、认证服务器的编写 第一步、创建WebSecurity配置类第二步、创建jwt仓库配置类第三步、创建UserDetailsService类第四步、创建认证服务器配置类 四、测试认证服务器的功能 1.创建Login…

【文章复现】基于主从博弈的社区综合能源系统分布式协同 优化运行策略

随着能源市场由传统的垂直一体式结构向交互竞争型 结构转变,社区综合能源系统的分布式特征愈发明显,传统 的集中优化方法难以揭示多主体间的交互行为。该文提出一 种基于主从博弈的社区综合能源系统分布式协同优化运行 策略,将综合能源销售商作为领导者,新能源冷热电联供运…

vivado 使用“链路 (Links)”窗口查看和更改链路设置

使用“链路 (Links) ”窗口查看和更改链路设置 创建链路后 &#xff0c; 就会将其添加到“ Links ”视图 &#xff08; 请参阅下图 &#xff09; 中 &#xff0c; 该视图是更改链路设置和查看状态的主要方法 &#xff0c; 也是最佳方法。 “ Links ”窗口中的每一行都对应 1 …

Qt窗口全屏显示方法

要在Qt中设置窗口全屏显示&#xff0c;可以采取以下方法&#xff1a; 使用showFullScreen()方法&#xff1a; 对于QWidget对象&#xff0c;可以直接调用showFullScreen()方法来实现全屏显示。 QWidget w; w.showFullScreen();使用setWindowState()方法&#xff1a; 可以通过…

5、Flink事件时间之Watermark详解

1&#xff09;生成 Watermark 1.Watermark 策略简介 为了使用事件时间语义&#xff0c;Flink 应用程序需要知道事件时间戳对应的字段&#xff0c;即数据流中的每个元素都需要拥有可分配的事件时间戳。 通过使用 TimestampAssigner API 从元素中的某个字段去访问/提取时间戳。…

新媒体运营-----短视频运营-----PR视频剪辑----抠像及美颜磨皮

新媒体运营-----短视频运营-----PR视频剪辑-----持续更新(进不去说明我没写完)&#xff1a;https://blog.csdn.net/grd_java/article/details/138079659 文章目录 1. 超级键抠像绿(蓝)幕背景2. 常规视频抠像3. 美颜磨皮 1. 超级键抠像绿(蓝)幕背景 如果我们的素材是在摄影棚进行…

sql server判断表是否存在,要是存在删除

在 SQL Server 中&#xff0c;你可以使用系统视图或者查询系统表来判断表是否存在&#xff0c;并且可以通过 DROP TABLE 语句来删除表。以下是对应的操作示例&#xff1a; 判断表是否存在 使用系统视图 sys.tables&#xff1a; IF EXISTS (SELECT * FROM sys.tables WHERE n…

积极应对半导体测试挑战 加速科技助力行业“芯”升级

在全球半导体产业高速发展的今天&#xff0c;中国“芯”正迎来前所未有的发展机遇。AI、5G、物联网、自动驾驶、元宇宙、智慧城市等终端应用方兴未艾&#xff0c;为测试行业带来新的市场规模突破点&#xff0c;成为测试设备未来重要的增量市场。新兴领域芯片产品性能不断提升、…

Java8 Stream常见用法

Stream流的常见用法&#xff1a; 1.利用stream流特性把数组转list集合 //定义一个数组Integer[] array {5,2,1,6,4,3};//通过stream特性把数组转list集合List<Integer> list Arrays.stream(array).collect(Collectors.toList());//打印结果System.out.println(list);…

Socket套接字(TCP流)篇

Socket套接字 ServerSocketSocket案例演示小结 ServerSocket ServerSocket是创建TCP服务端Socket的API. ServerSocket构造方法: 方法签名方法说明ServerSocket(int port)创建一个服务端套接字Socket,并绑定到指定端口 ServerSocket方法: 方法签名方法说明Socket accept()开始…

在Ubuntu上安装JDK(Java Development Kit)

1、更新索引包在终端中执行以下命令&#xff0c;更新包索引&#xff1a; sudo apt update2、安装默认JDK版本&#xff1a;在Ubuntu 20.04及以上版本中&#xff0c;默认提供 OpenJDK作为JDK的选择。可以通过以下命令安装OpenJDK&#xff1a; sudo apt install default-jdk 这…

浅谈数据库、数据仓库、数据湖

这几年随着大数据的来临&#xff0c;数据仓库&#xff0c;数据湖炒的火热&#xff0c;但是他们跟传统的数据库有什么区别&#xff0c;今天我来简单的梳理一下他们的区别&#xff0c;如有不完整之处&#xff0c;请大家留言补充。 数据库、数据仓库和数据湖的定义 数据库&#…

Kubernetes - CentOS7搭建k8s_v1.18集群高可用(kubeadm/二进制包部署方式)实测配置验证手册

Kubernetes - CentOS7搭建k8s集群高可用&#xff08;kubeadm/二进制包部署方式&#xff09;实测配置验证手册 前言概述&#xff1a; 一、Kubernetes—k8s是什么 Kubernetes 这个名字源于希腊语&#xff0c;意为“舵手“或”飞行员"。 Kubernetes&#xff0c;简称K8s&#…

计算机网络大框架图形

如标题&#xff0c;精心画了一个计算机网络的框架性的图&#xff0c;包含了计算机网络的核心思想&#xff0c;在此分享和备份下。各层具体协议参考TCP/IP常用协议栈图解-CSDN博客