自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(15)
  • 收藏
  • 关注

原创 项目重构分析

重构系统之前需要做哪些预备工作启动重构##重构系统之前需要做哪些预备工作系统业务文档的梳理1、梳理耗时严重的业务逻辑,设计优化方案,具体包括: 1、线上实时访问db读取 (1)产品服务隔离 (2)离线跑批任务 2、梳理慢sql(找dba拉取慢查询日志),走索引,最左原则(扩展explain) 3、减少无谓的DB交互,批量捞取数据 4、Redis缓存,缓存时间热加载配置,大流量是调整缓存时间 5、减少无谓的接口交互,提需求批量接口 6、批量列表逻辑开启多线程处理;2、梳理.

2020-08-27 10:19:42 324

原创 interrupt相关

interrupt && isInterrupted && interrupted && interruptException    1、interrupt:其作用是中断此线程(此线程不一定是当前线程,而是指调用该方法的Thread实例所代表的线程),但实际上只是给线程设置一个中断标志,线程仍会继续运行。    2、isInterrupted:作用是只测试此线程是否被中断 ,不清除中断状态。    3、interrupted:作用是测试当前线程是否被中断

2020-08-17 16:47:25 164

原创 kafka基础

初探kafka大数据开发面试指南Kafka基本概念保证消息的可靠性(数据丢失)kafka事物##Kafka基本概念Kafka 是一个 “数据流” 平台,能够帮助开发者更好地专注于核心业务。Kafka 支持发布和订阅数据(消息),能够将其保存,并进行处理。关键 “术语”消息(message):Kafka 的数据单元,称为 “消息”。消息由键(key)、值(value)组成,键作为元数据,是可选的,值即为消息的内容。消息写入到 Kafka 时,按照主题和分区分组,以批次(batch)的形

2020-08-13 19:30:19 184

原创 AQS解读

AQS原理AQS独占模式AQS共享模式AQS原理    AQS 核心思想是,如果被请求的共享资源空闲,则将当前请求资源的线程设置为有效的工作线程,并且将共享资源设置为锁定状态。如果被请求的共享资源被占用,那么就需要一套线程阻塞等待以及被唤醒时锁分配的机制,这个机制 AQS 是用 CLH 队列锁实现的,即将暂时获取不到锁的线程加入到队列中。    AQS 使用一个 int 成员变量state来表示同步状态,通过内置的 FIFO 队列来完成获取资源线程的排队工作。AQS 使用 CAS 对该同步状态.

2020-08-13 16:51:41 131

原创 mysql之explain详解

explain功能explain属性explain Explain可以用来查看SQL语句的执行效果,可以帮助选择更好的索引和优化查询语句,写出更好的优化语句。explain重要属性分析###type  为了保证查询至少达到range级别。最好达到ref,否则的话,只能说明这条语句性能有待提高。  system>const>eq_ref>ref(最好能达到)>fulltext>ref_or_null>index_merge>unique_subque.

2020-08-06 10:01:29 139

原创 jvm内存管理

jvm内存结构对象的创建过程jvm内存结构1、程序计数器 :当前线程所执行字节码的行号指示器线程私有作用:线程切换后能恢复到正确的执行位置jvm中唯一一个没有规定任何OOM情况的区域2、Java虚拟机栈:线程私有,生命周期与线程相同作用:存储局部变量表、操作数栈、动态链接、方法出口等。如果线程请求的栈深度大于虚拟机所允许的深度,将抛出StackOverflowError 异常;如果虚拟机栈可以动态扩展,当扩展时无法申请到足够的内存时会抛出OOM 异常3、本地方法栈:虚.

2020-06-08 14:17:49 141

原创 数据库索引的前世今生

自增主键作为表的主键索引类型主键索引比普通索引查询性能高联合索引前缀索引B+树存储自增主键作为表的主键的好处因为自增主键是连续的,在插入过程中尽量减少页分裂,即使要进行页分裂,也只会分裂很少一部分;并且自增主键也能减少数据的移动,每次插入都是插入到最后,所以自增主键作为表的主键,对于表的操作来说性能是最高的。自增主键有哪些优缺点优点数据存储空间很小;性能最好;减少页分裂。缺点:数据量过大,可能会超出自增长取值范围;无法满足分布式存储,分库分表的情况下无法合并表.

2020-05-31 20:37:07 382

原创 Redis进阶

#redis高并发场景缓存穿透缓存雪崩缓存更新策略主从同步集群架构模式优化redis性能持久化Redis的淘汰策略Redis的删除策略Bigkey内存上限缓存穿透缓存穿透是指缓存中查询一个不存在的数据,需要去数据库中获取,每次都需要DB交互,缓存失效。1. bloom filter将所有查询的参数都存储到一个 bitmap 中,在查询缓存之前,先再找个 bitmap 里面进行验证。如果 bitmap 中存在,则进行底层缓存的数据查询; 如果 bitmap 中不存在查询参数

2020-05-30 21:36:55 210

原创 初识Redis

基本特征数据类型redis事务redis pipelineString 存储结构单线程基本特征Remote Dictionary Server(远程数据服务),是一个基于内存且支持持久化的高性能 key-value 数据库。多数据结构支持内存持久化支持主从同步所有操作都是原子性的数据类型String(字符串) 一个 String 类型的 value 最大可以存储 512M; 其他数据类型支持元素个数最多为 2^32-1 个list(列表):list 是字符串列表,按照插入.

2020-05-30 17:46:13 199

原创 lombok之hashCode

#Lombok重写hashCode凶案现场场景还原Lombok @Data究竟是如何实现的呢反思凶案现场 在紧张的开发节奏下,毛十三需要对列表中id重复的对象进行去重,十三苦苦寻找,终于发现前辈们已经在中工具类中封装好了该方法,于是一行代码调用方法堪称完美的完成了需求,愉快的关机回家奋战王者峡谷。 十三奋战到深夜,在QA同学的带领下狂掉十颗星,第二天垂头丧气的来到公司,QA同学为...

2020-01-14 22:42:50 2269 1

原创 java异常处理

友好的异常处理异常处理有哪些原则Java异常处理机制介绍ErrorException异常处理机制异常处理对项目质量的影响##友好的异常处理程序使用 try…catch 进行整段代码的包括,输出了相应的错误日志,如果不是最外层调用则 catch 里不打印堆栈信息,并且 throws 了自定义异常,同时把堆栈信息带出去,最外层调用方,根据自定义异常,选择友好的提示信息给用户展...

2019-12-19 21:26:21 166

原创 Spring中BeanPostProcessor实现原理

//org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory#doCreateBean//populateBean:Bean属性赋值 this.populateBean(beanName, mbd, instanceWrapper); if (exposedObject ...

2018-09-02 21:36:56 413

原创 序列化底层原理ObjectOutputStream.writeObject()源码解读:

//java.io.ObjectOutputStream#writeObject public final void writeObject(Object obj) throws IOException { if (enableOverride) {//标志位 writeObjectOverride(obj);//这是一个空方法,用于子类实现重写...

2018-09-02 21:05:48 1444

原创 ReentranLock.unlock()实现原理

上一篇文章学习记录了ReentrantLock.lock()的实现原理,https://blog.csdn.net/chcHOPENewDay/article/details/81807806 接下来继续学习ReentrantLock.unlock()的实现原理: NonfairSync和FairSync都是直接调用的AQS的release(1)实现的AQS的release()方法如下:...

2018-08-18 15:25:01 349

原创 ReentranLock.lock()实现原理

1. 实现流程ReentrantLock.lock 锁机制内部是委托java.util.concurrent.locks.ReentrantLock.Sync.lock()实现的。java.util.concurrent.locks.ReentrantLock.Sync是抽象类,有java.util.concurrent.locks.ReentrantLock.FairSync和java.ut...

2018-08-18 12:56:15 738

空空如也

空空如也

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

TA关注的人

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