设为首页 收藏本站
开启辅助访问 快捷导航
菜单
猿人部落 主页 资讯 查看内容

谈谈KAFKA的架构以及这种架构的优势

2019-7-26 18:09 发布者: 左岸新闻 评论 0 查看 1143
Kafka各组件 Broker(一个kafka节点) 每个kafka节点称为一个Broker,一个服务器上可以摆设一个大概多个kafka的节点(

Kafka各组件

Broker(一个kafka节点)

每个kafka节点称为一个Broker,一个服务器上可以摆设一个大概多个kafka的节点(示例图中只摆设了一个),然后这些节点毗连到注册中心上,就形成了一个kafka的集群。
在这里插入图片形貌

Topic

即主题,在kafka中消息是分范例的,好比用户活动日志范例,付出订单范例,结算数据范例等,差别种别的消息在生产的时间可以指定发送到差别的Topic里。
一个Broker上可以创建一个大概多个Topic。同一个topic可以在同一集群下的多个Broker中分布。
在这里插入图片形貌

Partition

每个Topic分为一个或多个Partition,每个分区会映射到一个逻辑的日志(log)文件,是kafka中真正存储消息的单元。
每当一个message被发布到一个topic上的一个partition,broker应会将该message追加到这个逻辑log文件的末了一个segment上。这些segments 会被flush到磁盘上。Flush时可以按照时间来举行,也可以按照message 数来实行。

每个partition都是一个有序的、不可变的布局化的提交日志记载的序列。在每个partition中每一条日志记载都会被分配一个序号——通常称为offset,offset在partition内是唯一的。论点逻辑文件会被化分为多个文件segment(每个segment的巨细一样的)。
也就是说在kafka中固然消息是无序的,但是发送到同一个partition上的消息是有序的。
在这里插入图片形貌
看到这里,你大概会以为服务器1上的topic2和服务器2上的topic2和服务器3上的topic2包罗的Partition是一样的,但着实并不云云。
假设一个topic分为4个Partition,**kafka内部会根据肯定的算法把这4个Partition尽大概匀称分布到差别的服务器上。同一个Partition会分配到同一个topic地点的多个服务器上。如许做是为了容灾。详细会复制几份,会复制到哪些broker上,都是可以设置的。**好比:
服务器1负责topic2的Partition1、Partition2,Partition4
服务器2负责topic2的Partition1、Partition3,Partition4
服务器3负责topic2的Partition2、Partition3
为了方便,我在每个broker中只画了一个topic。
在这里插入图片形貌
那么对于每一个Partition现实上都有2个备份。

Kafka的架构优点

看了上面,信任你已经对kafka的架构有所相识了,着实这种奥妙的架构,笔者也是第一次遇见。那么为什么称为奥妙,而不叫希奇呢?是由于这种架构是有很大的优点的。kafka是不支持读写分离的,也就是说,不管是写还是读,都是发送到主节点。只不外在kafka中的主节点,并不是我们传统意义上的实体服务器,而是一个Partition。前面讲过了,生产者生产数据和消耗者汲取数据,现实上都是和topic内里的Partition打交道。
在这里插入图片形貌
我们假设上图中标红的Partition为主节点,那么这个时间生产者生产数据和消耗者消耗数据是怎样的流程图呢?
在这里插入图片形貌
在kafka中,生产者生产的数据会采取肯定的算法分配到差别的Partition上,当数据量富足大的时间,每个Partition的负载压力是差不多的,对于上图,大概服务器2的负载压力会大一点,那是由于 我懒的画图 有两个主节点在在这台服务器上,在现实情况中,我们可以尽大概的匀称分配主节点,如许每一台服务器的压力就差不多了。

总结

可以看出kafka的奥妙架构以及这种架构带来的上风,固然在某些情况下大概会带来负载不平衡,但我们也可以通过调解来克制这些情况,详细可以看这篇文章
总的来说,Kafka 只支持主写主读有几个优点:
可以简化代码的实现逻辑,淘汰堕落的大概;将负载粒度细化均派,与主写从读相比,不但负载效能更好,而且对用户可控;没有延时的影响;

在副本稳固的情况下,不会出现数据不同等的情况。为此,Kafka 又何必再去实现对它而言毫无收益的主写从读的功能呢?这齐备都得益于 Kafka 良好的架构计划,从某种意义上来说,主写从读是由于计划上的缺陷而形成的权宜之计。



路过

雷人

握手

鲜花

鸡蛋
收藏 邀请
上一篇:阿里巴巴王坚:用数据来改变世界下一篇:FFmpeg学习之 一 (音视频理论知识)

相关阅读

一周热门

头条攻略!

日排行榜

相关分类