kafka之关联应用系统的系统架构

2022-10-05  本文已影响0人  每天进步一点点变成更好的自己

数据从哪里来,大数据系统的框架,kafka如何连接我们的应用系统、大数据批处理系统、大数据流式处理系统,kakfa系统的设计,和传统的消息队列系统区别,以及为什么kafka要这样设计。

kafka的假设:我们处理的互联网领域的海量日志,对于丢失一部分日志是可以容忍的,但是整体关注的是系统整体的吞吐量、可扩展性、以及错误恢复能力。

1.大数据系统框架

日志系统

2.kafka的系统架构

kafka可以看成一个日志收集器,上游的应用服务器把日志发送到kafka集群,kafka的下游,不仅能能把对应的数据存到HDFS上,还可以直接从kafka里获得数据。kafka的模型:生产者-消费者。

image.png

3.kakfa的单个partition的读写实现

在实际的实现上,每一个TOPIC都会有很多个分区,分区到不同的服务器上。一个物理机,会存在很多分区。实际存储的时候,一个分区存储的是一个逻辑上的日志系统,在物理上,这些日志未见会分成大小相同的segment文件(比如1GB大小),每当有新消息从producer发过来的时候,broker就会把消息追加写入到最后那个segment文件里。

partition是一个逻辑上的日志文件,在物理上会拆分成多个同样大小的segment文件,顺序存储日志

4.kafka文件系统

kafka是直接使用本地的文件系统承担了消息队列持久化的功能,即直接依赖了linux文件系统的页缓存(page cache)。


kakfa直接通过mmap来写入数据,使得数据读写的性能很好
上一篇下一篇

猜你喜欢

热点阅读