Java知识分享网 - 轻松学习从此开始!    

Java知识分享网

Java1234官方群25:java1234官方群17
Java1234官方群25:838462530
        
SpringBoot+SpringSecurity+Vue+ElementPlus权限系统实战课程 震撼发布        

最新Java全栈就业实战课程(免费)

springcloud分布式电商秒杀实战课程

IDEA永久激活

66套java实战课程无套路领取

锋哥开始收Java学员啦!

Python学习路线图

锋哥开始收Java学员啦!
当前位置: 主页 > Java文档 > Java基础相关 >

分布式消息系统Kafka PDF 下载


分享到:
时间:2020-09-24 10:50来源:http://www.java1234.com 作者:小锋  侵权举报
分布式消息系统Kafka PDF 下载
失效链接处理
 分布式消息系统Kafka PDF 下载

本站整理下载:
 
相关截图:
 
主要内容:

分布式消息系统Kafka
概述
kafak 起初是有 LinkedIn 公司采⽤Scala语⾔开发的⼀个基于 zookeeper 协调的分布式消息系统。
2010年底作为开源项⽬在github上发布。
2011年7⽉成为 Apache 孵化器项⽬,
2012年10⽉从孵化器项⽬毕业成为顶级项⽬。
2014年Kafka开发团队离开 LinkedIn 创办了 Confluent
Kafka是以 弗兰兹·卡夫卡 (奥地利作家,代表作《变形记》)命名,名字和应⽤本身没太多联系。
⽬前Kafka定位是⼀个分布式流式处理平台(Kafka Streams)。
⽬前Kafka的最新版本为2.5.0(2020年4⽉15),(KIP-500)未来的⽅向将存储在zookeeper⾥的东⻄全部
转移到kafka集群内部,未来kafka不再需要依赖zookeeper就可以运⾏。(Kafka Needs No Keeper)
Kafka特性
⾼吞吐量
持久性
容错性
⾼并发
⽀持流式处理
Kafka使⽤场景
⽇志搜集,搜集各种服务的log,然后通过kakfa以统⼀接⼝服务的⽅式开放各种consumer,如
Hadoop\Hbase\Solr\ElasticSearch等。
消息系统,解耦⽣产者和消费者。
⽤户活动跟踪
运营指标
流式处理
⼏个基本概念
消息和批次
Kafka的数据单元叫做消息 message ,消息由字节数组组成,对于kafka来说消息的没有特别的格式和含
义,消息有⼀个可选元数据,被称为key,key也是⼀个字节数组,对kafka本身来说没有特别的格式和
含义,当消息需要以⼀种可控的⽅式写⼊不同partition时会⽤到key。
为了提⾼效率,消息是被分批次写⼊kafka,批次就是⼀组消息,这组消息属于同⼀个topic和
partition,消息以批次的⽅式写⼊kafka可以减少⽹络开销,可以提⾼kafka的系统吞吐量。
模式
对于kafka来说,消息就是字节数组,但是我们为了更好的理解,使⽤⼀些结构来定义消息,这就是消
息的schema,可以使⽤json格式或者其他序列化的格式,主要需要考虑新旧版本之间的兼容问题,许
多Kafka的开发者喜欢使⽤avro格式序列化消息,内容和schema分开,⽀持强类型,向前兼容也向后兼
容。
主题和分区
Kafka消息通过主题 topic 进⾏分类。topic可以类⽐成数据库的表的概念。⼀个topic可以被分为若⼲
个分区 partition ,⼀个partition就是⼀个提交⽇志,消息以追加的⽅式写⼊分区。
因此⼀个topic⼀般被分为多个partition,因此⽆法保证在整个topic范围内的消息的顺序,但是可以保
证每个partition上消息的顺序。
kafka可以通过这种分区的⽅式来实现数据的冗余和伸缩性,同时可以提供系统的并发性。
注意partition是可以分布在不同的服务器上的,也就是说⼀个topic可以横跨多个服务器。
消息在每个partition都有⼀个编号,叫做 offset ,编号的顺序是不跨partition的。
AR、ISR、OSR
Kafka为分区引⼊了副本(Replica)的概念,可以通过增加副本数量来提升容灾能⼒,同⼀个分区的不同
副本保存的信息相同,副本之间⼀主多从,其中Leader负责处理读写请求,follower只负责与leader消
息同步。⽣产者和消费者只和leader副本进⾏交互,当leader副本出现故障时,从follower副本中重新
选举新的leader副本对外提供服务。
分区中的所有副本统称为AR (包括leader副本和follower副本)
与leader副本保持⼀定程度同步的副本,包括leader副本组成ISR。
消息先发送到leader副本,然后follower副本从leader副本拉取消息进⾏同步。
如果⼀个follower副本落后过多,会从ISR集合中移到OSR集合中。
Kafka的复制机制不是完全同步复制,也不是单纯的异步复制。
可以通过参数配置滞后的范围:

 
 
------分隔线----------------------------

锋哥公众号


锋哥微信


关注公众号
【Java资料站】
回复 666
获取 
66套java
从菜鸡到大神
项目实战课程

锋哥推荐