Kafk的优势以及应用场景

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qichangjian/article/details/88189771

1. Kafka 的介绍

kafak是一种分布式的,基于发布/订阅的消息系统。以时间复杂度为O(1)的方式提供消息持久化能力,即使对TB级以上数据也能保证常数时间复杂度的访问性能。 高吞吐率。即使在非常廉价的商用机器上也能做到单机支持每秒100K条以上消息的传输。支持Kafka Server间的消息分区,及分布式消费,同时保证每个Partition内的消息顺序传输。同时支持离线数据处理(hive、HBASE)和实时数据处理(spark、storm)。

消息系统的核心作用就是三点:解耦异步并行

2.kafka的优势

  • 解耦:允许独立的扩展或者修改两边的处理过程,只要确保他们遵循同样的接口约束。
  • 冗余:消息队列把数 据进行持久化直到它们已经被完全处理,通过这一方式规避了数据丢失风险。直到保存到使用完毕。
  • 扩展性:增大消息入队和处理的频率是很容易
  • 灵活性&峰值处理能力:消息队列能够 使关键组件顶住突发的访问压力,而不会因为突发的超负荷的请求而完全崩溃
  • 可恢复性:系统的一部分组件失效时,不会影响到整个系统。
  • 顺序保证:Kafka 保证一个 Partition 内的消息的有序性
  • 缓冲:消息队列通过一个缓冲层来帮助任务最高效率的执行。写入队列的处理 会尽可能的快速。该缓冲有助于控制和优化数据流经过系统的速度。
  • 异步通信:消息队列提供了异步处理机制,允许用户把一个消息放入队列,但并不立即处理它。(想放多少放多少,需要的时候在处理)

3.kafka的特性

  • 高吞吐、低延迟:kafka 每秒可以处理几十万条消息,它的延迟最低只有几毫秒。
  • 可扩展性:kafka 集群支持热扩展
  • 可靠性:消息被持久化到本地磁盘,并且支持数据备份防止数据丢失
  • 容错性:允许集群中节点失败
  • 高并发:支持数千个客户端同时读写

4.kafka的应用场景

经典架构:Flume + Kafka + Storm /spark streaming+ Redis。
应用场景消息系统、跟踪网站活动、运营指标、日志聚合、流处理、采集日志、提交日志

猜你喜欢

转载自blog.csdn.net/qichangjian/article/details/88189771