kafka概念
来源:互联网 发布:蒲城县网络党校 编辑:程序博客网 时间:2024/06/05 19:35
broker物理机器,一个broker管多个partition
topic:一个topic可以由多个partition
partition:一个partition对应一个broker
为什么Storm需要一个消息队列?
解决和其他系统耦合的问题。
如何获取输入数据?
- Storm没有自己的接收器
- 而且从数据源拉(pull)可以更好地控制流量
如何把输出结果数据?
- Storm没有自己的存储
消息队列正好解决了数据耦合的问题。
Kafka是什么?消息队列的特点?
生产者消费者模式。
先进先出(FIFO)顺序保证
可靠性保证:
- 自己不丢数据(kafka默认是7天,清除)
- 消费者不丢数据:“至少一次,严格一次”
至少一次就是可能会有两次、会重
严格一次机制就是会负责一点
消息队列常见场景:
系统之间解耦合
- queue模型
- publish-subscribe模型
峰值压力缓冲
异步通信
kafka的架构:
produce:消息生产者
consumer:消息消费者
broker:kafka集群的server,负责处理消息读、写请求,存储消息。(物理概念)
topic:消息队列/分类
Queue:里面有生产者消费者模型
broker就是代理,在kafka cluster这一层里面,其实里面有很多个broker
topic就相当于queue
元信息是存在Zookeeper上面的,整个集群的管理也和Zookeeper有很大的关系。
一个topic分成多个partition(物理概念)。
每个partition内部消息强有序,其中的每个消息都有一个序号叫offset。
一个partition只对应一个broker。
一个broker可以管多个partition。
消息不经过内部缓冲,直接写入文件。
根据时间策略删除,而不是消费完就删除。
producer自己决定往哪个partition写消息,可以是轮询的负载均衡,或者是基于hash的partition策略。
一个partition对应一个broker,一个broker可以管多个partition,比如说:topic有6个partition,有两个broker,那么每个broker就管3个partition。
如何增加topic并行度?增加partition的个数。
一个partition可想象为一个文件,当数据发过来的时候它就往这个partition上面append,追加就行。
consumer自己维护消费到哪个offset。
每个consumer都有对应的group。
group内是queue消费模型:
- 各个consumer消费不同的partition
- 因此一个消息在group内只消费一次
group间是publish-subscribe消费模型
- 各个group各自独立消费,互不影响
- 因此一个消息在被每个group消费一次
kafka的特点:
消息系统的特点:生产者消费者模型 FIFO
消息系统基本的特点是保证了,有基本的生产者消费者模型,partition内部是FIFO,partition之间不是FIFO的,当也可以把topic设置为一个partition,这样就保证了严格的FIFO。
高性能:单节点支持上千个客户端,MB/S吞吐
接近网卡的极限。
持久性:消息直接持久化在普通磁盘上且性能好
直接写到磁盘里面去,就是直接append到磁盘里面去,这样的好处是直接持久化,数据不会丢,第二个好处就是顺序写,然后消费数据也是顺序读,所以持久化的同时还能保证顺序,比较好,因为磁盘顺序读比较好。
分布式:数据副本冗余、流量负载均衡、可扩展
分布式,数据副本,也就是同一份数据可以到不同的broker上面去,也就是当一份数据,磁盘坏掉的时候,数据不会丢失,比如3个副本,就是在3个机器磁盘都换掉的情况下数据才会丢失,在大量使用情况下看这样就是非常好的,负载均衡,可扩展,在线扩展,不需要停服务的。
很灵活:消息长时间持久化、Client维护消费者状态
消费方式灵活,第一个原因是消息持久化时间跨度比较长,一天或者一星期等,第二消费状态自己维护消费到哪个地方了,Queue模型,发布订阅的模型还有回滚模型。
- kafka概念
- kafka概念理解
- Kafka基础概念
- kafka Stream概念
- Kafka概念入门
- kafka 名词概念
- kafka相关概念
- kafka 入门概念介绍
- Kafka基础概念
- Kafka概念入门
- Kafka学习笔记1:概念
- kafka基础之核心概念
- Kafka学习笔记 --- 概念梳理
- Kafka学习(二):Kafka的基本结构和概念
- Kafka学习(二):Kafka的基本结构和概念
- Kafka学习(二):Kafka的基本结构和概念
- kafka学习一:原理和概念
- Kafka学习整理一(基础概念)
- Hadoop配置
- 从零开始玩转JMX——简介和Standard MBean
- Android MVP模式笔记
- pl/sql编程笔记
- 说谎者悖论-C++ 会议中有一些人说谎,有一些人说真话,求最少说谎人数
- kafka概念
- python--leetcode461 hamming distance
- L练习5-1 求m到n之和(10 分)
- 简单的javaweb的思路
- Okio框架分析--之一
- Oracle分区表操作
- oracle 导入导出
- Win10和Ubuntu16.04双系统安装详解
- 细谈select函数(C语言)