摘要:
Sharding jdbc中的很多地方涉及到算法,比如主从配置这块、分库分表这块。本文主要从源码角度介绍下,目前主要包含哪些算法,以及这些算法的内容。 一、读写分离(主从配置) 这块的代码主要在core模块中的api/algorithm/masterslave下面,这块的算法的主要目的,其实是在读的 阅读全文
摘要:
最新的2.0版本的Sharding Jdbc版本,由于需要支持动态配置加载,所以最新的模块信息如下: 其中各个模块的内容如下: sharding jdbc core:核心模块,主要包含的是一个分库分表、读写分离的中间件的核心内容,包括规则配置、sql解析、sql改写、sql路由、sql执行、结果集合 阅读全文
摘要:
[TOC] KafkaConsumer是从kafka集群消费消息的客户端。这是kafka的高级消费者,而SimpleConsumer是kafka的低级消费者。何为高级?何为低级? 我们所谓的高级,就是可以自动处理kafka集群的失败信息,也可以适应kafka集群中消息的分区迁移。这个客户端也可以与服 阅读全文
摘要:
试了官网的解决方案,还是不行,然后到Stack Overflow上面,找到了下面这个方法,完美解决。 在命令行中运行: xcode select install 安装软件就可以了。 阅读全文
摘要:
[TOC] 在KafkaServer中的入口在: 首先根据相关参数,实例化KafkaApis,然后实例化KafkaRequestHandlerPool。下面我们首先看下KafkaRequestHandlerPool。 一、KafkaRequestHandlerPool 在run方法中,我们可以看到, 阅读全文
摘要:
[TOC] 今天我们主要分析下broker被选为controller之后,主要干了什么。门面代码先列出来: 一个门面,涉及到的监听器和其他内容比较多,我们一一分析。 一、controller epoch 首先从zk的节点/controller_epoch下获取之前的epoch,然后将其+1后持久化到 阅读全文
摘要:
[TOC] 之前聊过了很多Kafka启动过程中的一些加载内容,也知道了broker可以分为很多的partition,每个partition内部也可以分为leader和follower,主从之间有数据的复制。那么这么多partition是谁在管理?broker内部有没有主从之分?这就是本文的主角,Ka 阅读全文
摘要:
在KafkaServer启动过程的入口中,会启动Replica Manager,众所周知,这是一个副本管理器。replica在Kafka中扮演的角色很重要,是保证消息不丢失的一个重要概念。 replica的个人理解概念如下:producer发送的消息给broker,broker是分为多个partit 阅读全文
摘要:
SocketServer主要用于接收外部的网络请求,并把请求添加到请求队列中。 一、入口 在KafkaServer.scala中的start方法中,有这样的入口: 这块就是启动了一个SocketServer,我们具体看一下。 二、构造方法 我们看下SocketServer里面包含的参数: 这里面涉及 阅读全文
摘要:
目前来说,kafka的日志中记录的内容比较多,具体的存储内容见 "这篇博客" ,写的比较好。可以看到,存储的内容还是比较多的,当存储文件比较大的时候,我们应该如何处理这些日志?下面我们通过kafka启动过程的源码,分析下kafka的日志处理过程。 一、入口方法 在kafkaServer.scala中 阅读全文