servlet
摘要:servlet的本质是什么,它是如何工作的? - 知乎 (zhihu.com)
阅读全文
切面编程
摘要:SpringBoot 面向切面编程_springboot切面编程-CSDN博客 SpringbootAOP切面编程_springboot切面编程-CSDN博客 切入点签名是什么意思 切入点签名是一个包含名字和任意参数的方法签名,用于指定切入点和哪些方法进行匹配 。 在AspectJ风格的AOP中,切
阅读全文
Redis持久化机制详解(下)
摘要:1、Redis 不同于 Memcached 的很重要一点就是,Redis 支持持久化,而且支持 3 种持久化方式: 快照(snapshotting,RDB) 只追加文件(append-only file, AOF) RDB 和 AOF 的混合持久化(Redis 4.0 新增) 2、什么是 RDB 持
阅读全文
我司用了 6 年的 Redis 分布式限流器
摘要:我司用了 6 年的 Redis 分布式限流器,可以说是非常厉害了! (qq.com) 一、限流方案 1、计数器 Java内部也可以通过原子类计数器AtomicInteger、Semaphore信号量来做简单的限流。 2、漏桶算法 漏桶算法思路很简单,我们把水比作是请求,漏桶比作是系统处理能力极限,水
阅读全文
基于 Redis 实现分布式锁
摘要: 分布式锁常见实现方案总结 | JavaGuide 1、分布式锁的用途:分布式系统下,不同的服务/客户端通常运行在独立的 JVM 进程上。如果多个 JVM 进程共享同一份资源的话,使用本地锁就没办法实现资源的互斥访问了 从图中可以看出,这些独立的进程中的线程访问共享资源是互斥的,同一时刻只有一个线
阅读全文
3种常用的缓存读写策略详解
摘要:JavaGuide (gitee.io) 1、Cache Aside Pattern(旁路缓存模式) 比较适合读请求比较多的场景。 Cache Aside Pattern 中服务端需要同时维系 db 和 cache,并且是以 db 的结果为准。 下面我们来看一下这个策略模式下的缓存读写步骤。 写:
阅读全文
Redis常见总结(上)
摘要:1、说一下 Redis 和 Memcached 的区别和共同点 现在公司一般都是用 Redis 来实现缓存,而且 Redis 自身也越来越强大了 共同点 : 都是基于内存的数据库,一般都用来当做缓存使用。 都有过期策略。 两者的性能都非常高。 区别 : Redis 支持更丰富的数据类型(支持更复杂的
阅读全文
Web 实时消息推送
摘要:总结 以下内容为 JavaGuide 补充 介绍优点缺点 短轮询 客户端定时向服务端发送请求,服务端直接返回响应数据(即使没有数据更新) 简单、易理解、易实现 实时性太差,无效请求太多,频繁建立连接太耗费资源 长轮询 与短轮询不同是,长轮询接收到客户端请求之后等到有数据更新才返回请求 减少了无效请求
阅读全文
定时任务
摘要:JavaGuide (gitee.io) 定时任务实战:Spring Job?Quartz?XXL-Job?年轻人才做选择,艿艿全莽~ (qq.com) 单机定时任务技术选型 1、Timer 内部使用一个叫做 TaskQueue 的类存放定时任务,它是一个基于最小堆实现的优先级队列。TaskQueu
阅读全文
权限系统设计详解
摘要:业界权限系统的设计方式 目前业界主流的权限模型有两种,下面分别介绍下: 基于角色的访问控制(RBAC) 基于属性的访问控制(ABAC) ABAC 模型 基于属性的访问控制(Attribute-Based Access Control,简称 ABAC) 是一种比 RBAC模型 更加灵活的授权模型,它的
阅读全文
SSO 单点登录详解
摘要:1、用户登录状态的存储与校验 常见的 Web 框架对于 Session 的实现都是生成一个 SessionId 存储在浏览器 Cookie 中。然后将 Session 内容存储在服务器端内存中,这个 ken.io 在之前Session 工作原理中也提到过。整体也是借鉴这个思路。 用户登录成功之后,生
阅读全文
自动装配
摘要:什么是 SpringBoot 自动装配? 我们现在提到自动装配的时候,一般会和 Spring Boot 联系在一起。但是,实际上 Spring Framework 早就实现了这个功能。Spring Boot 只是在其基础上,通过 SPI 的方式,做了进一步优化。 SpringBoot 定义了一套接口
阅读全文
认证授权JWT
摘要:JWT 1、从 JWT 的全称可以看出,JWT 本身也是 Token,一种规范化之后的 JSON 结构的 Token。 JWT 自身包含了身份验证所需要的所有信息,因此,我们的服务器不需要存储 Session 信息。这显然增加了系统的可用性和伸缩性,大大减轻了服务端的压力(因为session还需要保
阅读全文
Spring 中的设计模式详解
摘要:1、控制反转(IoC)和依赖注入(DI) IoC 是一个原则,而不是一个模式,以下模式(但不限于)实现了 IoC 原则。 控制反转怎么理解呢? 举个例子:"对象 a 依赖了对象 b,当对象 a 需要使用 对象 b 的时候必须自己去创建。但是当系统引入了 IOC 容器后, 对象 a 和对象 b 之前就
阅读全文
Spring 事务详解
摘要:JavaGuide (gitee.io) 1、Spring 事务管理接口介绍 Spring 框架中,事务管理相关最重要的 3 个接口如下: **PlatformTransactionManager**: (平台)事务管理器,Spring 事务策略的核心。 **TransactionDefinitio
阅读全文
并发重要知识点—线程池详解
摘要:https://blog.csdn.net/qq_40270751/article/details/78843226 创建线程的另一种方法是实现Runnable接口。Runnable接口中只有一个run()方法,它非Thread类子类的类提供的一种激活方式。一个类实现Runnable接口后,并不代表
阅读全文
定时任务及异步,自定义注解进行参数校验
摘要:简单来说: 浅拷贝:对基本数据类型进行值传递,对引用数据类型进行引用传递般的拷贝,此为浅拷贝 深拷贝: 对基本数据类型进行值传递,对引用数据类型,创建一个新的对象,并复制其内容,此为深拷贝。 如何在 Spring/Spring Boot 中优雅地做参数校验? springboot项目使用valida
阅读全文
MybatisPlus
摘要:springboot-guide/docs/MyBatisPlus.md at master · CodingDocs/springboot-guide (github.com) 1、mybatis查数据库,可以看到 id 是一串相当长的数字,这是什么意思呢?提前剧透一下,这其实是分布式 id,那又
阅读全文
SpringBoot enter door_过滤器及拦截器
摘要:过滤器 springboot-guide/docs/basis/springboot-filter.md at master · CodingDocs/springboot-guide (github.com) 1、Filter 介绍(过滤器并不是拦截器,所以设置url模式只是过了这些模式的url进
阅读全文
SpringBoot enter door基础_配springBoot项目,读取配置,配置全局异常捕获
摘要:1、Spring 是重量级企业开发框架 Enterprise JavaBean(EJB) 的替代品,Spring 为企业级 Java 开发提供了一种相对简单的方法,通过 依赖注入 和 面向切面编程 ,用简单的 Java 对象(Plain Old Java Object,POJO) 实现了 EJB 的
阅读全文
Spring/Spring Boot 常用注解总结
摘要:1、我们可以把 @SpringBootApplication看作是 @Configuration、@EnableAutoConfiguration、@ComponentScan 注解的集合 2、@RestController vs @Controller (qq.com) @RestControll
阅读全文
Spring 常见总结
摘要:面试被问了几百遍的 IoC 和 AOP ,还在傻傻搞不清楚? (qq.com) 1、什么是 IoC IoC (Inversion of control )控制反转/反转控制。它是一种思想不是一个技术实现。描述的是:Java 开发领域对象的创建以及管理的问题。 例如:现有类 A 依赖于类 B 传统的开
阅读全文
RestFul API
摘要:RESTful API 可以让你看到 URL+Http Method 就知道这个 URL 是干什么的,让你看到了 HTTP 状态码(status code)就知道请求结果如何。 像咱们在开发过程中设计 API 的时候也应该至少要满足 RESTful API 的最基本的要求(比如接口中尽量使用名词,使
阅读全文
git小知识
摘要:1、集中化的版本控制系统,存在下面的问题: 单点故障: 中央服务器宕机,则其他人无法使用;如果中心数据库磁盘损坏又没有进行备份,你将丢失所有数据。本地版本控制系统也存在类似问题,只要整个项目的历史记录被保存在单一位置,就有丢失所有历史更新记录的风险。 必须联网才能工作: 受网络状况、带宽影响。 2、
阅读全文
10分钟看懂Docker和K8S
摘要:10分钟看懂Docker和K8S - 知乎 (zhihu.com) 大家需要注意,Docker本身并不是容器,它是创建容器的工具,是应用容器引擎。 Docker技术的三大核心概念,分别是: 镜像(Image) 容器(Container) 仓库(Repository) 我刚才例子里面,那个放在包里的“
阅读全文
脚本小知识一
摘要:【脚本编程】Shell脚本零基础入门_shell脚本入门_互联网小阿祥的博客-CSDN博客 文件创建默认是没有执行权限的,所以要给加上权限:chmod u+x sh结尾的文件。 注意:shell脚本运行不一定需要解释器,有些脚本没有解释器也可以运行 2.2.常见的符号 > #输出重定向(覆盖) >>
阅读全文
菜鸟-1 shell介绍
摘要:1、你可以使用 man [命令] 来查看各个命令的使用文档,如 :man cp vim 命令 :命令行模式按u撤销上一次操作 2、本教程关注的是 Bash,也就是 Bourne Again Shell,由于易用和免费,Bash 在日常工作中被广泛使用。同时,Bash 也是大多数Linux 系统默认的
阅读全文
脚本小知识二
摘要:shell 使用sed去除换行以及去除空格 去除换行: sed ":a;N;s/\n//g;ta" result 去除所有空格 sed s/[[:space:]]//g result Linux命令echo -e_51CTO博客_echo linux命令 Linux命令echo -e:参数-e解释是
阅读全文
MySQL三大日志,mvcc、DateTime 类型等
摘要:1、MySQL事务隔离级别详解 解决幻读的方法 解决幻读的方式有很多,但是它们的核心思想就是一个事务在操作某张表数据的时候,另外一个事务不允许新增或者删除这张表中的数据了。解决幻读的方式主要有以下几种: 将事务隔离级别调整为 SERIALIZABLE 。 在可重复读的事务级别下,给事务操作的这张表添
阅读全文
MySQL索引详解
摘要:1、联合索引 使用表中的多个字段创建索引,就是 联合索引,也叫 组合索引 或 复合索引。 以 score 和 name 两个字段建立联合索引: ALTER TABLE `cus_order` ADD INDEX id_score_name(score, name); 2、最左前缀匹配原则 最左前缀匹
阅读全文
MySQL高性能优化规范建议总结
摘要:1、优先选择符合存储需要的最小的数据类型,因为存储字节越小,占用也就空间越小,性能也越好。 a.某些字符串可以转换成数字类型存储比如可以将 IP 地址转换成整型数据。 b.对于非负型的数据 (如自增 ID,整型 IP,年龄) 来说,要优先使用无符号整型来存储。 c.小数值类型(比如年龄、状态表示如
阅读全文
git学习
摘要:一,git基础 1、git基础命令 2、进行历史版本切换 git reset --hard commit的id 3、如下,checkout后,head会指向切换后的分支;并且你如果看着工作目录的话,的确会发现checkout后工作目录是随着当前分子走的 这里说的指向提交的代码版本,对啊,Master
阅读全文
操作系统常见总结
摘要:为什么要使用多线程? 先从总体上来说: 从计算机底层来说: 线程可以比作是轻量级的进程,是程序执行的最小单位,线程间的切换和调度的成本远远小于进程。另外,多核 CPU 时代意味着多个线程可以同时运行,这减少了线程上下文切换的开销。 从当代互联网发展趋势来说: 现在的系统动不动就要求百万级甚至千万级的
阅读全文
计算机网络
摘要:1、网络层: 分类的 IP 地址由网络号字段(指明网络)和主机号字段(指明主机)组成。网络号字段最前面的类别指明 IP 地址的类别。IP 地址是一种分等级的地址结构。IP 地址管理机构分配 IP 地址时只分配网络号,主机号由得到该网络号的单位自行分配。路由器根据目的主机所连接的网络号来转发分组。一个
阅读全文
sql基础
摘要:1、使用 WHERE 和 HAVING 过滤数据 SELECT cust_name, COUNT(*) AS num FROM Customers WHERE cust_email IS NOT NULL GROUP BY cust_name HAVING COUNT(*) >= 1; having
阅读全文
mysql基础
摘要:1、SQL语句在MySQL中的执行过程 MySQL 主要分为 Server 层和引擎层,Server 层主要包括连接器、查询缓存、分析器、优化器、执行器,同时还有一个日志模块(binlog),这个日志模块所有执行引擎都可以共用,redolog 只有 InnoDB 有。 引擎层是插件式的,目前主要包括
阅读全文