自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Kafka为何这么快

kafka为何这么快:参考资料:https://shiyueqi.github.io/2017/04/27/Kafka-Pagecache%E5%8E%9F%E7%90%86/https://zhuanlan.zhihu.com/p/69554144Page Cache(页缓存)零拷贝,kafka是通过sendfile机制实现,避免数据在用户态和内核态切换,全部都在内核态实现数据传输。参考资料:https://www.jianshu.com/p/028cf0008ca5磁盘顺序写...

2021-02-26 09:29:56 112 1

原创 MyBatis框架

Mybatis主要成员MyBatis框架及原理分析MyBatis 是支持定制化 SQL、存储过程以及高级映射的优秀的持久层框架,其主要就完成2件事情:封装JDBC操作利用反射打通Java类与SQL语句之间的相互转换Configuration MyBatis所有的配置信息都保存在Configuration对象之中,配置文件中的大部分配置都会存储到该类中SqlSession 作为MyBatis工作的主要顶层API,表示和数据库交互时的会话,完成必要数据库增删改查功能

2021-01-14 10:46:18 97

原创 缓存和数据库一致性

数据一致性要求没那么严重,先更新数据库,然后更新缓存,同时缓存中时间设置有效期。通过订阅binlog来更新缓存,阿里的canal中间件

2021-01-13 11:43:12 106

原创 反射和动态代理

反射反射是指程序在运行期间可以获取类的所有信息。动态代理根据被代理类,通过类加载加载到JVM方法区中生成对应类的描述信息,然后根据被代理的方法生成一个新的方法即增强后的方法JDK动态代理jdk动态代理是基于反射机制生成一个实现代理接口的匿名类,生成类的速度快,后面操作慢,只能针对接口代理。CGLIB动态代理cglib动态代理是基于字节码,其通过继承被代理类,然后通过字节码增强技术修改被代理类字节码,生成增强类。...

2021-01-13 10:50:07 126 1

原创 mysql索引之B树和B+树

标题参考资料: https://zhuanlan.zhihu.com/p/268818605https://cloud.tencent.com/developer/article/1543335mysql存储引擎数据存储单位是页,一页默认数据16k,在页数据固定情况下,一页存储的节点数越多,树深度越小,查询越快。B树叶子节点和非叶子节点都存储了数据,而B+树只有叶子节点存储了数据,非叶子节点仅仅存储了索引key和指针,同时叶子节点数据是用链表连接,这样B+树深度会变小查询变快。同时又由于叶子节点用链表

2021-01-11 22:34:22 237

原创 内存和栈溢出问题定位

内存泄露和栈溢出问题定位内存泄露栈溢出内存泄露内存使用率在90%以上,通过监控工具apm查看到一台虚拟机上应用频繁在发生了全局GC(FullGC),导致应用假死,不在接受请求。此时登录虚拟机内存dumpps -ef | grep appName,获取进程ID/usr/local/jdk/bin/jmap -dump:format=b,file=m.hprof pid(进程号)使用mat分析dump文件参考资料:https://blog.csdn.net/alli0968/article/de

2020-10-07 10:10:27 959

原创 Lock和synchronized,CAS简述及资料总结

// unsafe.compareAndSwapInt(arg0, arg1, arg2, arg3)// arg0, arg1, arg2, arg3 分别是目标对象实例,目标对象属性偏移量,当前预期值,要设的值 int ageOffset = 12; // 修改内存偏移地址为12的值(age),返回true,说明通过内存偏移地址修改age的值成功 //state的值表示其状态:如果是0,那么当前还没有线程独占此变量;否在就是已经有线程独占了这个变量,也就是代表已经有线

2020-09-06 21:37:32 404

原创 线程池、Callable、Runnable简述

线程池:https://blog.csdn.net/weixin_42765975/article/details/106163487Callable Runnable Threadhttps://developer.aliyun.com/article/604983

2020-09-01 23:36:19 341

原创 熔断、降级、限流和Redis雪崩、穿透、击穿描述

熔断Hystrix、降级保证核心功能比如:抢购可以占时限流评论,将流量让给秒杀业务;https://zhuanlan.zhihu.com/p/61363959雪崩、击穿https://www.liangzl.com/get-article-detail-182580.htmlredis雪崩(数据批量过期,过期时间设置不要集中,比如:随机在一个时间区间)、穿透(大量无效key恶意攻击,数据库中没有对应数据。每次查询都将数据在缓存中缓存一份,同时业务层面做限流)、击穿(大量数据请求同一个key,即热点数据

2020-09-01 22:43:39 1938

原创 jdk1.8 HashMap基本原理简介

HashMap简介##HashMap非线程安全,jdk1.8对hashmap进行了优化,数据结构有数组+链表,改为数组+链表+红黑树Ctrl+Shift +G

2020-08-28 22:03:04 199

原创 Volatile可见性、主内存简介

Volatile可见性、主内存简介主内存和工作内存1. volatile的作用2. volatile修饰数组主内存和工作内存Java内存模型的主要目标是定义程序中各个变量的访问规则,即在虚拟机中将变量存储到内存和从内存中取出变量这样的底层细节。**此处Java内存模型的变量(Variables)与Java编程中所说的变量有所区别,它包括了实例字段、静态字段和构成数组对象的元素,但不包括局部变量与方法参数,因为后者是线程私有的,不会被共享,自然就不会存在竞争问题。**为了获得较好的执行效能,Java内存模

2020-08-28 09:24:53 356

原创 SpringBoot 2.3 整合最新版 ShardingJdbc + Druid + MyBatis 实现分库分表

https://www.cnblogs.com/lyosaki88/p/springboot_shardingjdbc_druid_mybatis.html

2020-07-30 22:23:27 417 1

空空如也

空空如也

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

TA关注的人

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