自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(66)
  • 资源 (4)
  • 收藏
  • 关注

原创 基于redis+lua进行限流的方法

1,首先我们redis有很多限流的算法(比如:令牌桶,计数器,时间窗口)等,但是都有一定的缺点,令牌桶在单项目中相对来说比较稳定,但是在分布式集群里面缺显的不那么友好,这时候,在分布式里面进行限流的话,我们则可以使用redis+lua脚本进行限流,能抗住亿级并发。第五:写个配置类,在启动的时候将我们的lua脚本代码加载到redisscript中。打开idea的插件市场,然后搜索lua,点击右边的安装,然后安装好了,重启即可。2,下面说说lua+redis进行限流的做法。第六:redis执行lua的方法。

2023-03-16 15:15:54 957 1

原创 lua脚本+redis实现限流

标注了@RateLimiter注解的方法,在执行方法前调用lua脚本,把自己的类名+方法名当做key传入,判断返回值是否大于设定的阈值,大于则抛出异常不再向下执行,异常由全局异常处理器处理。将key、time、count作为参数传入lua脚本,执行脚本,判断返回值为空或者或者返回值大于设定的count,抛出异常,由全局异常处理器处理,方法不再往下执行,达到了限流的效果。最后,我们来看一看若依是怎么写lua脚本的,在脚本在redis的配置类RedisConfig.java。count:限流次数。

2023-03-16 15:12:37 874

原创 SpringBoot集成Redis - Redis分布式锁的实现之Jedis(setNXPX+Lua)

分布式锁相关的内容请参考分布式系统 - 分布式锁及实现方案(具体看分布式系统 - 分布式锁及实现方案中Redis实现分布式锁的部分)加锁: set NX PX + 重试 + 重试间隔向Redis发起如下命令:其中,"productId"由自己定义,可以是与本次业务有关的id,"0xx9p03001"是一串随机值,必须保证全局唯一(原因在后文中会提到),“NX"指的是当且仅当key(也就是案例中的"productId:lock”)在Redis中不存在时,返回执行成功,否则执行失败。

2023-03-16 14:57:59 704

原创 SpringBoot接口 - 如何实现接口限流之分布式

等,默认为按照方法)

2023-03-16 14:54:22 492

原创 SpringBoot接口 - 如何实现接口限流之单实例

*** method.*//*** <p>*//***//***/异常的处理/***/@Slf4j/***/?/***/

2023-03-16 14:53:36 1189 1

原创 分布式系统 - 分布式锁及实现方案

要介绍分布式锁,首先要提到与分布式锁相对应的是线程锁、进程锁。线程锁:主要用来给方法、代码块加锁。当某个方法或代码使用锁,在同一时刻仅有一个线程执行该方法或该代码段。线程锁只在同一JVM中有效果,因为线程锁的实现在根本上是依靠线程之间共享内存实现的,比如synchronized是共享对象头,显示锁Lock是共享某个变量(state)。进程锁:为了控制同一操作系统中多个进程访问某个共享资源,因为进程具有独立性,各个进程无法访问其他进程的资源,因此无法通过synchronized等线程锁实现进程锁。分布式锁。

2023-03-16 14:50:27 219

原创 SpringBoot接口 - 如何保证接口幂等

幂等原先是数学中的一个概念,表示进行1次变换和进行N次变换产生的效果相同。当我们讨论接口的幂等性时一般是在说:以相同的请求调用这个接口一次和调用这个接口多次,对系统产生的影响是相同的。如果一个接口满足这个特性,那么我们就说这个 接口是一个幂等接口。接口幂等和防止重复提交是一回事吗?严格来说,并不是。幂等: 更多的是在重复请求已经发生,或是无法避免的情况下,采取一定的技术手段让这些重复请求不给系统带来副作用。防止重复: 提交更多的是不让用户发起多次一样的请求。

2023-03-16 14:49:28 235

原创 SpringBoot接口 - 如何访问外部接口

在SpringBoot接口开发中,存在着本模块的代码需要访问外面模块接口或外部url链接的需求, 比如调用外部的地图API或者天气API。那么有哪些方式可以调用外部接口呢?

2023-03-16 14:48:19 749

原创 SpringBoot接口 - 如何提供多个版本接口

Mapping版本匹配支持三层版本v1.1.1 (大版本.小版本.补丁版本)v1.1 (等同于v1.1.0)v1 (等同于v1.0.0)@Slf4j/***/@Getter/***/@Override@Override@Override++idx;= 0)?

2023-03-16 14:34:48 831

原创 SpringBoot接口 - 如何参数校验国际化

软件的国际化:软件开发时,要使它能同时应对世界不同地区和国家的访问,并针对不同地区和国家的访问,提供相应的、符合来访者阅读习惯的页面或数据。国际化又称为 i18n:internationalization在Resources下添加如下:填写名称和资源语言类型添加中英文对应的message。

2023-03-16 14:28:34 259

转载 springsecurity自定义角色权限授权

springsecurity自定义角色权限授权

2023-02-16 09:01:33 1143

转载 Spring Security 实现动态权限菜单方案

Spring Security 实现动态权限菜单方案

2023-02-16 08:54:55 604

转载 SpringSecurity 动态配置权限

SpringSecurity 动态配置权限

2023-02-16 08:41:34 257

原创 MetaObject的具体使用

MetaObject的具体使用

2023-02-13 19:22:52 322

原创 JS实现千分位分隔符

JS实现千分位分隔符

2022-12-20 10:39:13 805

原创 windows下nginx隐藏HTTP 请求头文件中的Server信息

windows下nginx隐藏HTTP 请求头文件中

2022-12-16 18:39:55 1935

原创 Mysql数据库设置表权限

Mysql数据库设置表权限

2022-12-14 13:14:03 5328

原创 SpringSecurity 自定义PermissionEvaluator进行数据权限校验和访问限制

SpringSecurity 自定义PermissionEvaluator进行数据权限校验和访问限制

2022-12-14 13:07:29 1116

原创 SpringBoot整合Redis动态切换Redis库

SpringBoot动态切换Redis库

2022-12-13 16:46:32 1168 1

原创 Springboot实现分片上传,分片下载(断点下载)

Springboot分片上传,断点续传,分片下载,断点下载

2022-12-08 18:15:28 2482 1

原创 Base64与BLOB互相转换

Base64与Blob互相转换

2022-12-08 15:20:58 7386

原创 SQLSERVER 查看表、存储过程、耗时查询、当前进程、开销较大的语句

SQLSERVER 查看表、存储过程、耗时查询、当前进程、开销较大的语句

2022-11-16 19:10:24 1502

原创 十个强大的 React 工具

十个强大的 React 工具

2022-08-28 18:20:35 1080

转载 JS实现千分位分隔符

千分位分隔符JS

2022-08-14 15:13:08 1666

原创 自定义js函数工具库

自定义js函数工具库

2022-07-30 11:37:18 206

原创 带大家如何实现一个手写 Promise

带大家实现一个自定义promise

2022-07-24 13:55:17 412

原创 原型链理解图

什么是原型链

2022-07-24 13:26:16 106

原创 实现三列布局,中间自适应,两边等宽 - 圣杯布局

实现三列布局,中间自适应,两边等宽 - 圣杯布局

2022-07-22 09:21:29 84

原创 实现三列布局,中间自适应,两边等宽 -双飞翼布局

实现三列布局,中间自适应,两边等宽 -双飞翼布局

2022-07-22 09:16:08 115

原创 什么是BFC?BFC的触发条件?BFC能解决什么问题?

什么是BFC?BFC的触发条件?BFC能解决什么问题?

2022-07-22 08:40:43 292

转载 Java实现10个经典排序算法

Java实现10个经典排序算法

2022-07-18 14:43:53 671

原创 字符串工具类 & 字符串格式化

字符串工具类 & 字符串格式化

2022-07-11 14:26:57 309

原创 SpringBoot实现接口签名防止篡改(V2)

SpringBoot实现接口签名防止篡改

2022-07-09 18:58:14 1547

原创 SpringBoot自定义注解校验

SpringBoot自定义注解校验

2022-06-15 16:58:17 2832

原创 常用cron表达式

0/2 * * * * ? 表示每2秒 执行任务(数值不能超过60,如超过好像会按最大上限执行每60秒执行一次,即最多每60秒执行一次,错误表达0/120 * * * * ?,并不会每120秒,执行一次,如需要请转化为分钟)0 0/2 * * * ? 表示每2分钟 (数值不能超过60,缘由同上)0 0 0/2 * * ? 表示每2小时 执行任务(数值不能超过24,缘由同上)0 0 2 1 * ? 表示在每月的1日的凌晨2点调整任务0 15 10 ? * MON-...

2022-03-19 13:06:54 6963

转载 VirtualBox使用vagrant快速搭建系统环境

VirtualBox使用vagrant快速搭建系统环境等_Adger-CSDN博客VirtualBox快速搭建系统环境在以前没看尚硅谷的谷粒商城的时候,在虚拟机搭建系统环境,都是自己去下载一个几G的镜像,浪费时间,现在不用了准备工作1.已经下载好了VirtualBox,相当于Vmware不过这个完全免费开始搭建1.下载并安装Vagrant,可以快速的帮我们做好系统环境Vagrant根据自己电脑系统下载在浏览器里面下载比较慢,但是迅雷里面比较快,下载完成之后点击打开我同意,下一步更改目录盘符,下一步安装等待安

2021-11-20 16:56:23 74

原创 SpringBoot接口统一签名校验实践

本文实现了接口请求签名校验,时间戳判断,响应数据返回签名等内容。这个签名校验,和返回签名可以用多种方法实现。本文通过aop 方式去实现自定义注解体/** * @author xxx */@Retention(value = RetentionPolicy.RUNTIME)public @interface SignatureValidation {}aop实现/** * @author xxx */@Aspect@Componentpubli.

2021-11-16 17:55:58 4750

转载 JS设为首页

<script type="text/javascript"> function SetHome(obj, vrl) { try { obj.style.behavior = 'url(#default#homepage)'; obj.setHomePage(vrl); } catch(e) { if (window.netscape) { try {...

2021-09-10 09:52:11 1054

原创 SpringBoot整合OAuth2

1. OAuth2.0介绍OAuth(开放授权)是一个开放标准,允许用户授权第三方应用访问他们存储在另外的服务提供者上的信息,而不需要将用户名和密码提供给第三方应用或分享他们数据的所有内容。OAuth2.0是OAuth协议的延续版本,但不向后兼容OAuth 1.0即完全废止了OAuth1.0。很多大公司如Google,Yahoo,Microsoft等都提供了OAUTH认证服务,这些都足以说明OAUTH标准逐渐成为开放资源授权的标准。Oauth协议目前发展到2.0版本,1.0版本过于复杂,2.0版本已得到

2021-09-04 16:53:06 13691 6

原创 Spring的事务是如何回滚的?

Spring的事务管理是如何实现的? spring的事务是由aop来实现的,首先要生成具体的代理对象,然后按照aop的整套流程来执行具体的操作逻辑,正常情况下要通过通知来完成核心功能,但是事务不能通过通知来实现的,而是通过一个TransactionInterceptor来实现的,然后调用invoke来实现具体的逻辑。1.先做准备工作,解析各个方法上事务的相关属性,...

2021-09-01 08:47:37 3394

对称加密、非对称加密、摘要、数字签名算法

java常见对称加密、非对称加密、摘要、数字签名算法

2022-07-22

springCloud.xmind

this basic on springcloud the Core component基于springcloud的核心组件;

2019-11-09

c语言之俄罗斯方块

c语言开发的贪吃蛇游戏,还有许多不足之处,经供参考!

2018-01-06

java_sql数据库驱动

数据库sqlserver驱动,java连接sqlserver数据库的核心驱动

2018-01-06

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除