深夜座谈kafka开源社区和ckafka云
作者: / 2016-08-14 11:55 / 

今日下午参加了云+社区安排的kafka公开课,收成良多。正巧在工作中也遇到过kafka的问题,今日听完之后产生了十分多的感触。无法篇幅有限,自己又文笔弛禁,所以今日的共享首要提及对我感触最深的内容。共享的次序仍是依照老方式来进行吧

1、为什么要规划kafka?
2、开源的kafka架构是怎么样的?
3、云的ckafka架构是怎样的?
4、云的ckafka架构处理了什么样的问题?
5、我对开源kafka的想象?
一、为什么要规划kafka?
扩容性
曩昔出产消费模型选用的音讯行列一般为RabbitMQ、ZeroMQ等。这些音讯行列关于数据的处理量存在一个上限,也便是说跟着信息化的数据爆破式增加会呈现一个吞吐量的瓶颈。下图是我在网上找的图,表明的是以往音讯行列的方式。曩昔MQ的瓶颈存在的原因在于这个行列不能很好的支撑扩容。举个浅显点的比如来说曩昔的MQ是一条乡下小路,路的巨细是事前规划好的。而kafka则是一条高速公路,且这条高速公路可以依据事务的需求进行扩展。因而这一起也是一种十分节省资源的处理方案。
这儿写图片描绘











这儿写图片描绘

一致处理
这儿写图片描绘
上图表明的是曾经的处理方式。举个事例来说,现在公司里有两个数据源,我需求给每个事务都界说一个运用数据库的接口。但是跟着公司事务的不断扩展,数据源的品种越来越多,添加了比如redis等,一起事务的改变也扩展地十分快。这时假如对每个事务都编写一个接口就会显得十分费事。kafka则可以很好的应对上述场景,这也是依据防止重复造轮子的思维。


这儿写图片描绘

上图是简略的kafka架构。kafka的开源版本里供给了许多数据源的接口,事务只需求对kafka集群进行衔接就可以完成对数据的抓取。与此一起,kafka集群还可以进行对数据的挑选。也便是后面会说到的日志存储。
二、开源的kafka架构是怎么样的?
Broker
Kafka集群包括一个或多个服务器,这种服务器被称为broker
Topic
每条发布到Kafka集群的音讯都有一个类别,这个类别被称为Topic。
Partition
Parition是物理上的概念,每个Topic包括一个或多个Partition.
Producer
担任发布音讯到Kafka broker
Consumer
音讯顾客,向Kafka broker读取音讯的客户端。
Consumer Group
每个Consumer归于一个特定的Consumer Group。
这儿写图片描绘
topic partition了解
每个topic都可以看成是一个行列,消费有必要指定它的topic。为了使得Kafka的吞吐率可以线性进步,物理上把Topic分红一个或多个Partition,每个Partition在物理上对应一个文件夹,该文件夹下存储这个Partition的一切音讯和索引文件。
日志存储
开源kafka的日志存储可以完成数据解耦、多顾客读取等功能。如下图所示
这儿写图片描绘
关于传统的message queue而言,一般会删去现已被消费的音讯,而Kafka集群会保存一切的音讯,不管其被消费与否。当然,由于磁盘约束,不可能永久保存一切数据,因而Kafka供给两种战略删去旧数据。一是依据时刻,二是依据Partition文件巨细。
HA
为了进步Kafka的容错才干,需求将同一个Partition的Replica尽量涣散到不同的机器。假如某个Broker宕机了,需求确保它上面的负载可以被均匀的分配到其它幸存的一切Broker上。此外,还触及了投票选举机制。也便是说当一个leader挂了之后会投票选出一个新leader。。
开源的kafka架构是将各个topic冗余备份分步到各个broker上,当一个broker挂了之后可以很快的依据备份信息康复。
这儿写图片描绘
数据挑选
开源kafka支撑sql、java、python等言语的过滤程序。下图是依据sql改善的ksql
这儿写图片描绘
三、云的ckafka架构是怎样的?
云ckafka项目在开源kafka项目的基础上做了许多的改善,下图是ckafka的特色
这儿写图片描绘
ckafka的现状
1、日音讯超万亿条、总流量数十PB级,单集群每分钟达十亿
2、broker数量上千,集群有上百个
3、服务付费实例超千个,topic也过千
总的来说便是日音讯量、日吞吐量、集群分钟吞吐量都十分巨大
broker的挑选
新建实例时,怎么挑选broker才干确保资源的充分利用?针对这一问题,云是依据带宽和磁盘容量来判别的。会依据broker中存储的topic类别,来寄存最相似的topic到这个集群。
实例的升配
在升配方面,首先会预估节点改变的可能性和资源的利用率,其次会核算搬迁的价值。也便是当容量不行的时分存在两种状况:1、分区节点有冗余,这种状况会直接晋级2、broker资源缺乏,这时就要进行搬迁从头区分资源。当新节点参加后还需求进行机器的负载均衡、节点资源的碎片收拾。
这儿写图片描绘
实例的搬迁
据我的感触而言,云在搬迁方面做的是最好的。大约存在三种状况会需求搬迁:服务反常、实例扩缩容、负载均衡。
搬迁又触及到三种状况:
1、leader搬迁:数据搬迁价值较小,可能会形成cpu负载及网卡出流量
2、replica搬迁:价值比较大,会耗费十分多的机器资源
3、搬迁目标和目的地的考量:数据巨细、出产/消费速率、资源利用率
这儿写图片描绘
四、云的ckafka架构处理了什么样的问题?
我形象最深的首要有3点改善:
1、在高负载状况下的调优
2、增强了容错机制
3、增强了毛病处理机制
五、我对开源kafka的想象?
就我鄙意,现在kafka在毛病应对机制方面还不是很强。现在只能做到事端发生后再处理。假如可以事前搜集各种毛病的信息,进行数据剖析,使其可以在毛病前主动的处理就可以将毛病摧残在摇篮中。
由此稍微打开联想,可以规划一种信息搜集组件并供给自界说行为接口,用户可以自行经过接口规划毛病前的行为。这也是我对未来运维的展望 工程师可以专心于处理危险机器,毛病判别交予机器。















这儿写图片描绘




这儿写图片描绘




这儿写图片描绘


这儿写图片描绘


这儿写图片描绘









这儿写图片描绘






这儿写图片描绘







  • 上一篇:没有了
  • 下一篇:没有了
【某某业务】网站建设、网站设计、服务器空间租售、网站维护、网站托管、网站优化、百度推广、自媒体营销、微信公众号
如有意向---联系我们
热门栏目
热门资讯
热门标签

网站建设 网站托管 成功案例 新闻动态 关于我们 联系我们 服务器空间 加盟合作 网站优化

备案号: 

公司地址:山东省滕州市中央城 咨询QQ:379144319 手机: 电话: