kafka学习笔记1

什么是kafka

kakfa是用于构建实时数据管道和流应用程序。具有横向扩展,容错,wicked fast(变态快)等优点。Apache kafka是消息中间件的一种。

举个例子,生产者生产鸡蛋,消费者消费鸡蛋。生产者生产一个鸡蛋,消费者就消费一个鸡蛋。假设消费者在消费鸡蛋的时候噎住了(系统当机了),生产者还在生产鸡蛋,那么新生产的鸡蛋就丢失了。再例如生产者大量生产鸡蛋(大交易量的情况),消费者来不及消费鸡蛋(消息堵塞,最懂导致系统超时),消费者拒绝在消费鸡蛋,鸡蛋再次丢失。但如果我们用一个篮子保存生产者生产的鸡蛋,消费者去篮子里拿鸡蛋,这样鸡蛋就不会丢失,都在篮子里面,而这个篮子就是消息中间件(kafka),当篮子满了,我们多加几个篮子就可以了,这就是kafka的扩容,而“鸡蛋”就算通过tcp、http等传输的“消息”。

kafka名词解释

  • producer:生产者,用于生产“鸡蛋”
  • consumer:消费者,用于消费“鸡蛋”
  • topic:标签,生产者生产出一个鸡蛋就贴上一个标签(topic),消费者可不是谁生产的鸡蛋都“吃”的,这样不同的生产者生产出来的“鸡蛋”,消费者就可以有选择的“吃”了
  • broker:篮子

我们一定要学会抽象思考,不仅便于理解也便于记忆,编程是与生活息息相关的。上面只是属于业务的角度,从技术角度来看,topic标签其实就是队列,生产者把所有“鸡蛋(消息)”都放到对应的队列里面,消费者到指定的队列里面去取

带着问题去学习

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

如何学习kafka

刚学习一门新技术的时候,我们不必关注它的具体实现是什么。就像学骑自行车一样,先学着怎么骑,骑着骑着就了解了大致的原理,这个时候再去看它的原理,就会很轻松。

kafka下载连接

注意事项:不要下成源文件
src的是源文件,如:

Source download: kafka-2.2.1-src.tgz (asc, sha512)

应该下的是,官方推荐下载scala 2.12版本的:

Scala 2.12  - kafka_2.12-2.2.1.tgz (asc, sha512)

出处说明:

作者:半兽人
链接:https://www.orchome.com/kafka/index
来源:OrcHome
说明:除非有特殊说明,否则该系列均出自此处

你可能感兴趣的:(VisualOps)