回到主页

FengLeticia

What else can I do ?

技术笔记

45 篇公开文章
全部分类 · 最新发布

多线程使用 - Async+CompletableFuture

多线程 Async ​ @Async(value = "指定自定义Bean线程池") [根据不同的业务可以使用不同的线程池来做异步处理] ​ 如果不指明使用的线程池,在SpringBoot 2.1.0之前默认使用的是SimpleAsyncTaskExecutor [一次性的异步执行器] 会随着请求数量的增加创建越来越多的线程,没有线程管理、也没有任务队列,很容易就会导致OOM(类似于直接通过Exe

阅读全文 ↗

数据库资源卡顿查询SQL

Mysql 查询某个时间段内数据库执行记录之中,SQL性能、内存消耗、定时器等待时间、索引情况、排序情况等信息的SQL SELECT SCHEMA_NAME AS '模式名', DIGEST_TEXT AS '查询文本', QUERY_SAMPLE_TEXT AS '简易查询文本', SUM_ROWS_AFFECTED AS '总影响的行数', SUM_ROWS_SENT AS '返回行数总和',

阅读全文 ↗

MVCC

前排提醒,该笔记其实已经过时,有一个更新的对MVCC机制和相关Mysql技术介绍更加完整的个人笔记,如有需要请参考Mysql - Innodb 隔离级别的实现 (MVCC、锁机制) - LeticiaFENG Note 如还要参看一下笔记请注意,仅供参考且只涉及MVCC MVCC技术主要涉及以下几个点: 隐藏字段:Innodb实际上对所有行数据都加了三个隐藏的字段,分别是:DB_TRX_ID (用

阅读全文 ↗

基于Redis的幂等实现方案 Demo

接口请求幂等唯一性 web项目暴露接口在前端页面的时候,在前端页面进行使用的时候,无可避免的会出现重复请求 / 恶意请求消耗服务器资源的情况。毕竟你没办法保证网络上的每个人都像个人。 除了需要保证接口请求的幂等性以外,我们还要需要对某些特殊的接口做一定的限制,这些限制的使用场景如下:特别是现在的服务资源有较大的概率是购买第三方的服务来提供的,比如手机短信验证码这一类资源,就更有必要去限制用户的请求

阅读全文 ↗

常见的设计模式

概述 本笔记主要记载笔者自身比较常见的设计模式。如果要查其他的请自行跳转搜索引擎。 该笔记目前包含以下设计模式的介绍: 创建型的:单例、原型、工厂(简单工厂、工厂方法、抽象工厂) 结构性的:代理、外观 行为型的:责任链、迭代器、模板、策略 创建型模式 单例模式 单例模式的核心是保证在程序之中唯一的创建单个对象提供使用。总所周知,Java之中创建对象的方式有四种:1.new、2.clone、3.反射

阅读全文 ↗

枚举类

概述 ​ 枚举类就是Java之中一种特殊的类,它具有固定的实例数量,在编译阶段就已经固定,而无法在运行阶段改变的类,并且枚举类往往会只具有一些固定的取值,所以往往很适合充当状态码类型的类。然而因为枚举类的特殊性,所以枚举类除了以上的描述以外还在单例模式的创建下有着重要的作用(最好的单例模式实现方法) 解析 ​ 对于枚举类的解析直接看下图代码和执行结果即可。 enum SampleEnum impl

阅读全文 ↗

指令重排

概述 ​ 简单的来说就是,出于硬件执行效率方面的考虑,为了进一步提升软件的执行效率,使其更快的将我们的程序执行完毕,除了我们自身代码的编写以外,在执行之前还会将我们程序之中的执行重新打散,将不需要注意数据依赖之间的代码的执行顺序重新打乱(以结果最快的方式来执行),而也因此会导致我们的程序执行和我们所想不一致。 例子 ​ 为了方便理解,这里引入更加具体的例子来帮助理解。(仅提供程序方面的示例作为例子

阅读全文 ↗

SpringCloud

架构的发展 单一式 -> 垂直式 -> 分布式 -> SOA流式 -> 微服务 单一式就是普通的全部功能都在一个项目中的情况 垂直式是缺少相互调用的核心的一种架构设计 分布式架构其实就是将多种不同的服务相互之间拆开,拆开后,负责不同功能的主机,某一个功能可以有多台主机共同负责 SOA流式,SOA流式对比普通的分布式架构,主要区别在于内部不同服务的主机之间进行交流是通过共同的总线来实现的,因此但是这

阅读全文 ↗

微服务基本概念

CAP理论 ​ CAP理论指的是分布式系统下的三个基本特征,一般来说分布式系统最多只能拥有这三个特征之中的唯二两项,并不能同时拥有三个特征,因为往往具有其中两个特征之后就会对其他特征产生互斥的情况 C: Consistency(一致性) A:Availability(可用性) P:Partition Tolerance(分区容错性) ①C**一致性:**对于客户端的每次读操作,要么读到的是最新的数

阅读全文 ↗

Optional的使用

Optional判空 首先需要记住Optional的一些方法 第一批方法:产生Optional对象的方法empty()、of(obj)、ofNullable(obj) empty() 创建一个空的Optional (如果是空) Optional <Object> empty = Optional.empty(); of() 创建一个非空的Optional,如果传入的参数是null则抛出NullPo

阅读全文 ↗

来点音乐?

Stay Alive
Stay Alive
00:00 / 00:00
你好,欢迎来看看。
当前分区暂无公开文章。