加入收藏 | 设为首页 | 会员中心 | 我要投稿 河北网 (https://www.hebeiwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 建站 > 正文

Kafka快速入门秘笈:配景先容,应用场景说明、焦点架构说明

发布时间:2019-10-09 03:35:34 所属栏目:建站 来源:极客慧
导读:一、配景先容 弁言:其拭魅这段配景,我们之前先容RabbitMQ的时辰,已经说过了,我们这里讲kakfa的时辰,再把这一段给拿出来,再声名下。在讲拭魅战前,我们照旧有须要讲授下理论的,理论为辅,拭魅战为主,在拭魅战的基本上,再深入领略理论,底层道理,底层源码

Kafka快速入门秘笈:配景先容,应用场景说明、焦点架构说明

 一、配景先容

弁言:其拭魅这段配景,我们之前先容RabbitMQ的时辰,已经说过了,我们这里讲kakfa的时辰,再把这一段给拿出来,再声名下。在讲拭魅战前,我们照旧有须要讲授下理论的,理论为辅,拭魅战为主,在拭魅战的基本上,再深入领略理论,底层道理,底层源码。下篇文章可能视频,我们将带你看官网进修kafka情形搭建、kafka根基用法、kafka的容错性测试,在把握常识的同时,还能趁便进修下英文。

1)题目引入:

假设我们此刻必要计划这样一个用户注册体系:用户注册完成后,必要给用户发送激活邮件,开通用户账号,记任命户IP、用户装备、时刻等信息。

早先的计划:

Kafka快速入门秘笈:配景先容,应用场景说明、焦点架构说明

2)但存在的题目是:

因为多个体系强耦合在一路,用户注册相应会很是慢,严峻影响了用户的体验,当流量大的时辰,机能会更差。

3)引入动静中间件:

为了办理上述题目,我们引入动静中间件,来实现体系的解耦,多个体系间通过动静中间件举办异步通讯,最终的计划图如下:

Kafka快速入门秘笈:配景先容,应用场景说明、焦点架构说明

即实现了体系解耦,又晋升了体系相应的速率

4)动静中间件先容:

动静中间件(Message Queue Middleware,简称MQ)又称为动静行列,是指操作高效靠得住的动静转达机制举办与平台无关的数据交换,并基于数据通讯来举办漫衍式体系的构建。

Kafka快速入门秘笈:配景先容,应用场景说明、焦点架构说明

2、应用场景说明

1)异步通讯

在许多时辰,为了加速应用体系整体运转速率,并不必要当即相应某些哀求,动静中间件提供了异步处理赏罚机制,应承将一些哀求信息放入动静中间件中,但并欠妥即处理赏罚它,而是逐步处理赏罚。在有限资源下,行使动静中间件可以或许使体系机能从容倍增!

如:用户注册乐成的邮件关照;用户购物下单的信息关照;大数据日记网络处理赏罚

2)削峰

以防突发剧增流量刹时冲毁体系,行使动静中间件可以支撑突发会见压力

3)营业体系解耦

体系间的耦合相关太强,会对体系的计划发生约束,也会增进体系的伟大性,通过动静中间件可以更好的计划体系,是一个体系完成指定的成果,而不是将全部的成果融合在统一个体系中。

二、kafka简介

Kafka作为一种动静中间件,是一种漫衍式的,基于宣布/订阅的动静体系。首要计划方针如下:

以时刻伟大度为O(1)的方法提供动静耐久化手段,纵然对TB级以上数据也能担保常数时刻的会识趣能

高吞吐率。纵然在很是便宜的商用呆板上也能做到单机支持每秒100K条动静的传输

支持Kafka Server间的动静分区,及漫衍式斲丧,同时担保每个partition内的动静次序传输

同时支持离线数据处理赏罚和及时数据处理赏罚

1、kafka架构

Kafka快速入门秘笈:配景先容,应用场景说明、焦点架构说明

名词表明:

Broker

一个Kafka集群由一个或多个broker构成。搭建了kafka情形的处事器就可以称为broker。

Topic

Kafka集群上存储的动静都有一个种别,这个种别被称为topic。(行使者只需指定动静的topic,即可出产或斲丧数据而不必体谅数据存于那里)Topic在逻辑上可以被以为是一个queue。每条斲丧都必需指定它的topic,可以简朴领略为必需指明把这条动静放进哪个queue里,这与RabbitMQ就有点相同了。

Partition

为了使得Kafka的吞吐率可以程度扩展,物理上又把topic分成一个或多个partition,每个partition在物理上对应一个文件夹,该文件夹下存储这个partition的全部动静和索引文件。建设topic时可指定parition数目。我们拭魅战演示的时辰,会再次声名。

Kafka快速入门秘笈:配景先容,应用场景说明、焦点架构说明

由于每条动静都被append到该partition中,是次序写磁盘,因此服从很是高(履历证,次序写磁盘服从比随机写内存还要高,这是Kafka高吞吐率的一个很重要的担保)。

Producer

认真宣布动静到Kafka broker

Consumer

斲丧动静。每个consumer属于一个特定的consumer group(可为每个consumer指定group name,若不指定group name则属于默认的group)。统一topic的一条动静只能被统一个consumer group内的一个consumer斲丧,但多个consumer group可同时斲丧这一动静。

三、kafka其余焦点观念

1、动静存储

许多传统的message queue城市在动静被斲丧完后将动静删除,一方面停止一再斲丧,另一方面可以担保queue的长度较量少,进步服从。而Kafka集群会保存全部的动静,无论其被斲丧与否。虽然,由于磁盘限定,不行能永世保存全部数据(现实上也没须要),因此Kafka提供两种计策去删除旧数据。一是基于时刻,二是基于partition文件巨细。譬喻可以通过设置$KAFKA_HOME/config/server.properties,让Kafka删除一周前的数据,也可通过设置让Kafka在partition文件高出1GB时删除旧数据。

2、Consumer Group

每一个consumer实例都属于一个consumer group,每一条动静只会被统一个consumer group里的一个consumer实例斲丧。(差异consumer group可以同时斲丧统一条动静)

Kafka担保的是不变状态下每一个consumer实例只会斲丧某一个或多个特定partition的数据,而某个partition的数据只会被某一个特定的consumer实例所斲丧。这样计划的劣势是无法让统一个consumer group里的consumer匀称斲丧数据,上风是每个consumer不消都跟大量的broker通讯,镌汰通讯开销,同时也低落了分派难度,实现也更简朴。其它,由于统一个partition里的数据是有序的,这种计划可以担保每个partition里的数据也是有序被斲丧。

3、Consumer Rebalance

Kafka通过Zookeeper打点集群设置,在consumer group产生变革时(如:某个consumer因妨碍下线时)举办rebalance。详细寄义为:

假如某consumer group中consumer数目少于partition数目,则至少有一个consumer会斲丧多个partition的数据,

假如consumer的数目与partition数目沟通,则正好一个consumer斲丧一个partition的数据,

而假如consumer的数目多于partition的数目时,会有部门consumer无法斲丧该topic下任何一条动静。

(编辑:河北网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读