2021年9月30日

singleflight是如何避免缓存击穿的?

摘要: 前言 singleflight 做为一个香喷喷的小工具,平时开发过程中,在不同场景结合不同的回源策略来做并发控制。传言singleflight仅仅用了百行代码就解决了缓存击穿的问题,那么它是怎么做到的呢?今天一起来学习一下。 缓存击穿 什么是缓存击穿 平常在高并发系统中,会出现大量的请求同时查询同一 阅读全文

posted @ 2021-09-30 18:12 薛大明白 阅读(278) 评论(0) 推荐(0) 编辑

2021年6月27日

从IO 到BIO/NIO/AIO 浅析

摘要: 背景 最近在阅读rocketMQ的源码中,涉及到多服务之间通信,而rocketMQ的通信中用了Netty框架,Netty框架又是基于NIO实现的。虽然NIO的日常中提到的很多,但是一直处于朦胧的状态,本着知其然而知其所以然的态度,在这里对IO进行一波梳理。 IO 对于IO的概念,这里不多作介绍。这个 阅读全文

posted @ 2021-06-27 21:07 薛大明白 阅读(89) 评论(0) 推荐(0) 编辑

2019年9月2日

JVM

摘要: Java中new一个对象是一个怎样的过程?JVM中发生了什么? 1. 当虚拟机遇到一条new指令时候,首先去检查这个指令的参数是否能 在常量池中能否定位到一个类的符号引用 (即类的带路径全名),并且检查这个符号引用代表的类是否已被加载、解析和初始化过,即验证是否是第一次使用该类。如果没有(不是第一次 阅读全文

posted @ 2019-09-02 10:48 薛大明白 阅读(105) 评论(0) 推荐(0) 编辑

2019年8月2日

Http

摘要: 1,http协议组成 请求: 请求行(请求方法,url,http版本 ) 请求头 请求体(请求的报文) 响应: 状态行(http版本,状态码,状态码描述) 响应头 响应体 2,http的响应码 1xx 服务器已经收到消息,正在处理 2xx 接受处理成功 3xx 要完成请求,您需要进一步进行操作 4x 阅读全文

posted @ 2019-08-02 20:55 薛大明白 阅读(639) 评论(0) 推荐(0) 编辑

2019年8月1日

Linux命令

摘要: 1,ps -A | grep java 查询所有java进程 解释一下这个命令的意思,ps 是查看系统当前进程的命令,参数 -A(注意,是大写,linux中是区分大小写的)是显示所有程序,| 这个是管道符,用来把前面的命令结果交给后面做筛选的,grep java就是通过grep筛选命令筛选出包含ja 阅读全文

posted @ 2019-08-01 08:55 薛大明白 阅读(165) 评论(0) 推荐(0) 编辑

2019年7月21日

什么时候触发MinorGC?什么时候触发FullGC?

摘要: 触发MinorGC(Young GC) 虚拟机在进行minorGC之前会判断老年代最大的可用连续空间是否大于新生代的所有对象总空间. 1、如果大于的话,直接执行minorGC 2、如果小于,判断是否开启HandlerPromotionFailure,没有开启直接FullGC 3、如果开启了Hanle 阅读全文

posted @ 2019-07-21 20:58 薛大明白 阅读(717) 评论(0) 推荐(0) 编辑

2019年7月17日

计算机网络

摘要: HTTPS和HTTP的区别主要如下: 1、https协议需要到ca申请证书,一般免费证书较少,因而需要一定费用。 2、http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议。 3、http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是44 阅读全文

posted @ 2019-07-17 11:40 薛大明白 阅读(128) 评论(0) 推荐(0) 编辑

2019年7月16日

java中的12个语法糖

摘要: 01 switch 支持 String 与枚举 从 Java 7 开始,Java 语言中的语法糖在逐渐丰富,其中一个比较重要的就是 Java 7 中 switch 开始支持 String。 在开始 coding 之前先科普下,Java 中的 swith 自身原本就支持基本类型。比如 int、char 阅读全文

posted @ 2019-07-16 10:08 薛大明白 阅读(280) 评论(0) 推荐(0) 编辑

2019年7月3日

Spring

摘要: @SpringBootApplication = @Configuration + @EnableAutoConfiguration + @ComponentScan 1)@Configuration:提到@Configuration就要提到他的搭档@Bean。使用这两个注解就可以创建一个简单的sp 阅读全文

posted @ 2019-07-03 10:35 薛大明白 阅读(126) 评论(0) 推荐(0) 编辑

2019年6月22日

多线程和锁

摘要: synchronized与Lock的区别 1,首先synchronized是java内置关键字,在jvm层面,Lock是个java类 2,synchronized无法判断是否获取锁的状态,Lock可以判断是否获取到锁; 3,synchronized会自动释放锁(a 线程执行完同步代码会释放锁 ;b 阅读全文

posted @ 2019-06-22 22:49 薛大明白 阅读(241) 评论(0) 推荐(0) 编辑

导航