内容简介:经常听后端童鞋提到它主要用于处理活跃的流式数据。
经常听后端童鞋提到 Kafka
这个词,加上业务慢慢有了交集,对 Kafka
的好奇越来越强烈。索性花点时间,一探究竟,顺便扩展一下技能树。
一、Kafka 是什么?
Kafka
是分布式发布-订阅消息系统。它最初由 LinkedIn
公司开发,之后成为 Apache
项目的一部分。 Kafka
是一个分布式的,可划分的,冗余备份的持久性的日志服务。
它主要用于处理活跃的流式数据。
二、简单理解
举个 例子
,生产者消费者,生产者生产鸡蛋,消费者消费鸡蛋,生产者生产一个鸡蛋,消费者就消费一个鸡蛋,假设消费者消费鸡蛋的时候噎住了(系统宕机了),生产者还在生产鸡蛋,那新生产的鸡蛋就丢失了。再比如生产者很强劲(大交易量的情况),生产者 1 秒钟生产 100 个鸡蛋,消费者 1 秒钟只能吃 50 个鸡蛋,那要不了一会,消费者就吃不消了(消息堵塞,最终导致系统超时),消费者拒绝再吃了,「鸡蛋」又丢失了,这个时候我们放个篮子在它们中间,生产出来的鸡蛋都放到篮子里,消费者去篮子里拿鸡蛋,这样鸡蛋就不会丢失了,都在篮子里,而这个篮子就是 kafka
。
鸡蛋其实就是「数据流」,系统之间的交互都是通过「数据流」来传输的,也称为报文,也叫「消息」。
消息队列满了,其实就是篮子满了,「鸡蛋」放不下了,那赶紧多放几个篮子,其实就是 kafka
的扩容。
综上所述,kafka 的概念就很好理解了,它就是那个「篮子」。
三、使用场景
1.消息系统
对于一些常规的消息系统, kafka
是个不错的选择。
2.检测网站活性
kafka
可以作为「网站活性跟踪」的最佳工具。可以将网页/用户操作等信息发送到 kafka
中。并实时监控,或者离线统计分析等。
3.日志系统
kafka
的特性决定它非常适合作为「日志收集中心」;
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- 你了解HTTPS,但你可能不了解X.509
- 你真的了解Mybatis的${}和#{}吗?是否了解应用场景?
- 你所了解的 array_diff_uassoc 真的是你了解的那样吗?
- 图文了解 Kubernetes
- 深入了解 JSONP
- 一文了解 Kubernetes
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。