- 博客(2342)
- 资源 (32)
- 收藏
- 关注
转载 Spring Boot + Redis 解决重复提交问题,一定用的到
本文介绍了使用springboot和拦截器、redis来优雅的实现接口幂等,对于幂等在实际的开发过程中是十分重要的,因为一个接口可能会被无数的客户端调用,如何保证其不影响后台的业务处理,如何保证其只影响数据一次是非常重要的,它可以防止产生脏数据或者乱数据,也可以减少并发量,实乃十分有益的一件事。token机制,每次接口请求前先获取一个token,然后再下次请求的时候在请求的header体中加上这个token,后台进行验证,如果验证通过删除token,下次请求再次判断token。
2023-03-12 19:39:26 190
转载 一个注解优雅的实现 接口数据脱敏
*** 自定义jackson注解,标注在属性上*///脱敏策略使用注解@Sensitive@Data/*** 真实姓名*//*** 地址*//*** 电话号码*//*** 身份证号码*/数据脱敏有很多种实现方式,关键是哪种更加适合,哪种更加优雅.....猿技术专栏,回复关键词数据脱敏获取陈某的知识星球(点击加入)正式上线了,在星球内部你可以看陈某的已出(两个)的和未来待出的所有视频教程(持续进阶、实战),向陈某提问、跟着陈某制定的学习线路向技术专家进阶。
2023-03-11 21:16:25 253
转载 电商系统中定时关单
思考:在两个不同的系统之间进行交互的时候,我们首先需要考虑的是这两个系统之间需要设计什么徉的交互协议,即数据传输格式。消费者通过查询订单是否支付/调用第三方支付的查询订单状态接口来确认订单是否支付,然后决定修改订单状态以及消息是否需要重新入队。消费者相当于定时任务,当延迟消息被消费者监听到的时候,就会检查这笔订单是否支付成功,如果没有支付,则进行关单。延迟消息中的内容需要包含订单流水号,供消费者去查询订单支付信息。若支付:则修改订单数据库中的订单状态,并发送ack确认。定时关单服务消费者端代码设计与实现。
2023-03-11 17:16:48 149
转载 下单的二次支付的问题
但可能存在支付异常的情况,比如用户发现金额不够关闭了支付页面,后续通过选择其他支付方式(比如由微信支付转为支付宝支付)或者 不同的端类型(比如第一次是用电脑端支付,后面选择app支付等等)来进行支付,这个时候就会出现二次支付的场景。由于用户支付的时候的支付页面是个html文件或者是一个支付二维码的图片,可以选择将支付页面存在数据库中,用户二次支付时通过查询数据库的支付页面,将页面返回给用户进行再次使用。注意点:用户二次支付的时候,订单微服务中是存储了用户第一次下单支付的基本信息的。收录于合集#项目8个。
2023-03-11 17:10:45 404
转载 下单接口防重提交问题
说明:下单流程中第1步提交订单实际上是直接和我们的后台进行响应,速度是比较快的,因此在这一步是不会出现重复下单,但对于第2步由于支付需要和第三方交互,用户可能由于延迟多次支付,因此在第1步的时候我们会生成一个唯一标识这个订单的令牌token交给用户【同时token会在后端保存一份】,用户在第2步的时候会携带token进行支付【支付完后端就删除了这个token】,这样我们就可以保证不论用户支付多少次,实际上的付款只会执行一次。对于输出,同一个请求不论来多少次,返回的结果都必须是相同的。收录于合集#项目8个。
2023-03-11 17:09:11 119
转载 分布式锁工具Redisson,太香了!!
一、Redisson概述什么是Redisson?Redisson是一个在Redis的基础上实现的Java驻内存数据网格(In-Memory Data Grid)。它不仅提供了一系列的分布式的Java常用对象,还提供了许多分布式服务。
2023-03-11 16:51:26 394
转载 最强分布式锁工具:Redisson
Redisson是一个在Redis的基础上实现的Java驻内存数据网格(In-Memory Data Grid)。它不仅提供了一系列的分布式的Java常用对象,还提供了许多分布式服务。Redisson的宗旨是促进使用者对Redis的关注分离(Separation of Concern),从而让使用者能够将精力更集中地放在处理业务逻辑上。一个基于Redis实现的分布式工具,有基本分布式对象和高级又抽象的分布式服务,为每个试图再造分布式轮子的程序员带来了大部分分布式问题的解决办法。
2023-03-11 16:36:17 156
转载 02-MapStruct整合Lombok
众所周知,Lombok可以帮助我们为JavaBean,在编译期生成:构造方法、Getter、Setter、ToString等等方法。版权声明:本文为CSDN博主「血之一族1120」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。如果我们在项目中同时使用了MapStruct和Lombok,那么就需要严格控制MapStruct和Lombok的工作顺序。程序员往往都是懒惰的,因此,为了提升开发效率,Lombok得到了广泛的应用。于 2022-11-09 16:18:34 发布。
2023-03-10 16:27:29 361
转载 千万注意:线上慎用 BigDecimal ,坑的差点被开了
在需要精确的小数计算时再使用BigDecimal,BigDecimal的性能比double和float差,在处理庞大,复杂的运算时尤为明显。故一般精度的计算没必要使用BigDecimal。尽量使用参数类型为String的构造函数。BigDecimal都是不可变的(immutable)的, 在进行每一次四则运算时,都会产生一个新的对象 ,所以在做加减乘除运算时要记得要保存操作后的值。
2023-03-10 15:05:57 1337
转载 经典案例:SpringBoot+redis 模拟10W人秒杀抢购
java资讯发表于福建收录于合集#redis6个#springboot13个#秒杀抢购1个本篇内容主要讲解的是redis分布式锁,这个在各大厂面试几乎都是必备的,下面结合模拟抢单的场景来使用她;本篇不涉及到的redis环境搭建,快速搭建个人测试环境,这里建议使用docker;本篇内容节点如下:jedis的nx生成锁如何删除锁模拟抢单动作(10w个人开抢)
2023-03-10 14:04:16 181
转载 面试官:Redis和Mysql如何保证数据一致性?
Read Through 和 WriteThrough 的流程类似,只是在客户端查询数据A时,如果缓存中数据A失效了(过期或被驱逐淘汰),则缓存会同步去数据库中查询数据A,并缓存起来,再返回给客户端。可见,最后缓存中的数据A和数据库中的数据A是一致的,理论上可能会出现一小段时间数据不一致,不过这种概率也比较低,大部分的业务也不会有太大的问题。可见,最后缓存中的数据A跟数据库中的数据A是不一致的,缓存中的数据A是旧的脏数据。客户端1 更新缓存中数据A,缓存同步更新数据库中数据A,再返回结果。
2023-03-10 08:39:12 84
转载 京东三面:怎么给详情页做性能优化的?
关于锁粒度:就是你要锁的范围有多大,不管是synchronized还是redis分布式锁,只需要在临界资源处加锁即可,不涉及共享资源的,不必要加锁,就好比你要上卫生间,只需要把卫生间的门锁上就可以,不需要把客厅的门也锁上。我们都用过数据库连接池,线程池等,这就是池思想的体现,它们解决的问题就是避免重复创建对象或创建连接,可以重复利用,避免不必要的损耗,毕竟创建销毁也会占用时间。变换思路,更高一级思考问题,站在接口设计者的角度去开发需求,会避免很多这样的问题,也是降本增效的一种行之有效的方式。
2023-03-10 08:38:39 83
转载 Spring 中经典的 9 种设计模式,打死也要记住啊!
其特点是,spring会在使用getBean()调用获得该bean时,会自动调用该bean的getObject()方法,所以返回的不是factory这个bean,而是这个bean.getOjbect()方法的返回值。通过Spring接口的暴露,在实例化bean的阶段我们可以进行一些额外的处理,这些额外的处理只需要让bean实现对应的接口即可,那么spring就会在bean的生命周期调用我们实现的接口来处理该bean。spring中的单例模式完成了后半句话,即提供了全局的访问点BeanFactory。
2023-03-10 08:36:32 39
转载 MySQL中,21个写SQL的好习惯
你的字段,尤其是表示枚举状态时,如果含义被修改了,或者状态追加时,为了后面更好维护,需要即时更新字段的注释。,高并发下性能更好,所以呢,没有特殊要求(即Innodb无法满足的功能如:列存储,存储空间数据等)的情况下,所有表必须使用Innodb存储引擎。
2023-03-10 08:35:58 39
转载 SpringBoot集成Knife4j接口管理工具
原创 CodeLeader发表于陕西收录于合集#SpringBoot19个1、导入依赖包2、配置Knife4j3、放行Knife4j的请求4、使用Knife4j注解5、实现效果平时开发项目都用的是Swagger2或者Swagger3,但是这两个UI看起来不是很舒服,今天看到了Knife4j,它对Swagger进行了增强,有很多个性化需求。官网地址:https://doc.xiaominfo.com/
2023-03-10 08:33:04 1135
转载 一次非常有意思的 SQL 优化经历:从 30248.271s 到 0.001s
https://mp.weixin.qq.com/s/VpIMJeuxa-0PVw3OCPOYQQ
2023-03-09 09:03:22 36
转载 对于SpringBoot中@Value注解,你了解多少,又都用过哪些数据类型?
https://mp.weixin.qq.com/s/JE_M_nXeW9xSBq3M4b-3qA
2023-03-09 08:59:54 468
转载 EasyExcel带格式多线程导出百万数据(实测好用)
https://mp.weixin.qq.com/s/pxoDTgQTnh9wH_Ic6i9cfQ
2023-03-09 08:53:34 597
转载 为什么 MyBatis 源码中,没有我那种 if···else
https://mp.weixin.qq.com/s/MiPC1h1o782FqSes76oy1g
2023-03-08 09:19:57 84
转载 Spring Cloud Gateway夺命连环10问?
https://mp.weixin.qq.com/s/YdMQTVH8vqKnWXyRXxTmag
2023-03-08 09:09:16 68
转载 别再用 BeanUtils 了,这款 PO VO DTO 转换神器不香么?
https://mp.weixin.qq.com/s/kKoydBmRsHCpptXcG3WzXQ
2023-03-08 08:56:31 57
转载 CompletableFuture实现多线程异步任务编排实战
https://mp.weixin.qq.com/s/O3i0m2hR_y38_E4A1C2JHw
2023-03-08 08:55:17 99
转载 SpringBoot利用ThreadPoolTaskExecutor多线程批量插入百万级数据
https://mp.weixin.qq.com/s/JEnV4huhaokqDKqF4kATIQ
2023-03-08 08:52:43 662
转载 面试官:从 MySQL 读取 100w 数据进行处理,应该怎么做?
https://mp.weixin.qq.com/s/ZkjjNytjQ4tp0Yz9Jk2AvA
2023-03-08 08:51:49 107
转载 Spring Boot 可以同时处理多少请求?
https://mp.weixin.qq.com/s/ZUSH3uVOyIIxyDhv_Ttbxw
2023-03-07 09:13:23 251
转载 IDEA懒人必备插件,自动生成单元测试,太爽了!
https://mp.weixin.qq.com/s?__biz=Mzg5MzgxMTIyOQ==&mid=2247506831&idx=1&sn=2754e58225d42c264d16da020c8d1fdb&chksm=c02bb4fdf75c3debddf95899b4f5ccbbfd04a339a606b4ad25b574038a5c748c6850ce005884&scene=126&sessionid=1678149990&subscene=227&key=91b81d1e95fbb925d3
2023-03-07 08:58:02 1844
转载 你也对阅读源码感兴趣,说说我是如何阅读Nacos源码的
https://mp.weixin.qq.com/s/4pVWPRKGwy9MpEzGL4rgLA
2023-03-07 08:44:48 132
转载 select for update行锁or表锁,20个场景分析,还真得看情况
https://mp.weixin.qq.com/s/Bc9dJdOOLafVwudf-zis4g
2023-03-07 08:41:30 2570
转载 扒去Spring事件监听机制的外衣,竟然是观察者模式
https://mp.weixin.qq.com/s/pD9uji1LxGxEs8UXR3piIw
2023-03-07 08:36:42 85
转载 Java设计模式——建造者模式,从入门到精通,建议收藏!
https://mp.weixin.qq.com/s/fukZGeW6WWOOjFQtABE1QA
2023-03-07 08:34:30 201
springmvc+mybatis+mysql+log4j.xml+logjdbc+maven+nexus+dubbo
2017-05-10
springmvc+mybatis+mysql+log4jdbc+excel 实现sql日志输出和excel导出
2017-05-09
权限管理系统
2013-03-23
航空订票系统(jsp+java+sqlserver+spring+servlet+strut)
2011-07-12
新闻发布系统(jsp+ajax+oracle+java+javascript)
2011-07-10
物流信息网(jsp+sqlserver+servlet+strut)
2011-07-09
企业电子商城系统(jsp+servlet +strut+sqlserver)
2011-07-09
购物系统(shopping)用到的技术有(jsp+servlet+java+sqlerver+strut)
2011-07-09
网上书店系统(java+sqlserver+jsp+servlet+strut+spring)
2011-07-09
火车站售票系统.(java+oracle+jsp+javascript)
2011-07-09
接口的详解,是你很容易学习接口
2011-03-08
interface使用
2011-02-06
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人