author avatar

阿飞

限流的方式-几种限流算法的介绍与对比

简述java限流大体可以分为3个方面。合法性验证码黑名单容器限流tomcatnginx算法限流固定时间窗口算法滑动时间窗口算法漏桶算法令牌桶算法算法限流固定时间窗口这是限流算法中最简单也是最暴力的一种朴素算法。既然我们的目标是让APP在一分钟内只能被调用N次。那么我们便可以统计这一分钟内接口被调用的

分布式锁的几种常见实现方式

数据库乐观锁实现方式用表中一行记录来表示锁,其中表示锁的字段采用唯一约束当多个线程同时执行插入语句时,只有一个能插入成功,可以认为获得到了锁,其他则会报错:ERROR 1062 (23000): Duplicate entry ‘1’ for key ‘uiq_idx_resource’),这种情况

LRU算法

LRU算法简述LRU是Least Recently Used的缩写,即最近最少使用,是一种常用的页面置换算法,选择最近最久未使用的页面予以淘汰。 该算法赋予每个页面一个访问字段,用来记录一个页面自上次被访问以来所经历的时间t,当须淘汰一个页面时,选择现有页面中其t 值最大的,即最近最少使用的页面予以

Spring的启动流程--注解方式启动

Spring的启动流程--注解方式启动1. 创建AnnotationConfigApplicationContext1.1 创建beanFactorythis.beanFactory = new DefaultListableBeanFactory();1.2 创建Readerthis.reader

策略模式

spring boot运行非web项目

前言一直以来,一直使用springboot来创建基于web的项目,今天突然想到,springboot是否可以用于非web项目的使用。非web运行办法启动类main方法后面执行@SpringBootApplicationpublic class StudyLockApp { public sta

Mysql查询优化

查询执行流程如图所示,mysql的查询一般分为如下步骤:客服端发送一条查询给服务器服务器先检查查询缓存,如果命中缓存,则立刻返回存储在缓存中的结果。否则进入下一个阶段。服务器端进行SQL解析、预处理,在由优化器生成对应的执行计划。MySQL根据优化器生成的执行计划,调用存储引擎的API来执行查询将结

Redis笔记-数据类型

基本数据类型及应用场景类型简介特性场景String(字符串)二进制安全可以包含任何数据,比如jpg图片或者序列化的对象,一个键最大能存储512M---Hash(字典)键值对集合,即编程语言中的Map类型适合存储对象,并且可以像数据库中update一个属性一样只修改某一项属性值(Memcached中需

CAP定理

概述1998年,加州大学的计算机科学家 Eric Brewer 提出,分布式系统有三个指标。ConsistencyAvailabilityPartition tolerance这三个指标不可能全部做到。Partition tolerance分区容错性大多数分布式系统都分布在多个子网络。每个子网络就叫

Java注解-元注解

元注解@Retentionpublic @interface Retention { /** * Returns the retention policy. * @return the retention policy */ RetentionPolicy val