zoukankan      html  css  js  c++  java
  • Kafka架构简介

    一、kafka的架构

    1、Broker

        kafka集群包含一个或者多个服务器,这种服务器就叫做Broker

    2、Topic

        每条发布到kafka集群的消息都有一个类别,这个类别就叫做Topic(逻辑上的概念,物理上不同的Topic的消息分开存储,逻辑上一个topic的消息虽然保存于一个或者多个broker上但是用户只需指定消息的Topic,即可生产或者消费数据而不必关心数据存储在何处)

    3、Partition

        Partition是物理上的概念,每个Topic对应一个或者多个Partition

    4、Producer

        负责将消息发送到kafka的broker服务器上

    5、Consumer

        消息消费者,向kafka broker读取消息的客户端

    6、Consumer Group

        high-level  consumer-API中,每个consumer都属于一个consumer group,每个consumer group会有多个consumer,但每个消息只能被consumer group的一个consumer消费,但可以被多个group 消费(可为每个Consumer指定consumer name,如果不指定则属于默认的group)

    7、replica

       partition 的副本,保障 partition 的高可用

    8、leader

       replica 中的一个角色, producer 和 consumer 只跟 leader 交互

    9、follower

        replica 中的一个角色,从 leader 中复制数据

    10、controller

        kafka 集群中的其中一个服务器,用来进行 leader election 以及 各种 failover

    11、zookeeper

        kafka 通过 zookeeper 来存储集群的 meta 信息

    二、kafka的拓扑结构

    一个典型的Kafka集群包含若干个producer(可以是web端产生的page view,或者是服务器日志,系统cpu,memery等),若干个broker(kafka支持水平发生扩展,一般broker数量越多,集群吞吐率越高),若干Consumer group,以及一个zookeeper集群,kafka通过zookeeper管理集群配置,选举leader,以及在consumer group发生变化时进行rebalance。Producer使用push模式将消息发布到broker,Consumer使用pull模式从broker订阅并消费消息
  • 相关阅读:
    在一台Linux服务器上安装多个MySQL实例(二)--使用单独的MySQL配置文件
    在一台Linux服务器上安装多个MySQL实例(一)--使用mysqld_multi方式
    MySQL复制(四)--多源(主)复制
    MySQL复制(三)--基于全局事物标识符(GTID)配置复制
    类加载机制详解
    字符串常量池理解
    JVM内存模型
    Java设计模式之单例模式
    forkjoin及其性能分析,是否比for循环快?
    集合排序Comparable和Comparator有什么区别?
  • 原文地址:https://www.cnblogs.com/cherish010/p/9013372.html
Copyright © 2011-2022 走看看