<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[康志兴的博客]]></title><description><![CDATA[coding是一种生活方式]]></description><link>https://blog.youkuaiyun.com/kansting</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; kansting]]></copyright><item><title><![CDATA[JVM经典垃圾回收器的运行机制和原理]]></title><link>https://blog.youkuaiyun.com/kansting/article/details/129667082</link><guid>https://blog.youkuaiyun.com/kansting/article/details/129667082</guid><author>kansting</author><pubDate>Mon, 20 Mar 2023 14:43:25 +0800</pubDate><description><![CDATA[从JVM内存模型聊到JVM中经典的垃圾回收器的运行机制]]></description><category></category></item><item><title><![CDATA[栈上分配和TLAB的区别]]></title><link>https://blog.youkuaiyun.com/kansting/article/details/127403295</link><guid>https://blog.youkuaiyun.com/kansting/article/details/127403295</guid><author>kansting</author><pubDate>Wed, 19 Oct 2022 10:41:34 +0800</pubDate><description><![CDATA[栈上分配是指线程创建私有对象时，在栈上创建而非堆，从而提升创建对象和清理对象的效率。而TLAB和PLAB是为了解决堆中对象创建时同步争抢问题。]]></description><category></category></item><item><title><![CDATA[统一管理jar包版本的工具: Maven BOM]]></title><link>https://blog.youkuaiyun.com/kansting/article/details/127288245</link><guid>https://blog.youkuaiyun.com/kansting/article/details/127288245</guid><author>kansting</author><pubDate>Wed, 12 Oct 2022 18:35:10 +0800</pubDate><description><![CDATA[如果你需要在微服务架构下，统一管理多个服务的jar包版本，那么可以尝试使用bom]]></description><category></category></item><item><title><![CDATA[代码评审的价值和规范]]></title><link>https://blog.youkuaiyun.com/kansting/article/details/127136957</link><guid>https://blog.youkuaiyun.com/kansting/article/details/127136957</guid><author>kansting</author><pubDate>Sat, 01 Oct 2022 20:14:16 +0800</pubDate><description><![CDATA[代码评审是一项具有长期价值的工作，并且对评审双方都具备价值。不要惧怕提出问题，这更容易提高你对问题的认知，如果最终发现你提出的问题是错误的，这对你也是一项难得的提高。更不要拒绝修改问题，即使这些问题在你看来微不足道，反复的正向行为形成惯性，更容易提高工作质量。]]></description><category></category></item><item><title><![CDATA[通过构建可观测性进行故障治理]]></title><link>https://blog.youkuaiyun.com/kansting/article/details/126928705</link><guid>https://blog.youkuaiyun.com/kansting/article/details/126928705</guid><author>kansting</author><pubDate>Mon, 19 Sep 2022 10:32:17 +0800</pubDate><description><![CDATA[在微服务流行的大趋势下，建设系统的可观测性逐渐成为研发过程中必不可少的环节，可观测性可以让我们在不了解系统内部运行机制的情况下了解系统在做什么。]]></description><category></category></item><item><title><![CDATA[分布式限流算法及方案介绍]]></title><link>https://blog.youkuaiyun.com/kansting/article/details/126560538</link><guid>https://blog.youkuaiyun.com/kansting/article/details/126560538</guid><author>kansting</author><pubDate>Sat, 27 Aug 2022 19:00:50 +0800</pubDate><description><![CDATA[极致的优化，就是将硬件使用率提高到100%，但永远不会超过100%]]></description><category></category></item><item><title><![CDATA[InnoDB中普通索引和唯一索引的区别]]></title><link>https://blog.youkuaiyun.com/kansting/article/details/126369693</link><guid>https://blog.youkuaiyun.com/kansting/article/details/126369693</guid><author>kansting</author><pubDate>Tue, 16 Aug 2022 16:51:08 +0800</pubDate><description><![CDATA[普通索引和唯一索引在使用上差别在于保证索引的唯一性,二者差别主要体现在普通索引能够通过change buffer来提高更新时的性能。]]></description><category></category></item><item><title><![CDATA[JVM常见问题排查方案]]></title><link>https://blog.youkuaiyun.com/kansting/article/details/126369072</link><guid>https://blog.youkuaiyun.com/kansting/article/details/126369072</guid><author>kansting</author><pubDate>Tue, 16 Aug 2022 16:31:56 +0800</pubDate><description><![CDATA[JVM常见问题分析方式，CPU飙高、内存可用不足等]]></description><category></category></item><item><title><![CDATA[分布式数据复制的意义和挑战 -《DDIA》第五章]]></title><link>https://blog.youkuaiyun.com/kansting/article/details/126339007</link><guid>https://blog.youkuaiyun.com/kansting/article/details/126339007</guid><author>kansting</author><pubDate>Mon, 15 Aug 2022 00:40:02 +0800</pubDate><description><![CDATA[当一个数据节点出现问题不能响应请求时，系统仍可以通过将请求打到其他数据节点上来保证系统的整体可用性，这就需要数据复制技术。]]></description><category></category></item><item><title><![CDATA[数据分区的问题和策略 -《DDIA》第六章]]></title><link>https://blog.youkuaiyun.com/kansting/article/details/124410060</link><guid>https://blog.youkuaiyun.com/kansting/article/details/124410060</guid><author>kansting</author><pubDate>Mon, 25 Apr 2022 17:56:20 +0800</pubDate><description><![CDATA[关于数据分区相关的方案和问题]]></description><category></category></item><item><title><![CDATA[JVM如何判断对象是否可以被回收]]></title><link>https://blog.youkuaiyun.com/kansting/article/details/123869480</link><guid>https://blog.youkuaiyun.com/kansting/article/details/123869480</guid><author>kansting</author><pubDate>Thu, 31 Mar 2022 13:21:09 +0800</pubDate><description><![CDATA[欢迎访问原文地址来阅读最新版本
转载请注明出处：http://kang.fun/gc-root
个人博客：kang.fun

判断对象是否可以被回收的方式
要分辨一个对象是否可以被回收，有两种方式：引用计数法和可达性算法。
1. 引用计数法
就是在对象被引用时，计数加1，引用断开时，计数减1。那么一个对象的引用计数为0时，说明这个对象可以被清除。
这个算法的问题在于，如果A对象引用B的同时，B对象也引用A，即循环引用，那么虽然双方的引用计数都不为0，但如果仅仅被对方引用实际上没有存在的价值，应该被GC掉。.]]></description><category></category></item><item><title><![CDATA[InnoDB中的锁]]></title><link>https://blog.youkuaiyun.com/kansting/article/details/123729656</link><guid>https://blog.youkuaiyun.com/kansting/article/details/123729656</guid><author>kansting</author><pubDate>Fri, 25 Mar 2022 10:38:12 +0800</pubDate><description><![CDATA[一、锁的类型
Mysql可以按照粒度划分为表锁和行锁

表锁范围大，上锁慢，并发低
行锁仅锁索引，上锁慢，并发高

InnoDB的行锁是针对索引加的锁，不是针对记录加的锁。
而行锁又分为排他锁和共享锁

共享锁（S）：允许获得该锁的事务读取数据行（读锁），同时允许其他事务获得该数据行上的共享锁，并且阻止其他事务获得数据行上的排他锁。
排他锁（X）：允许获得该锁的事务更新或删除数据行（写锁），同时阻止其他事务取得该数据行上的共享锁和排他锁。

表锁和行锁同时存在就会带来一个问题，如果要申请表锁的时候如何确定当]]></description><category></category></item><item><title><![CDATA[Redis基础知识]]></title><link>https://blog.youkuaiyun.com/kansting/article/details/123717089</link><guid>https://blog.youkuaiyun.com/kansting/article/details/123717089</guid><author>kansting</author><pubDate>Thu, 24 Mar 2022 17:48:15 +0800</pubDate><description><![CDATA[1. Redis有哪些适合的场景？

Session共享(单点登录)
页面缓存
队列
排行榜/计数器
发布/订阅

2. Redis回收进程如何工作的？
一个客户端运行了新的命令，添加了新的数据。
Redis检查内存使用情况，如果大于maxmemory的限制, 则根据设定好的策略进行回收。
3. Redis回收使用的是什么算法？
引用计数算法
对于创建的每一个对象都有一个与之关联的计数器，垃圾回收时，计数器为0的对象将被回收，并将该对象引用的其他对象的计数器减一。
LRU算法
最近最少使用（Least Re]]></description><category></category></item><item><title><![CDATA[InnoDB的事务和崩溃恢复]]></title><link>https://blog.youkuaiyun.com/kansting/article/details/123709668</link><guid>https://blog.youkuaiyun.com/kansting/article/details/123709668</guid><author>kansting</author><pubDate>Thu, 24 Mar 2022 14:09:38 +0800</pubDate><description><![CDATA[什么是ACID？什么又是MVCC？]]></description><category></category></item><item><title><![CDATA[关系型数据库和文档型数据库差别 -《DDIA》第二章]]></title><link>https://blog.youkuaiyun.com/kansting/article/details/123709527</link><guid>https://blog.youkuaiyun.com/kansting/article/details/123709527</guid><author>kansting</author><pubDate>Thu, 24 Mar 2022 14:05:09 +0800</pubDate><description><![CDATA[欢迎访问原文地址来阅读最新版本
转载请注明出处：http://kang.fun/kind-of-database
1. 数据联结方式
在表示一对一和一对多的数据联结上，二者差别在于存储方式不同：
关系型数据库通过数据键联结，文档型数据库通常采用嵌套的方式将相关数据存储在一起。
表示多对一和多对多时，也没有明显不同：都是采用唯一标识符来进行引用。该标识符在关系模型中称为外键，在文档模型中称为文档引用。
2. 查询场景不同带来的性能差异
存储方式的不同，也带来查询性能的不同：
如果查询某项业务相关的完整数据，在]]></description><category></category></item><item><title><![CDATA[使用Docsify零成本快速搭建个人博客]]></title><link>https://blog.youkuaiyun.com/kansting/article/details/123655665</link><guid>https://blog.youkuaiyun.com/kansting/article/details/123655665</guid><author>kansting</author><pubDate>Tue, 22 Mar 2022 11:13:09 +0800</pubDate><description><![CDATA[原文地址：http://kang.fun/docsify
转载请注明出处

什么是docsify
docsify是GitHub上开源的快速搭建博客网站的项目
有别于Hexo等，docsify的特点是不需要将md文件转化成html，而是在运行时解析markdown文件渲染成html网页
最关键的是: 它非常适合与GitHub Pages集成
这是我通过docsify + GitHub Pages搭建的个人博客：https://kangzhixing.github.io/k-doc/
如何搭建
1. 安装do.]]></description><category></category></item><item><title><![CDATA[Redis Cluster集群方式]]></title><link>https://blog.youkuaiyun.com/kansting/article/details/123655399</link><guid>https://blog.youkuaiyun.com/kansting/article/details/123655399</guid><author>kansting</author><pubDate>Tue, 22 Mar 2022 11:04:36 +0800</pubDate><description><![CDATA[原文地址：http://kang.fun/redis-cluster
转载请注明出处

1 部署方式
至少为3主3从，以保证可靠性，比如下面这种部署架构：

2 如何负载均衡
cluster采用hash槽方式进行key和redis实例的匹配，共2^14个槽，即16384个槽。
集群中，每个redis主节点都负责一部分槽，从节点仅冷备作用。
当redis设置值时，槽公式如下：
slot = CRC16(key) &amp; 16383

每个节点和槽的映射关系手动配置，如：




redis节点
负责的槽.]]></description><category></category></item><item><title><![CDATA[JIT编译器的运作方式]]></title><link>https://blog.youkuaiyun.com/kansting/article/details/123654568</link><guid>https://blog.youkuaiyun.com/kansting/article/details/123654568</guid><author>kansting</author><pubDate>Tue, 22 Mar 2022 11:00:25 +0800</pubDate><description><![CDATA[原文地址：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]]></description><category></category></item><item><title><![CDATA[数据库的索引类别 -《DDIA》第三章]]></title><link>https://blog.youkuaiyun.com/kansting/article/details/123653520</link><guid>https://blog.youkuaiyun.com/kansting/article/details/123653520</guid><author>kansting</author><pubDate>Tue, 22 Mar 2022 10:12:30 +0800</pubDate><description><![CDATA[一、哈希索引并发控制删除记录崩溃恢复优点缺点二、LSM-Tree索引工作流程三、B-Tree索引数据插入流程B-Tree的不可靠性B-Tree的优化四、LSM-Tree和B-Tree的对比磁盘存放结构写入操作事务实现五、其他索引结构1. 在索引中储存值2. 多列索引3. 全文搜索和组合索引4. 内存数据库内存数据库的持久化问题
一、哈希索引
由于Hash查询时O(1)的特性，非常适合用来缩短查询路径。
数据插入时......]]></description><category></category></item></channel></rss>