Kafka 整体介绍

穿精又带淫゛_ 提交于 2019-12-24 04:29:30

简述:
    Kafka是一个消息中间件,一个分布式的流平台,    是Spark生态中重要的组件,支持分布式,高可用,高吞吐,多副本
    是一个分布式、分区的、多副本的、多订阅者,基于zookeeper协调的分布式日志系统
    Kafka的目的是通过Hadoop的并行加载机制来统一线上和离线的消息处理,也是为了通过集群来提供实时的消息。
能力:
    1. 发布和订阅流数据,类似消息队列或消息系统
    2. 高容错存储流数据
    3. 支持处理数据流
    
Kafka能解决什么问题:
    1. 日志收集:一个公司可以用Kafka可以收集各种服务的log,通过kafka以统一接口服务的方式开放给各种consumer,例如hadoop、Hbase、Solr等。
    2. 消息系统:解耦和生产者和消费者、缓存消息等。
    3. 用户活动跟踪:Kafka经常被用来记录web用户或者app用户的各种活动,如浏览网页、搜索、点击等活动,这些活动信息被各个服务器发布到kafka的topic中,然后订阅者通过订阅这些topic来做实时的监控分析,或者装载到hadoop、数据仓库中做离线分析和挖掘。
   4. 运营指标:Kafka也经常用来记录运营监控数据。包括收集各种分布式应用的数据,生产各种操作的集中反馈,比如报警和报告。
   5. 流式处理:比如spark streaming和storm

重要概念:
    Broker:Kafka集群包含一个或多个服务器,这种服务器被称为broker
    Topic:每条发布到Kafka集群的消息都有一个类别,这个类别被称为Topic。(物理上不同Topic的消息分开存储,逻辑上一个Topic的消息虽然保存于一个或多个broker上但用户只需指定消息的Topic即可生产或消费数据而不必关心数据存于何处)
    Producer:负责发布消息到Kafka broker
    Consumer:消息消费者,向Kafka broker读取消息的客户端。
    Consumer Group:每个Consumer属于一个特定的Consumer Group(可为每个Consumer指定group name,若不指定group name则属于默认的group)。
    Partition: Partition是物理上的概念,每个Topic包含一个或多个Partition.
    Leader:每个partition有多个副本,其中有且仅有一个作为Leader,Leader是当前负责数据的读写的partition。
    Follower:Follower跟随Leader,所有写请求都通过Leader路由,数据变更会广播给所有Follower,Follower与Leader保持数据同步。如果Leader失效,则从Follower中选举出一个新的Leader。
    
Kafka特性:
    1. 支持Hadoop并行数据加载
    2. 高吞吐量 [2]  :即使是非常普通的硬件Kafka也可以支持每秒数百万 [2]  的消息
    3. 通过O(1)的磁盘数据结构提供消息的持久化,这种结构对于即使数以TB的消息存储也能够保持长时间的稳定性能。
    4. 支持Kafka Server间的消息分区,及分布式消费,同时保证每个partition内的消息顺序传输。
    5. 同时支持离线数据处理和实时数据处理。
    
俩种模式:
    1. 发布订阅消息传输模式
    2. 点对点消息队列传输模式

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!