读书笔记
文章平均质量分 93
zxu_er
这个作者很懒,什么都没留下…
展开
-
ElasticSearch——详解主从模式,以及主节点的选取算法(二)
具体如下图所示:执行本流程的线程池为:generic。下面具体分析每个步骤的实现。原创 2023-04-20 13:16:12 · 723 阅读 · 3 评论 -
ElasticSearch——详解主从模式,以及主节点的选取算法(一)
每个节点计算最小的已知节点ID,该节点为临时Master。向该节点发送领导投票。如果一个节点收到足够多的票数,并且该节点也为自己投票,那么它将扮演领导者的角色,开始发布集群状态。所有节点都会参与选举,并参与投票,但只有有资格成为Master的节点(node.master为true)的投票才有效。获得多少选票可以赢得选举胜利,就是所谓的法定人数。在 ES中 , 法定大小是一个可配置的参数。。为了避免脑裂,最小值应该是有Master资格的节点数n/2+1。原创 2023-04-18 13:11:50 · 2023 阅读 · 0 评论 -
ElasticSearch——详细看看ES集群的启动流程
详细介绍了ES集群在启动过程总经历的各个流程原创 2023-04-15 21:12:36 · 1490 阅读 · 0 评论 -
ElasticSearch——详细介绍集群节点定义、索引与分片的关系,以及分片与副本
介绍es集群概念,以及节点分类和各自功能包括:主节点、分片,副本分片,数据节点、预处理节点、协调节点;原创 2023-04-13 10:54:05 · 1585 阅读 · 0 评论 -
Elasticsearch——详解ES特点,基本概念以及ES常用api操作
详解ES的基础概念,包括集群,节点,文档,类型,索引等等。介绍es的查询语句,搜索语句,全文搜索语句,高亮搜索结果以及聚合能力原创 2023-04-12 10:31:09 · 899 阅读 · 0 评论 -
Kafka系列——详解Kafka Connect以及其和客户端API之间的区别
解释了kafka connect是什么以及和客户端API的区别,两者之间如何选择;然后给出了连接器的一个小示例原创 2023-04-10 15:23:06 · 942 阅读 · 0 评论 -
Kafka系列——Kafka数据通道指南,总结遇到的以及需要考虑的问题因素
详解kafka作为数据通道的使用场景,以及作为数据通道需要考虑的各方面的因素,包括及时性、可靠性、吞吐量/动态吞吐量、数据格式、数据转换、安全性、故障处理以及耦合性和灵活性等问题原创 2023-04-10 15:20:56 · 888 阅读 · 0 评论 -
Java——详解ReentrantLock与AQS的关联以及AQS的数据结构和同步状态State
Java中大部分同步类(Lock、Semaphore、ReentrantLock等)都是基于AbstractQueuedSynchronizer(简称为 AQS)实现的。AQS 是一种提供了原子式管理同步状态、阻塞和唤醒线程功能以及队列模型的简单框架。本文会先介绍应用层,再逐渐深入介绍原理层。通过介绍ReentrantLock 的基本特性和 ReentrantLock 与 AQS 的关联,来深入解读 AQS 相关独占锁的知识点。本篇文章主要阐述 AQS 中独占锁的逻辑和 Sync Queue, 不包含原创 2023-04-07 09:54:15 · 376 阅读 · 0 评论 -
Kafka系列——详解如何使用消费者处理偏移量实现可靠性消费
详解如何使用消费者处理偏移量实现可靠性消费,如何正确提交偏移量,如何处理重试,超长任务等场景原创 2023-04-06 14:52:07 · 1341 阅读 · 0 评论 -
Kafka系列——详解如何使用和配置生产者实现可靠的消息发送
如何使用生产者使消息更可靠的发送出去呢,保证消息的可靠性,不丢失消息原创 2023-04-06 08:14:14 · 611 阅读 · 0 评论 -
Kafka系列——详解如何保证数据的可靠性
与性能一样,在系统的设计之初就应该 考虑可靠性问题,而不能在事后才来考虑。同时,可靠性是系统的一个属性,而不是一 个独立的组件,所以在讨论 Kafka 的可靠性保证时,还是要从系统的整体出发。Kafka 在数据传递可靠性方面具备很大的灵活性。我们知道,Kafka 可以被用在很多场景里,从跟踪用户点击动作到处理信用卡支付操作。有些场景要求很高的可靠性,而有些则更看重速度和简便性。Kafka 被设计成高度可配置的,而且它的客户端 API 可以满足不同程度的可靠性需求。但有时候你的系统看起来是可靠的,但实原创 2023-04-04 10:32:08 · 770 阅读 · 0 评论 -
Kafka系列——详解kafka消息的物理存储及分区分配,清理等功能
Kafka 的基本存储单元是分区。分区无法在多个 broker 间进行再细分,也无法在同一个broker 的多个磁盘上进行再细分。所以,分区的大小受到单个挂载点可用空间的限制(一个挂载点由单个磁盘或多个磁盘组成,如果配置了 JBOD就是单个磁盘,如果配置了RAID,就是多个磁盘。在配置 Kafka 的时候,管理员指定了一个——也就是 log.dirs 参数的值(不要把它与存放错误日志的目录混淆了,日志目录是配置在 log4j.properties 文件里的)。该参数一般会包含每个挂载点的目录。原创 2023-04-02 22:03:18 · 1412 阅读 · 0 评论 -
分布式与一致性——Raft算法详解
详细解释Raft算法的复制过程,选举过程,任期,以及异常情况的处理等原创 2023-03-29 09:45:44 · 642 阅读 · 0 评论 -
MySQL——详解binglog与Redo Log以及两阶段提交
详细解释binlog和redo的作用和实现,以及它的区别;同时解释了两阶段提交,以及两阶段提交的必要性,没有两阶段提交的后果等原创 2023-03-28 16:01:41 · 1141 阅读 · 0 评论 -
Go系列——GoRoutines和Channels
详细描述goroutine的使用;channel的使用,以及带缓存和无缓存channel的使用和选择;带有源码示例。以及单方向channel的使用。原创 2023-03-27 15:53:33 · 396 阅读 · 0 评论 -
Mysql——Sql查询语句的执行过程
从上层视角解释了SQL查询语句的执行过程,解释了会经过mysql的哪些组件,以及各个组件起到的作用和目的原创 2023-03-27 10:15:18 · 982 阅读 · 0 评论 -
InnoDB——详细解释锁的应用,一致性读,自增长与外键
详细说明InnoDB中锁的细节,一致性非锁定读(MVCC),锁定读,隔离界别和锁的关系,自增长列与锁,外键和锁原创 2023-03-25 20:53:58 · 528 阅读 · 3 评论 -
Kafka——深入理解请求的处理
详细介绍了Kafka中的元数据请求,生产请求以及获取请求。尤其介绍了获取请求中的多种配置,比如最大数据量,零拷贝,ISR等原创 2023-03-24 14:37:59 · 539 阅读 · 1 评论 -
Kafka系列——深入理解Kafka集群成员,控制器以及复制功能
详细介绍Kafka中集群成员之间的关系,控制器的作用以及原理(包括KRaft),以及副本间的通信,副本的分类,Leader副本和跟随着副本的交互,以及首先Leader的定义。原创 2023-03-23 17:03:56 · 484 阅读 · 0 评论 -
InnoDB——详细介绍行锁和意向锁以及相互关系
详细介绍mysql InnoDB中的行锁实现和原理:共享锁/排他锁;以及意向锁的实现和原理:意向共享锁/意向排他锁。解释行锁和意向锁的兼容关系原创 2023-03-22 22:10:23 · 287 阅读 · 0 评论 -
Kafka系列——详述消费者再平衡(均衡)监听器,消费特定位置偏移量,优雅退出消费者
详细介绍消费者的再平衡过程中的各个监听器及其调用时机;介绍如何从特定偏移位置消费数据,以及如何优雅退出轮询原创 2023-03-22 20:05:30 · 1363 阅读 · 0 评论 -
Kafka系列——详解如何提交消费者偏移量
详解kafka消费如何以及为何提交消费者偏移量,以及提交的方法:同步、异步、提交指定偏移量等原创 2023-03-21 14:18:20 · 1364 阅读 · 0 评论 -
Kafka系列——详解创建Kafka消费者及相关配置
详解kafka消费者以及消费者组;介绍分区如何分配给消费者,以及分配策略,介绍各种超时参数;介绍超时的行为,心跳发送的细节原创 2023-03-20 14:15:22 · 6410 阅读 · 0 评论 -
Kafka系列——详解消费者和消费者群组和分区的关系
要想知道如何从 Kafka 读取消息,需要先了解消费者和消费者群组的概念。详解消费者,消费者组以及分区之间的三者关系原创 2023-03-19 18:10:48 · 1659 阅读 · 0 评论 -
InnoDB——哈希算法
InnoDB中的自适应哈希,哈希算法是一种常见的时间复杂度为O(1)的算法,且不只存在于索引中,每个数据库应用中都存在该数据结构。原创 2023-03-18 22:14:54 · 351 阅读 · 1 评论 -
Kafka系列——生产者的分区,序列化,自定义拦截器以及头部信息
kafka的分区,序列化,自定义序列化源码示例;自定义拦截器,头部信息的作用原创 2023-03-18 15:21:47 · 1031 阅读 · 0 评论 -
InnoDB——B+树索引的使用
联合索引是指对表上的多个列进行索引。联合索引的创建方法与单个索引创建的方法一样,不同之处仅在于有多个索引列。索引覆盖,优化器选择,MRR优化原创 2023-03-17 12:42:22 · 365 阅读 · 0 评论 -
Kafka系列——生产者,向Kafka写入数据以及参数配置
学习如何使用 Kafka 生产者,如何创建 KafkaProducer 和 ProducerRecords 对象、如何将记录发送给 Kafka,以及如何处理Kafka 返回的错误。里面会深入介绍一些重要参数比如,acks,Message Delivery Time,max.request.size,linger.ms,buffer.memory,compression.type,max.in.flight.requests.per.connection等等原创 2023-03-16 15:31:54 · 2367 阅读 · 0 评论 -
InnoDB——详细介绍Cardinality值
详细介绍Cardinality表示索引中不重复记录数量的预估值。Cardinality的触发时机。Cardinality的计算原理。对索引的影响。原创 2023-03-15 21:15:45 · 551 阅读 · 0 评论 -
JVM系列——HotSpot虚拟机的GC算法细节实现
介绍了根节点枚举;安全点,安全区;主动式中断;卡表和记忆集;写屏障,三色标记法,增量更新和原始快照原创 2023-03-15 16:11:10 · 417 阅读 · 0 评论 -
Kafka系列——基本概念和术语
ISR, 消息,topic, offset,partition,消费者组,消费者组和partition的关系原创 2023-03-14 17:15:14 · 255 阅读 · 0 评论 -
JVM系列——垃圾收集器与内存分配策略
GCROOTS, 二次标记,F-QUEUE,分代收集,标记清除,标记整理,标记复制;年轻代,老年代;Eden,survivor区,为什么两个survivor区;引用计数与可达性分析等原创 2023-03-13 14:39:51 · 202 阅读 · 0 评论 -
C#插件式开发——非托管库加载和解析,以及AssemblyDependencyResolver解析
API(包括 .NET BCL 中的 API)在静态字段或字典中缓存对象或订阅事件并不少见——这使得创建阻止卸载的引用变得容易,特别是如果 ALC 中的代码以非平凡的方式使用其 ALC 之外的 API。可以通过解析配置文件并仔细遵循特定于平台的名字对象的规则来完成此操作,但这样做不仅困难,而且如果规则在 .NE 的更高版本中发生变化,编写的代码也会破坏。在简单的情况下,可以卸载非默认的 AssemblyLoadContext,释放内存并释放它加载的程序集上的文件锁。卸载模型是合作的而不是抢先的。原创 2023-03-06 17:58:56 · 637 阅读 · 0 评论 -
InnoDB——详细说明索引中B+树的操作和原理
B+分裂,旋转,B+树索引全文索引哈希索引同时InnoDB存储引擎的哈希索引是自适应哈希:InnoDB存储引擎会根据表的使用情况自动为表生成哈希索引,无法人为进行干预。B+树索引就是传统意义上的索引,这是目前关系型数据库系统中查找最为常用和最为有效的索引。有一个需要注意的问题:B+树索引并不能找到一个给定键值的具体行。B+树索引能找到的只是被查询数据行所在的页。然后数据库通过把页读入内存,再在内存中进行查找,最后得到要查找的数据。原创 2023-03-06 21:33:36 · 1063 阅读 · 0 评论 -
JVM系列——详解JVM类加载时机和过程
JVM 类加载,验证,解析,初始化。()符号引用(Symbolic References)符号引用以一组符号来描述所引用的目标,符号可以是任何形式的字面量,只要使用时能无歧义地定位到目标即可。符号引用与虚拟机实现的内存布局无关,引用的目标并不一定是已经加载到虚拟机内存当中的内容。各种虚拟机实现的内存布局可以各不相同,但是它们能接受的符号引用必须都是一致的。直接引用(Direct References)直接引用是可以直接指向目标的指针、相对偏移量或者是一个能 间接定位到目标的句柄。原创 2023-03-06 17:02:33 · 586 阅读 · 0 评论 -
JVM系列——详细说明类加载器与双亲委派机制
详细介绍类加载器细节,双亲委派机制以及工作原理。注意事项,附有代码示例。原创 2023-03-07 17:08:49 · 670 阅读 · 0 评论 -
JVM系列——详细说明Java内存模型(JMM)之主/工作内存与内存操作指令
JMM, Java内存模型,JVM内存结构,并发安全,内存指令,内存指令规则,指令顺序,工作内存,主内存原创 2023-03-08 14:31:09 · 969 阅读 · 0 评论 -
JVM系列——破坏双亲委派模型的场景和应用
详细介绍,java如何破坏双亲委派以及为何破坏双亲委派,线程内类类加载,示例,jdbc, jndi的实现。每一个程序模块(OSGi中称为 Bundle)都有一个自己的类加载器,当需要更换一个Bundle时,就把Bundle连同类加载器一起换掉以实 现代码的热替换。在OSGi环境下,类加载器不再双亲委派模型推荐的树状结构,而是进一步发展为更 加复杂的。原创 2023-03-08 21:19:36 · 907 阅读 · 0 评论 -
JVM系列——详细说明Volatile,原子性/可见性,先行发生原则
指令重排序是指处理器采用了允许将多条指令乱序执行; volatile语义,规则;先行发生原则(Happends-Before);并发,原子性,可见性,有序性。原创 2023-03-09 18:00:36 · 673 阅读 · 0 评论 -
JVM系列——Java与线程,介绍线程原理和操作系统的关系
Java中线程的实现,线程状态流转,线程和操作系统关系,Java线程的调度并发不一定要依赖多线程(如PHP中很常见的多进程并发)。但是在Java里面谈论并发,基本上都与线程脱不开关系。因此我们讲一下从Java线程在虚拟机中的实现。原创 2023-03-10 21:14:52 · 1218 阅读 · 0 评论