了解 Kafka

经常听后端童鞋提到 Kafka 这个词,加上业务慢慢有了交集,对 Kafka 的好奇越来越强烈。索性花点时间,一探究竟,顺便扩展一下技能树。

一、Kafka 是什么?

Kafka 是分布式发布-订阅消息系统。它最初由 LinkedIn 公司开发,之后成为 Apache 项目的一部分。 Kafka 是一个分布式的,可划分的,冗余备份的持久性的日志服务。

它主要用于处理活跃的流式数据。

二、简单理解

举个 例子 ,生产者消费者,生产者生产鸡蛋,消费者消费鸡蛋,生产者生产一个鸡蛋,消费者就消费一个鸡蛋,假设消费者消费鸡蛋的时候噎住了(系统宕机了),生产者还在生产鸡蛋,那新生产的鸡蛋就丢失了。再比如生产者很强劲(大交易量的情况),生产者 1 秒钟生产 100 个鸡蛋,消费者 1 秒钟只能吃 50 个鸡蛋,那要不了一会,消费者就吃不消了(消息堵塞,最终导致系统超时),消费者拒绝再吃了,「鸡蛋」又丢失了,这个时候我们放个篮子在它们中间,生产出来的鸡蛋都放到篮子里,消费者去篮子里拿鸡蛋,这样鸡蛋就不会丢失了,都在篮子里,而这个篮子就是 kafka

鸡蛋其实就是「数据流」,系统之间的交互都是通过「数据流」来传输的,也称为报文,也叫「消息」。

消息队列满了,其实就是篮子满了,「鸡蛋」放不下了,那赶紧多放几个篮子,其实就是 kafka 的扩容。

综上所述,kafka 的概念就很好理解了,它就是那个「篮子」。

三、使用场景

1.消息系统

对于一些常规的消息系统, kafka 是个不错的选择。

2.检测网站活性

kafka 可以作为「网站活性跟踪」的最佳工具。可以将网页/用户操作等信息发送到 kafka 中。并实时监控,或者离线统计分析等。

3.日志系统

kafka 的特性决定它非常适合作为「日志收集中心」;

我来评几句
登录后评论

已发表评论数()

相关站点

+订阅
热门文章