自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

康志兴的博客

coding是一种生活方式

  • 博客(19)
  • 资源 (1)
  • 收藏
  • 关注

原创 JVM经典垃圾回收器的运行机制和原理

从JVM内存模型聊到JVM中经典的垃圾回收器的运行机制

2023-03-20 14:43:25 335

原创 栈上分配和TLAB的区别

栈上分配是指线程创建私有对象时,在栈上创建而非堆,从而提升创建对象和清理对象的效率。而TLAB和PLAB是为了解决堆中对象创建时同步争抢问题。

2022-10-19 10:41:34 231

原创 统一管理jar包版本的工具: Maven BOM

如果你需要在微服务架构下,统一管理多个服务的jar包版本,那么可以尝试使用bom

2022-10-12 18:35:10 530 2

原创 代码评审的价值和规范

代码评审是一项具有长期价值的工作,并且对评审双方都具备价值。不要惧怕提出问题,这更容易提高你对问题的认知,如果最终发现你提出的问题是错误的,这对你也是一项难得的提高。更不要拒绝修改问题,即使这些问题在你看来微不足道,反复的正向行为形成惯性,更容易提高工作质量。

2022-10-01 20:14:16 253

原创 通过构建可观测性进行故障治理

在微服务流行的大趋势下,建设系统的可观测性逐渐成为研发过程中必不可少的环节,可观测性可以让我们在不了解系统内部运行机制的情况下了解系统在做什么。

2022-09-19 10:32:17 1433

原创 分布式限流算法及方案介绍

极致的优化,就是将硬件使用率提高到100%,但永远不会超过100%

2022-08-27 19:00:50 1223

原创 InnoDB中普通索引和唯一索引的区别

普通索引和唯一索引在使用上差别在于保证索引的唯一性,二者差别主要体现在普通索引能够通过change buffer来提高更新时的性能。

2022-08-16 16:51:08 266

原创 JVM常见问题排查方案

JVM常见问题分析方式,CPU飙高、内存可用不足等

2022-08-16 16:31:56 479

原创 分布式数据复制的意义和挑战 -《DDIA》第五章

当一个数据节点出现问题不能响应请求时,系统仍可以通过将请求打到其他数据节点上来保证系统的整体可用性,这就需要数据复制技术。

2022-08-15 00:40:02 130

原创 数据分区的问题和策略 -《DDIA》第六章

关于数据分区相关的方案和问题

2022-04-25 17:56:20 214

原创 JVM如何判断对象是否可以被回收

欢迎访问原文地址来阅读最新版本转载请注明出处:http://kang.fun/gc-root个人博客:kang.fun判断对象是否可以被回收的方式要分辨一个对象是否可以被回收,有两种方式:引用计数法和可达性算法。1. 引用计数法就是在对象被引用时,计数加1,引用断开时,计数减1。那么一个对象的引用计数为0时,说明这个对象可以被清除。这个算法的问题在于,如果A对象引用B的同时,B对象也引用A,即循环引用,那么虽然双方的引用计数都不为0,但如果仅仅被对方引用实际上没有存在的价值,应该被GC掉。.

2022-03-31 13:21:09 2442

原创 InnoDB中的锁

一、锁的类型Mysql可以按照粒度划分为表锁和行锁表锁范围大,上锁慢,并发低行锁仅锁索引,上锁慢,并发高InnoDB的行锁是针对索引加的锁,不是针对记录加的锁。而行锁又分为排他锁和共享锁共享锁(S):允许获得该锁的事务读取数据行(读锁),同时允许其他事务获得该数据行上的共享锁,并且阻止其他事务获得数据行上的排他锁。排他锁(X):允许获得该锁的事务更新或删除数据行(写锁),同时阻止其他事务取得该数据行上的共享锁和排他锁。表锁和行锁同时存在就会带来一个问题,如果要申请表锁的时候如何确定当

2022-03-25 10:38:12 639

原创 Redis基础知识

1. Redis有哪些适合的场景?Session共享(单点登录)页面缓存队列排行榜/计数器发布/订阅2. Redis回收进程如何工作的?一个客户端运行了新的命令,添加了新的数据。Redis检查内存使用情况,如果大于maxmemory的限制, 则根据设定好的策略进行回收。3. Redis回收使用的是什么算法?引用计数算法对于创建的每一个对象都有一个与之关联的计数器,垃圾回收时,计数器为0的对象将被回收,并将该对象引用的其他对象的计数器减一。LRU算法最近最少使用(Least Re

2022-03-24 17:48:15 592

原创 InnoDB的事务和崩溃恢复

什么是ACID?什么又是MVCC?

2022-03-24 14:09:38 1501

原创 关系型数据库和文档型数据库差别 -《DDIA》第二章

欢迎访问原文地址来阅读最新版本转载请注明出处:http://kang.fun/kind-of-database1. 数据联结方式在表示一对一和一对多的数据联结上,二者差别在于存储方式不同:关系型数据库通过数据键联结,文档型数据库通常采用嵌套的方式将相关数据存储在一起。表示多对一和多对多时,也没有明显不同:都是采用唯一标识符来进行引用。该标识符在关系模型中称为外键,在文档模型中称为文档引用。2. 查询场景不同带来的性能差异存储方式的不同,也带来查询性能的不同:如果查询某项业务相关的完整数据,在

2022-03-24 14:05:09 955

原创 使用Docsify零成本快速搭建个人博客

原文地址:http://kang.fun/docsify转载请注明出处什么是docsifydocsify是GitHub上开源的快速搭建博客网站的项目有别于Hexo等,docsify的特点是不需要将md文件转化成html,而是在运行时解析markdown文件渲染成html网页最关键的是: 它非常适合与GitHub Pages集成这是我通过docsify + GitHub Pages搭建的个人博客:https://kangzhixing.github.io/k-doc/如何搭建1. 安装do.

2022-03-22 11:13:09 1320

原创 Redis Cluster集群方式

原文地址:http://kang.fun/redis-cluster转载请注明出处1 部署方式至少为3主3从,以保证可靠性,比如下面这种部署架构:2 如何负载均衡cluster采用hash槽方式进行key和redis实例的匹配,共2^14个槽,即16384个槽。集群中,每个redis主节点都负责一部分槽,从节点仅冷备作用。当redis设置值时,槽公式如下:slot = CRC16(key) & 16383每个节点和槽的映射关系手动配置,如:redis节点负责的槽.

2022-03-22 11:04:36 876

原创 JIT编译器的运作方式

原文地址:http://kang.fun/jit转载请注明出处文章目录一、编译模式Client compiler1. 方法内联2. 去虚拟化3. 冗余消除Server complier逃逸分析1. 标量替换2. 栈上分配3. 同步削除OSR(On Stack Replace)二、Sun JDK为什么不在启动时即编译三、使用编译执行的时机1. 调用计数器2. 回边计数器一、编译模式Sun JDK在执行过程中,对执行频率高到代码进行编译,对执行不频繁的代码则继续采用解释的方式。在编译上,Sun JDK

2022-03-22 11:00:25 336

原创 数据库的索引类别 -《DDIA》第三章

一、哈希索引并发控制删除记录崩溃恢复优点缺点二、LSM-Tree索引工作流程三、B-Tree索引数据插入流程B-Tree的不可靠性B-Tree的优化四、LSM-Tree和B-Tree的对比磁盘存放结构写入操作事务实现五、其他索引结构1. 在索引中储存值2. 多列索引3. 全文搜索和组合索引4. 内存数据库内存数据库的持久化问题一、哈希索引由于Hash查询时O(1)的特性,非常适合用来缩短查询路径。数据插入时......

2022-03-22 10:12:30 931

空空如也

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

TA关注的人

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