深入理解kafka读书笔记

最近在读的是深入理解kafka核心设计与实践原理。为了加深理解,巩固知识,便打算记录下读书总结日志。这本书总共分为12章。1:kafka的安装与配置及简单的使用demo,2:kafka生产者客户端讲解,3:kafka消费者客户端讲解,4:主题与分区的管理,5:日志存储相关的内容,6:kafka服务端的一些核心内容,7:kafka客户端相关的原理剖析,8:可靠性、一致性的原理分析,9:kafka相关应用的一些补充,10:kafka监控相关内容,11:对kafka做一些功能性的扩展,12:kafka与spark集成的一些内容。

讲解前先记录下目前对于kafka的认识和了解仅限于kafka是一个使用很广的消息中间件。大数据领域用它比较常见。是一个可以作为流量削峰填谷和高并发或大数据情况下异步处理的技术。那么在读完之后我需要去关注的几件事,它如何做到上述功能的,redis、rabbitmq与它的异同,什么场景下需要使用以及如何使用。

第一章讲解了kafka单点和集群的环境搭建,此处有疑问不清晰时直接百度或google即可,书中采用的还是分开搭建和部署zookeeper的策略,也需要各自配置环境变量。我试验时采用docker快速搭建,比较方便快捷。也推荐大家采用docker搭建。

kafka目前被定位于一个分布式流处理平台,有高吞吐、可持久化、可水平扩展、支持流处理等多种特性。在工程项目中主要扮演三种角色,1、消息系统:具备系统解耦、冗余存储、流量削峰、缓冲、异步通信、扩展性、可恢复性等功能。还提供了消息顺序性保障和回溯消费的功能。就是说类似于一个取号排队的功能,人多的时候都取号,排队等着或者去做别的事就达到了不绑定在窗口前的系统解耦与不用立刻等到事情处理的异步通信功能,扩展性就是说人太多了,取号机不能快速满足需求,那在加两台也很方便,回溯消费是指你取过了但还能再取,终端会留有备份。2、存储系统:kafka是将内存直接持久化到磁盘的,并且kafka还有多个磁盘自动备份的多副本机制,相比较基于内存存储的系统来说可以有效降低数据丢失的风险。3、流式处理平台:kafka不仅为每个流行的流失处理框架提供了可靠的数据来源,还提供了一个完整的流式处理类库。

kafka体系分为生产者producer、消费者consumer和服务代理节点broker三部分。生产者负责发送消息至kafka,消费者则从kafka中拉取消息进行消费,broker就是一个独立的kafka服务节点,如果一台电脑或服务器上只有一个kafka实例,那么对应的broker就可看成一个kafka服务器。

kafka还有两个逻辑概念,主题topic和分区partition,kafka中的消息以主题为单位进行消费,生产者将消息发送到指定的主题中,消费者订阅指定的主题获取消息进行消费,分区是主题的划分单位,分区在存储层面对应的是一个可追加的日志(log)文件,消息追加到分区日志文件时会分配一个特定的偏移量(offset),offset保证分区中消息追加的顺序性。

kafka的多副本(replica)是指同一个分区有多个备份,一个备份(leader副本)负责处理消息读写请求。其余备份(follower副本)负责与主备份(leader副本)同步消息,这么着万一主备份挂掉了,数据故障了。还可以通过其余备份选出新的主备份从而不影响服务。

多个备份同步消息时因为网络延迟等问题,有的数据同步及时,有的一直同步不到最新数据。其中多个备份叫做AR(assigned replicas),同步及时的备份叫做ISR(insync replicas),同步不及时的备份叫做OSR(outofsync replicas)。但是ISR之间也有快慢,快的立刻与主备份保持一致了,慢的可能正在同步,还未完全一致。那么就有一个HW(high watermark)高水平概念和LEO(log end offset)将要写入的消息位置的概念,HW代表所有副本都已经同步了的数据之后一位的位置,消费者只能拉取到HW之前的数据,而LEO代表当前分区即将写入的数据位置。

第一章主要就是基本概念和简单的demo,下一章讲生产者的内容。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值