kafka极简教程

kafka是用于构建实时数据管道和流应用程序。具有横向扩展,容错,wicked fast(变态快)等优点,并已在成千上万家公司运行。

一,简单说明什么是kafka

Apache kafka是消息中间件的一种,我发现很多人不知道消息中间件是什么,在开始学习之前,我这边就先简单的解释一下什么是消息中间件,只是粗略的讲解,目前kafka已经可以做更多的事情。

举个例子,生产者消费者,生产者生产鸡蛋,消费者消费鸡蛋,生产者生产一个鸡蛋,消费者就消费一个鸡蛋,假设消费者消费鸡蛋的时候噎住了(系统宕机了),生产者还在生产鸡蛋,那新生产的鸡蛋就丢失了。再比如生产者很强劲(大交易量的情况),生产者1秒钟生产100个鸡蛋,消费者1秒钟只能吃50个鸡蛋,那要不了一会,消费者就吃不消了(消息堵塞,最终导致系统超时),消费者拒绝再吃了,”鸡蛋“又丢失了,这个时候我们放个篮子在它们中间,生产出来的鸡蛋都放到篮子里,消费者去篮子里拿鸡蛋,这样鸡蛋就不会丢失了,都在篮子里,而这个篮子就是”kafka“。

鸡蛋其实就是“数据流”,系统之间的交互都是通过“数据流”来传输的(就是tcp、http什么的),也称为报文,也叫“消息”。

消息队列满了,其实就是篮子满了,”鸡蛋“ 放不下了,那赶紧多放几个篮子,其实就是kafka的扩容。

各位现在知道kafka是干什么的了吧,它就是那个"篮子"。

二,kafka名词解释

后面大家会看到一些关于kafka的名词,比如topic、producer、consumer、broker,我这边来简单说明一下。

  • producer:生产者,就是它来生产“鸡蛋”的。
  • consumer:消费者,生出的“鸡蛋”它来消费。
  • topic:你把它理解为标签,生产者每生产出来一个鸡蛋就贴上一个标签(topic),消费者可不是谁生产的“鸡蛋”都吃的,这样不同的生产者生产出来的“鸡蛋”,消费者就可以选择性的“吃”了。
  • broker:就是篮子了。

大家一定要学会抽象的去思考,上面只是属于业务的角度,如果从技术角度,topic标签实际就是队列,生产者把所有“鸡蛋(消息)”都放到对应的队列里了,消费者到指定的队列里取。

三,如何学习kafka

还是那句话,学习任何技术,跟学骑自行车一样,不要一开始只关注它的具体细节是什么。先学着怎么骑,骑着骑着就了解大致的原理,这个时候在去看它的原理,会很轻松。

四,怎么样才算真正的学会kafka

很多人用过kafka,但是没人了解原理,比如:

  • kafka节点之间如何复制备份的?
  • kafka消息是否会丢失?为什么?
  • kafka最合理的配置是什么?
  • kafka的leader选举机制是什么?
  • kafka对硬件的配置有什么要求?
  • kafka的消息保证有几种方式?

。。。。。。 你是否都答得上来?

本文分享自微信公众号 - 架构师小秘圈(seexmq)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2017-09-12

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏FreeBuf

黑客是如何利用Joomla Google地图插件进行反射DDoS攻击的

安全研究人员最近发现了大量利用Joomla Google地图插件漏洞进行的反射DDoS攻击。 来自Akamai科技安全工程及响应团队(Prolexic Sec...

265100
来自专栏企鹅号快讯

这个 Office 漏洞的年龄可能比有些白帽子还大

能潜伏的不只有生物学上的病毒,还有网络中的病毒。 近日,宅客频道从腾讯电脑管家官方微博看到一则消息:腾讯安全反病毒实验室在全球范围内捕获了一例病毒样本,并顺藤摸...

24360
来自专栏Java架构沉思录

一文读懂:完整的支付系统整体架构!

在不同的公司由于接入渠道和应用的差异,对支付产品分类略有不同。综合支付场景和流程,支付产品可以分为如下几类:

17610
来自专栏SAP最佳业务实践

从SAP最佳业务实践看企业管理(17)-CRM-服务订单管理

C69 服务订单管理 本文档的目的是介绍从创建和打印服务报价开始,到相应的服务订单相关步骤(如创建、资源计划和分派、确认、完成、开票(在 ERP 系统中))的整...

32830
来自专栏Java架构师学习

一文读懂:完整的支付系统整体架构!

在不同的公司由于接入渠道和应用的差异,对支付产品分类略有不同。综合支付场景和流程,支付产品可以分为如下几类:

62630
来自专栏FreeBuf

不懂编程也能造勒索软件,来看国内这款Android勒索软件生成工具

概要:据一份报告称,一款来自中国的Android勒索软件生成套件,正在某地下黑客论坛和中国社交网站上传播。黑客只需一次性付款,即可随意创建不受限的勒索软件变体。...

33880
来自专栏Java技术栈

【干货】完整的支付系统整体架构!

  从产品分类、模块功能和业务流程,了解支付产品服务的设计。 支付产品模块是按照支付场景来为业务方提供支付服务。这个模块一般位于支付网关之后,支付渠道之前。 ...

3.1K90
来自专栏域名资讯

网络域名与注册商标冲突的解决途径

  域名是企业在互联网上的地址,是企业在虚拟世界的门牌号码。用户可以通过该地址找到企业在网上的门户网站。同时,域名作为企业的标志,具有很强的标识性,代表着企业的...

37960
来自专栏域名资讯

.com域名和.cn域名的介绍

  .com域名,国际最广泛流行的通用域名格式。国际化公司都会注册。 .com域名;当然也可以选择.net/.org以.com为结尾的国际域名。 例如表示工商企...

74250
来自专栏FreeBuf

任天堂 Switch 遭 fail0verflow 黑客组织破解,已可运行 Linux 系统

fail0verflow 黑客组织成员近日在赫赫有名的游戏机 Nintendo Switch上发现了一个漏洞,他们在推特上公开了他们的发现,并发布了漏洞利用的结...

23370

扫码关注云+社区

领取腾讯云代金券