Kafak入门理论
2019-08-03 本文已影响0人
你值得拥有更好的12138
以下概念性的语言均为本人理解,欢迎大佬指出错误,小白希望深入理解请到官网
它是什么?
-
1) Apache Kafka 是一个开源的分布式消息队列(生产者消费者模式)
-
2) Apache Kafka 目标:构建企业中统一的、高通量的、低延时的消息平台。
-
3) 大多的是消息队列(消息中间件)都是基于JMS标准实现的,Apache Kafka 类似于JMS的实现。
为什么要用它
- 作为缓冲(流量消减),来异构、解耦系统。
- 用户注册需要完成多个步骤,每个步骤执行都需要很长时间。代表用户等待时间是所有步骤的累计时间。
- 为了减少用户等待的时间,使用并行执行执行,有多少个步骤,就开启多少个线程来执行。代表用户等待时间是所有步骤中耗时最长的那个步骤时间。
- 有了新得问题:开启多线程执行每个步骤,如果以一个步骤执行异常,或者严重超时,用户等待的时间就不可控了。
- 通过消息队列来保证。
- 注册时,立即返回成功。
- 发送注册成功的消息到消息平台。
-
对注册信息感兴趣的程序,可以消息消息
image.png
Kafak的组件
Kafka Cluster:由多个服务器组成。每个服务器单独的名字broker(掮客)。
kafka broker:kafka集群中包含的服务器
Kafka Producer:消息生产者、发布消息到 kafka 集群的终端或服务。
Kafka consumer:消息消费者、负责消费数据。
Kafka Topic: 主题,一类消息的名称。存储数据时将一类数据存放在某个topic下,消费数据也是消费一类数据。
订单系统:创建一个topic,叫做order。
用户系统:创建一个topic,叫做user。
商品系统:创建一个topic,叫做product。
注意:Kafka的元数据都是存放在zookeeper中。