![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
整理笔记
刘狗
这个作者很懒,什么都没留下…
展开
-
Zookeeper源码分析之启动流程及选举过程讲解
ZK启动流程:# 入口方法QuorumPeerMain.main(); # 核心实现,分三步走 QuorumPeerMain.initializeAndRun(args); # 第一步;解析配置 config = new QuorumPeerConfig(); config.parse(args[0]); Properties cfg = new Properties(); cfg.load(in); parseProperties(cf原创 2020-12-15 22:02:52 · 428 阅读 · 0 评论 -
哈希,二叉树,红黑树,B树,B+树,LSM树等数据结构做索引比较
哈希索引哈希索引:hash索引的随机查找的时间复杂度为O(1).可以一次定位。索引hash索引的查询效率很高,但是弊端就是对于单个查找比如等值查找很方便。因为哈希索引比较的就是就行hash运算后的hash值。但是如果是范围查找,哈希过后的hash值和要查找的范围大部分情况下是不连续的,所以会慢。二叉树索引二叉树索引:二叉树不适合做索引结构,二叉树做索引结构树的高度会越来越高,索引单边增长。会导致查询时间复杂度为O(n)。尤其是二叉树不平衡的时候深度可达到N。则复杂度为O(n)。my..原创 2020-10-08 14:26:23 · 669 阅读 · 0 评论 -
十种GC垃圾回收器
分代serial和serial old1.serial和serial old <!--jdK3,4的时候使用的--> 单线程执行,串行serial(年轻代,copying) : 单线程,需要gc时会停止工作线程,stw(stop-the-world) ,gc完之后在继续工作。serial old(老年代 mark-sweep/mark-compact) : 单线程,当需要gc的时候,需要停止工作线程,stw,gc之后继续工作缺点:单线程,stw时间会很...原创 2020-10-08 14:23:27 · 1258 阅读 · 2 评论 -
java 数据结构笔记
前言数据结构就是指一组数据的存储结构,算法就说操作数据的一组方法。数据结构和算法相辅相成。数据结构为算法服务,算法则需要作用在指定数据结构之上。复杂度数据结构与算法解决的问题是如何更快,更省的存储和处理数据,那么我们就需要一个考量资源消耗和效率的方法,就说复杂度分析。从低阶到高阶的复杂度有:O(1)、O(logn)、O(n)、O(nlogn)、O(n2)。时间复杂度概念介绍表示算法的执行时间与数据规模之间的关系称为时间复杂度所有代码的执行时间T(n)和每行代码...原创 2020-09-11 17:06:07 · 325 阅读 · 0 评论 -
maxwell/canal 对比
maxwellmaxwell实现原理其实就是会在数据源端的库默认maxwell生成对应的position信息,通过记录binlog的position位点来实现断点还原。当然我们也可以手动更新数据库position位置。maxwell库中还会有table,schema,bootstrap表,其中bootstrap可以进行表引导操作。canal而canal则是单纯的依靠binlog解析将数据发送到kafka或其他组件。(1.1.*已经支持es,redis,kafka,web界面等多功能)c原创 2020-08-08 12:20:01 · 6393 阅读 · 0 评论 -
kafka 高级深入知识点总结
producer生产者原理 producer是线程安全的。 生产者客户端由两条线程协调运行,分别是主线程和sender线程(发送线程)。 主线程通过KafkaProducer创建消息,然后通过拦截器,序列化器,分区器(默认DefaultPartitioner,默认进行hash求分区,如果key为null,就通过轮询方式发往可用的分区中)的作用之后将消息缓存到消息累加器中。消息累加器用来缓存消息,后续sender线程从消息累加器中获取缓存的消息进行IO操作,写入到页缓存中。消息累加...原创 2020-08-01 11:22:02 · 3669 阅读 · 0 评论