介绍什么是kafka
如果想要了解kafka我们就要先了解kafka的版本是如何分布的
kafka的版本分布
kafka是根据最后几位来区分版本号的 它从1.0取消里4位版本号变成3位的
kafka_2.11-0.10.0.0 --> 2.11 kafka源码scala的版本 / 0.10.0.0 kafka的版本
了解什么是kafka
Kafka用于构建实时数据管道和流应用程序。 它具有水平可扩展性,容错性,快速性,并在数千家公司的生产中运行。
kafka支持分布式 它的原编译代码是Scala的
而在这么多的分布式的消息发布订阅系统里为什么要选择kafka呢?
- 可靠性-因为它是分布式
- 高容错性
- 实时性
- 可扩展性-kafka可以进行不停机的扩展
- 分布式-它是分布在每一台机器上
kafka的功能
Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者规模的网站中的所有动作流数据。
kafka的基本概念
Topic:主题意思 标识一个消息所在的位子上的一个标识
Partition(分区):Topic物理上的分组。一个Topic可以有多个Partition,每个Partition是一个有序的队列
Message:消息,通信的基本单位
Producer:生产者。向Kafka的一个Topic发布消息的过程叫做生产。
Consumer:消费者。订阅Topic并处理其发布的消息的过程叫做消费。
Broker:缓存代理,Kafka集群中的一台或者多台服务器。(数据实际存放的位置)
抽象的理解成
生产者消费者,生产者就是生产金钱的,消费者消费金钱的,生产者生产一块钱,消费者就消费一块钱,假设消费者消费金钱的时候突然不想花钱了(系统宕机了),生产者还在生产金钱,那新生产的金钱就丢失了。再比如生产者很强劲(大交易量的情况),生产者1秒钟生产100块钱,消费者1秒钟只能花50块钱,那要不了一会,消费者就花不了了(消息堵塞,最终导致系统超时),消费者拒绝再花了,”金钱“又丢失了,这个时候我们往它们中间放一个钱包,生产出来的金钱都放到钱包里,消费者去钱包里拿金钱,这样金钱也就不会丢失了,都在钱包里,而这个钱包就是”kafka“。
金钱其实也就是“数据流”,系统之间的交互都是通过“数据流”来传输的(就是http、https什么的),也叫“消息”。
消息队列满了,其实就是钱包满了,”金钱“ 放不下了,那就赶紧多拿几个钱包放,其实就是kafka的扩容。
现在各位现在知道kafka是干什么的了吧,它就是那个"钱包"。
————————————————
kafka的消费概念
kafka的消费概念分为两种
- 点对点
- 一对一
- 发布/订阅
- 一对多
抽象的理解成
- 发布/订阅我们可以理解为:kafka是一个讲师,而一对多就是一个讲师对一个屋子的人讲
- 点对点就像是你请了一个私人的讲师他每说的一句话都是单单对你一个人所说的