首页 > 数据库 >使用Redisson分布式锁实现幂等性处理

使用Redisson分布式锁实现幂等性处理

时间:2024-12-11 17:28:04浏览次数:9  
标签:Redisson 处理 lock 加锁 上报 服务端 分布式

        物理网中往往会遇到某些设备疯狂的上报数据,而我们的服务端如果每个请求都处理,一是对服务性能要求比较高否则来不急处理,二是对我们的服务压力比较大,而且大部分上报的数据以及处理结果都是一样的。
        因此,为了减少这种设备重复上报的场景对我们服务端的压力,我们基本都会增加请求的幂等处理。今天给大家分享一种非常简单的幂等处理方式:分布式锁幂等处理
        通过RedissonClient,给消息处理模块增加分布式锁;在使用tryLock时设置等待时间为0,这样在服务端系统处理过程中上报的数据自动被忽略。这种方案只适用于大量重复上报且上报请求丢失不影响的场景。

// 获取分布式锁
RLock lock = redisson.getLock("myLock");

// 尝试加锁,等待0秒实现幂等,上锁以后10秒自动解锁
boolean isLocked = lock.tryLock(0, 10, TimeUnit.SECONDS);
try {
	if (isLocked) {
        // 这里执行需要处理的逻辑
	} else {
		// 加锁失败,记录日志
	}
} finally {
        // 确保锁最终被释放
        lock.unlock();
}


    如某设备100毫秒上报一次状态,即使本次上报不处理也不影响,因为100毫秒后会再次触发。

标签:Redisson,处理,lock,加锁,上报,服务端,分布式
From: https://blog.csdn.net/u010712367/article/details/131436190

相关文章

  • MakeNTF.exe 是一个命令行工具,主要用于字体文件的处理,特别是为了创建与 Windows 系统
    MakeNTF用法:创建NTF文件:MakeNTF-win32|-win64[-v][-o]<NTF><AFM文件列表>创建一个来自AFM文件的NTF文件。-win32:为win32驱动程序创建NTF文件。-win64:为win64驱动程序创建NTF文件。(必须指定这两个选项中的一个)-v:详细模式(打印各种信息)。-o:优......
  • DriverPropertyBagTool.exe 是一个命令行工具,主要用于处理驱动程序的属性包(Property B
    DriverPropertyBagTool.exe是一个命令行工具,主要用于处理驱动程序的属性包(PropertyBag)。它允许用户将不同的数据项添加到属性包中,这些数据项可以是文件、字节数组或是流形式的数据。通过这个工具,你可以创建或更新驱动程序安装过程中使用的属性包,这对于定制化驱动程序部署或者在......
  • 嵌入式处理器程序设计(处理思路及经验篇)——开发必备的特定设计思维及POSIX标准
    嵌入式系统的核心是嵌入式处理器。嵌入式处理器一般划分为如下类型:嵌入式系统分层结构一般可如下:两层结构:硬件层、应用层(软件层)                             诸如: MCU裸机系统三层结构:硬件层(原厂芯片用库......
  • 数字图像处理
    图像的基本运算灰度反转黑白图像灰度值1-->00-->1256灰度级图像255-个像素灰度级,就能是下班灰度反转即g(x,y)=L-1-f(x,y)对数变换压缩图像的灰度值的动态范围--调高输入图像的低灰度值人的视觉感觉与进入人眼的光的强度成对数关系--先对图像进行对数变换在显示......
  • 违规抽烟识别智慧矿山一体机在矿山监控项目中,如何选择合适的POE网络摄像机以及常见问
    随着技术的飞速进步,POE(PoweroverEthernet,以太网供电)技术在安防监控领域的应用越来越广泛,它为网络监控施工带来了革命性的改变。POE技术允许通过单一的以太网电缆同时传输数据和电力,大大简化了监控系统的布线复杂度,并降低了安装成本。在矿山监控系统中,选择适合的POE技术可以提......
  • 分布式事务seata详解
    1、seata官方文档官方地址:ApacheSeataseata提供的官方文档,有中文和英文,可以随意切换关于seata的介绍,这里不做赘述,详细可以参考官方文档。Seata为用户提供了AT、TCC、SAGA和XA事务模式,我们这里介绍的为AT事务模式2、安装seataseata官网下载地址:Seata-Server版本历......
  • AspNetCore全局异常处理
    在开发ASP.NETCore应用程序时,全局异常处理是一个重要的概念。它允许我们集中处理应用程序中未捕获的异常,确保应用程序的稳定性和用户体验。1.为什么需要全局异常处理全局异常处理的目的是为了:统一错误响应:确保所有错误都以统一的格式返回给客户端。避免敏感信息泄露:防止将......
  • 数字图像处理(18):图像亮度调节:线性变换
            (1)图像亮度:反映图像的明暗程度,在图像处理中,亮度常用灰度值表示,灰度值越高,图像越亮。对图像进行亮度调节,可以改善图像的视觉效果,让图片更亮或更暗,以适应实际需求。        (2)线性亮度和对比度调节:通过对每个像素进行相同系数的增加或减少,来整体提高或降......
  • 分布式 & Raft算法 & 总结
    前言 相关系列《分布式&目录》《分布式&Raft算法&总结》《分布式&Raft算法&问题》  参考文献《Raft一致性算法论文译文》《深入剖析共识性算法Raft》  简介    Raft@木筏是一种基于日志复制实现的分布式容错&一致性算法。在Raft算法之前,Pa......
  • 项目应用服务器病毒事件处理
    事件报告针对项目应用服务器发生的病毒事件,我们进行了系统排查与处理。起初,我们发现了netools进程异常占用CPU资源,并在/tmp目录下生成大量文件的情况。通过杀死该进程及删除启动目录,并未成功解决问题。进一步排查中,发现了两个可疑的系统服务,并通过查看其单元文件内容,确认其存......