2020年11月30日

PriorityBlockingQueue 源码分析

摘要: 之前分析过ArrayBlockingQueue,它的特点是 1 有限,不会扩容 2 严格的先进先出 今天要介绍的PriorityBlockingQueue,正好突破了这两点,第一它是无限的,第二它是根据元素的大小进行排序的的队列 排序所使用的算法是堆排序,而且是小顶堆,也就是说值越小越优先 补充一下 阅读全文

posted @ 2020-11-30 18:20 MaXianZhe 阅读(99) 评论(0) 推荐(0) 编辑

Synchronized可以保证共享变量的可见性

摘要: Synchronized实现可见性原理 解决第一个因素:在加锁前会将工作内存的值全部重新加载一遍,保证最新;释放锁前将工作内存的值全部更新到主存;由于在带锁期间,没有其他线程能访问本线程正在使用的共享变量,这样就保证了可见性。 解决第二个因素: 由于Synchronized修饰的代码块都是原子性执行 阅读全文

posted @ 2020-11-30 17:27 MaXianZhe 阅读(592) 评论(0) 推荐(0) 编辑

Kafka控制器相关

摘要: 在 Kafka 集群中会有一个或多个 broker,其中有一个 broker 会被选举为控制器( Kafka Controller ),它负责管理整个集群中所有分区和副本的状态。当某个分区的 leader 副本出现故障时,由控制器负责为该分区选举新的 leader 副本。当检测到某个分区的 ISR 阅读全文

posted @ 2020-11-30 15:47 MaXianZhe 阅读(66) 评论(0) 推荐(0) 编辑

Kafka值follow同步原理1

摘要: 假设某个分区有 3 个副本: leader、 follower1和 follower2,它们都在分区的 ISR 集合中 。 为了简化说明,这里我们不考虑 ISR 集合伸缩的情况 。 Kafka 在收到客户端的生产请求( ProduceRequest)后 ,将消息 3 和消息 4 写入 leader 阅读全文

posted @ 2020-11-30 15:18 MaXianZhe 阅读(244) 评论(0) 推荐(0) 编辑

KAFKA LEO&HW基本概念

摘要: 原文地址 https://www.cnblogs.com/youngchaolin/p/12641463.html LEO&HW基本概念 Base Offset:是起始位移,该副本中第一条消息的offset,如下图,这里的起始位移是0,如果一个日志文件写满1G后(默认1G后会log rolling) 阅读全文

posted @ 2020-11-30 15:15 MaXianZhe 阅读(164) 评论(0) 推荐(0) 编辑

ArrayBlockingQueue 源码解析

摘要: BlockingQueue也是JUC的重要知识,而且包含的BlockingQueue的种类还比较多,本篇先分析ArrayBlockingQueue ,主要分为三部分 1 创建 2 放数据 3 取数据 一 创建 public ArrayBlockingQueue(int capacity) { thi 阅读全文

posted @ 2020-11-30 14:04 MaXianZhe 阅读(124) 评论(0) 推荐(0) 编辑

导航