- 博客(70)
- 收藏
- 关注
原创 ElasticSearch——详解主从模式,以及主节点的选取算法(二)
具体如下图所示:执行本流程的线程池为:generic。下面具体分析每个步骤的实现。
2023-04-20 13:16:12
1099
2
原创 ElasticSearch——详解主从模式,以及主节点的选取算法(一)
每个节点计算最小的已知节点ID,该节点为临时Master。向该节点发送领导投票。如果一个节点收到足够多的票数,并且该节点也为自己投票,那么它将扮演领导者的角色,开始发布集群状态。所有节点都会参与选举,并参与投票,但只有有资格成为Master的节点(node.master为true)的投票才有效。获得多少选票可以赢得选举胜利,就是所谓的法定人数。在 ES中 , 法定大小是一个可配置的参数。。为了避免脑裂,最小值应该是有Master资格的节点数n/2+1。
2023-04-18 13:11:50
2658
原创 ElasticSearch——详细介绍集群节点定义、索引与分片的关系,以及分片与副本
介绍es集群概念,以及节点分类和各自功能包括:主节点、分片,副本分片,数据节点、预处理节点、协调节点;
2023-04-13 10:54:05
1948
原创 Elasticsearch——详解ES特点,基本概念以及ES常用api操作
详解ES的基础概念,包括集群,节点,文档,类型,索引等等。介绍es的查询语句,搜索语句,全文搜索语句,高亮搜索结果以及聚合能力
2023-04-12 10:31:09
1315
原创 Kafka系列——详解Kafka Connect以及其和客户端API之间的区别
解释了kafka connect是什么以及和客户端API的区别,两者之间如何选择;然后给出了连接器的一个小示例
2023-04-10 15:23:06
1293
原创 Kafka系列——Kafka数据通道指南,总结遇到的以及需要考虑的问题因素
详解kafka作为数据通道的使用场景,以及作为数据通道需要考虑的各方面的因素,包括及时性、可靠性、吞吐量/动态吞吐量、数据格式、数据转换、安全性、故障处理以及耦合性和灵活性等问题
2023-04-10 15:20:56
1156
原创 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
431
原创 Kafka系列——详解如何使用消费者处理偏移量实现可靠性消费
详解如何使用消费者处理偏移量实现可靠性消费,如何正确提交偏移量,如何处理重试,超长任务等场景
2023-04-06 14:52:07
1516
原创 Kafka系列——详解如何保证数据的可靠性
与性能一样,在系统的设计之初就应该 考虑可靠性问题,而不能在事后才来考虑。同时,可靠性是系统的一个属性,而不是一 个独立的组件,所以在讨论 Kafka 的可靠性保证时,还是要从系统的整体出发。Kafka 在数据传递可靠性方面具备很大的灵活性。我们知道,Kafka 可以被用在很多场景里,从跟踪用户点击动作到处理信用卡支付操作。有些场景要求很高的可靠性,而有些则更看重速度和简便性。Kafka 被设计成高度可配置的,而且它的客户端 API 可以满足不同程度的可靠性需求。但有时候你的系统看起来是可靠的,但实
2023-04-04 10:32:08
883
原创 Kafka系列——详解kafka消息的物理存储及分区分配,清理等功能
Kafka 的基本存储单元是分区。分区无法在多个 broker 间进行再细分,也无法在同一个broker 的多个磁盘上进行再细分。所以,分区的大小受到单个挂载点可用空间的限制(一个挂载点由单个磁盘或多个磁盘组成,如果配置了 JBOD就是单个磁盘,如果配置了RAID,就是多个磁盘。在配置 Kafka 的时候,管理员指定了一个——也就是 log.dirs 参数的值(不要把它与存放错误日志的目录混淆了,日志目录是配置在 log4j.properties 文件里的)。该参数一般会包含每个挂载点的目录。
2023-04-02 22:03:18
1594
原创 MySQL——详解binglog与Redo Log以及两阶段提交
详细解释binlog和redo的作用和实现,以及它的区别;同时解释了两阶段提交,以及两阶段提交的必要性,没有两阶段提交的后果等
2023-03-28 16:01:41
1305
原创 Go系列——GoRoutines和Channels
详细描述goroutine的使用;channel的使用,以及带缓存和无缓存channel的使用和选择;带有源码示例。以及单方向channel的使用。
2023-03-27 15:53:33
499
原创 Mysql——Sql查询语句的执行过程
从上层视角解释了SQL查询语句的执行过程,解释了会经过mysql的哪些组件,以及各个组件起到的作用和目的
2023-03-27 10:15:18
1102
原创 InnoDB——详细解释锁的应用,一致性读,自增长与外键
详细说明InnoDB中锁的细节,一致性非锁定读(MVCC),锁定读,隔离界别和锁的关系,自增长列与锁,外键和锁
2023-03-25 20:53:58
609
3
原创 Kafka——深入理解请求的处理
详细介绍了Kafka中的元数据请求,生产请求以及获取请求。尤其介绍了获取请求中的多种配置,比如最大数据量,零拷贝,ISR等
2023-03-24 14:37:59
753
1
原创 Kafka系列——深入理解Kafka集群成员,控制器以及复制功能
详细介绍Kafka中集群成员之间的关系,控制器的作用以及原理(包括KRaft),以及副本间的通信,副本的分类,Leader副本和跟随着副本的交互,以及首先Leader的定义。
2023-03-23 17:03:56
579
原创 InnoDB——详细介绍行锁和意向锁以及相互关系
详细介绍mysql InnoDB中的行锁实现和原理:共享锁/排他锁;以及意向锁的实现和原理:意向共享锁/意向排他锁。解释行锁和意向锁的兼容关系
2023-03-22 22:10:23
360
原创 Kafka系列——详述消费者再平衡(均衡)监听器,消费特定位置偏移量,优雅退出消费者
详细介绍消费者的再平衡过程中的各个监听器及其调用时机;介绍如何从特定偏移位置消费数据,以及如何优雅退出轮询
2023-03-22 20:05:30
1726
原创 Kafka系列——详解创建Kafka消费者及相关配置
详解kafka消费者以及消费者组;介绍分区如何分配给消费者,以及分配策略,介绍各种超时参数;介绍超时的行为,心跳发送的细节
2023-03-20 14:15:22
8128
原创 Kafka系列——详解消费者和消费者群组和分区的关系
要想知道如何从 Kafka 读取消息,需要先了解消费者和消费者群组的概念。详解消费者,消费者组以及分区之间的三者关系
2023-03-19 18:10:48
1870
原创 InnoDB——哈希算法
InnoDB中的自适应哈希,哈希算法是一种常见的时间复杂度为O(1)的算法,且不只存在于索引中,每个数据库应用中都存在该数据结构。
2023-03-18 22:14:54
442
1
原创 InnoDB——B+树索引的使用
联合索引是指对表上的多个列进行索引。联合索引的创建方法与单个索引创建的方法一样,不同之处仅在于有多个索引列。索引覆盖,优化器选择,MRR优化
2023-03-17 12:42:22
411
原创 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
3046
原创 InnoDB——详细介绍Cardinality值
详细介绍Cardinality表示索引中不重复记录数量的预估值。Cardinality的触发时机。Cardinality的计算原理。对索引的影响。
2023-03-15 21:15:45
649
原创 JVM系列——HotSpot虚拟机的GC算法细节实现
介绍了根节点枚举;安全点,安全区;主动式中断;卡表和记忆集;写屏障,三色标记法,增量更新和原始快照
2023-03-15 16:11:10
488
原创 JVM系列——垃圾收集器与内存分配策略
GCROOTS, 二次标记,F-QUEUE,分代收集,标记清除,标记整理,标记复制;年轻代,老年代;Eden,survivor区,为什么两个survivor区;引用计数与可达性分析等
2023-03-13 14:39:51
255
原创 InnoDB——详解B+树索引的分裂原理与管理 B+树索引的分裂
索引的管理,Cardinality值是什么以及作用,OSC在线架构转变,快速创建索引,B+树的索引分裂介绍有不同。。
2023-03-12 21:07:15
1924
原创 JVM系列——线程安全和实现方法
详细解释:线程安全的定义;线程安全的分类:绝对线程安全,相对线程安全,线程兼容,线程对立;线程安全的实现方法:互斥同步,非阻塞同步;原子操作,CAS;可重入,线程本地存储。
2023-03-11 20:33:33
356
原创 JVM系列——Java与线程,介绍线程原理和操作系统的关系
Java中线程的实现,线程状态流转,线程和操作系统关系,Java线程的调度并发不一定要依赖多线程(如PHP中很常见的多进程并发)。但是在Java里面谈论并发,基本上都与线程脱不开关系。因此我们讲一下从Java线程在虚拟机中的实现。
2023-03-10 21:14:52
1716
原创 JVM系列——详细说明Volatile,原子性/可见性,先行发生原则
指令重排序是指处理器采用了允许将多条指令乱序执行; volatile语义,规则;先行发生原则(Happends-Before);并发,原子性,可见性,有序性。
2023-03-09 18:00:36
779
原创 JVM系列——破坏双亲委派模型的场景和应用
详细介绍,java如何破坏双亲委派以及为何破坏双亲委派,线程内类类加载,示例,jdbc, jndi的实现。每一个程序模块(OSGi中称为 Bundle)都有一个自己的类加载器,当需要更换一个Bundle时,就把Bundle连同类加载器一起换掉以实 现代码的热替换。在OSGi环境下,类加载器不再双亲委派模型推荐的树状结构,而是进一步发展为更 加复杂的。
2023-03-08 21:19:36
1078
原创 JVM系列——详细说明Java内存模型(JMM)之主/工作内存与内存操作指令
JMM, Java内存模型,JVM内存结构,并发安全,内存指令,内存指令规则,指令顺序,工作内存,主内存
2023-03-08 14:31:09
1363
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人