Kafka基本部分(一)

1.1 概念

Apache Kafka是一个分布式的发布-订阅系统,能够支持海量数据的数据传递。在离线和实时的消息处理业务系统中,Kafka都有广泛的应用。Kafka将消息持久化到硬盘中,并对消息创建了备份保证了数据的安全。Kafka保证了较高的处理速度的同时,又保证了数据的零丢失。

1.2 特点

  1. 高吞吐量、低延迟

    Kafka每秒可以处理几十万条消息,但是延迟最低只有几毫秒。每个主题可以分为多个分区,消费组可以对分区进行消费操作。

  2. 可扩展性

    Kafka集群支持热扩展

  3. 持久化、可靠性

    消息可以被持久化到本地磁盘,并且支持数据备份以防止数据丢失。

  4. 容错性

    允许集群中的节点失败(若副本的数量为n,则允许n-1个节点失败)

  5. 高并发

    支持数千个客户端同时进行读写操作

1.3 使用场景

  1. 日志收集

    公司可以用Kafka收集各种服务的log,通过Kafka以统一接口服务的形式开放给各种Consumer进行消费。例如Hadoop,Hbase,Solr等

  2. 消息系统

    解耦生产者、消费者、缓存消息等

  3. 用户活动跟踪

    Kafka经常被用来记录web用户和app用户的各种活动。例如浏览网页、点击、搜索活动,这些活动被发送到Kafka不同的Topic中,然后订阅者通过订阅这些Topic来做实时的监控分析。

  4. 运营指标

    记录运营监控数据

  5. 流失处理

    Spark streaming和storm

1.4 技术优势

  1. 可伸缩性

    1. Kafka集群支持在运行期间进行扩展或者收缩(可以添加或者删除代理),并且不会宕机
    2. 可以扩展一个Kafka主题,来包含更多的分区。由于一个分区无法扩展到多个代理,所以他的容量用以收到代理磁盘空间的限制。
  2. 容错性和可靠性

    Kafka的设计方式使某个代理的故障能够被集群中的其他代理检测到。由于每个主题都可以在代理上复制,所以集群可以在不中断服务的情况下从此类故障中恢复并继续运行。

  3. 吞吐量

    代理能够以非常快的速度进行数据存储和数据检索。

猜你喜欢

转载自blog.csdn.net/Andre235/article/details/107577225