
Kafka
kafka 设计与实现分析
Rover Ramble
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
kafka源码阅读-Controller(四)Replica状态机
分区状态机有四种状态,replica状态机有七种状态,较为复杂。 ReplicaStateMachine这个类代表副本集的状态机。它定义了一个副本所在的状态,以及将副本移动到另一个合法的状态的变迁。不同的状态如下: NewReplica: Controller可以在分配分区时创建新副本。在这个状态,一个副本只能请求成为follower。有效的前置状态是NonExistentReplica。 OnlineReplica: replica一旦被启动,并且作为分配了partition的副本集的一部分,该副本就进原创 2020-06-13 10:13:17 · 455 阅读 · 0 评论 -
Kafka源码阅读-Controller(三)Partition状态机
再看onControllerFailover(),先调用partitionStateMachine和replicaStateMachine的registerListeners(),随后启动了replica状态机和partition状态机: def onControllerFailover() { if(isRunning) { ...... partitionStateMachine.registerListeners() replicaStateMachin原创 2020-06-11 01:08:49 · 402 阅读 · 0 评论 -
Kafka源码阅读-Controller(二)管理brokers
上一篇kafka源码(一)correspond to/explain Kafka设计解析(二) 中的3.2、3.3。以前一直用kafka 0.8.2.x,那时候redis开始风靡,hadoop方兴未艾,一晃四五年过去了,终于老得可以读读源码。 不得不说Kafka的代码风格比spark好多了。毕竟spark太庞大,相对来说kafka小而美吧。 可能出于性能的考虑,以及ZooKeeper的机制,kafka大部分都是异步回调的事件机制。类似epoll对IO的处理。 源码中几乎对每个回调函数都注释了该方法什么情况下原创 2020-06-07 17:33:08 · 313 阅读 · 0 评论 -
Kafka源码阅读-Controller(一)
引用 Kafka Controller Internals: In a Kafka cluster, one of the brokers serves as the controller, which is responsible for managing the states of partitions and replicas and for performing administrative tasks like reassigning partitions. 集群中的broker尝试在Zook原创 2020-06-05 18:46:04 · 320 阅读 · 0 评论 -
kafka设计解析(二)
1. kafka在zk中的存储结构 http://www.cnblogs.com/byrhuangqiang/p/6367037.html /broker/ids/[0…N] broker 注册信息。 其中[0…N]表示broker id(broker id唯一,不可以重复) /broker/topics/[topic]/partitions/[0…N] Broker Topic 注册。 ...原创 2020-05-06 22:37:05 · 293 阅读 · 0 评论 -
kafka设计解析(一)
目前生产环境中,使用较多的消息队列有ActiveMQ、RabbitMQ、ZeroMQ、Kafka、MetaMQ、RocketMQ等。 消息系统的作用:异步处理、应用解耦、流量削峰和消息通讯 异步处理 用户注册后,异步发送邮件和注册短信。 缩短响应时间,提高吞吐量。 应用解耦 消息队列把数据进行持久化直到它们已经被完全处理,通过这一方式规避了数据丢失风险,两端互不影响。 流量削峰 通过队列暂存或...原创 2020-05-06 22:33:23 · 465 阅读 · 0 评论