• 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订阅并消费消息
  • 相关阅读:
    Eclipse中支持js提示
    数据库命名规则
    JavaWeb 命名规则
    Ajax&json
    js中,var 修饰变量名和不修饰的区别
    javaScript知识点
    Bootstrap 栅格系统
    文本框如果不输入任何内容提交过后是一个空字符串还是null
    根据汇总数量依次扣减的SQL新语法
    asp.net中使用forms验证
  • 原文地址:https://www.cnblogs.com/cherish010/p/9013372.html
Copyright © 2020-2023  润新知