• Kafka学习笔记


    ⼀、Kafka基本术语

    1、⻆⾊

    (1)主题(Topic):为每个业务、每个应⽤甚⾄是每类数据都创建的专属主题。

    (2)⽣产者(Producer):向主题发布消息的客户端应⽤程序称为⽣产者。

    (3)消费者(Consumer):订阅这些主题消息的客户端应⽤程序称为消费者。

    2、客户端和服务端

    (1)⽣产者和消费者统称为客户端(Clients)。

    (2)Broker是负责接收和处理客户端发送过来的请求,以及对消息进⾏持久化的服 务进程。

    (3)服务端(Server)由称为Broker的服务进程组成。(⼀个Kafka集群由多个Broker的 服务进程组成)。

    3、⾼可⽤

    (1)第⼀种⽅式:将不同的Broker分散运⾏到不同的机器上,这样如果集群中某⼀ 台机器宕机,即使在它上⾯运⾏的所有Broker 进程都挂掉了,其他机器上的Broker 也依然能够对外提供服务。

    (2)第⼆种⽅式:备份机制(Replication),就是把相同的数据拷⻉到多台机器 上,⽽这些相同的数据拷⻉在Kafka中被称为副本(Replica);副本的数量是可以配 置的,这些副本保存着相同的数据,但却有不同的⻆⾊和作⽤。Kafka定义了两种副 本:领导者副本(Leader Replica)和追随者副本(Follower Replica)。领导者副本 对外提供服务,即与客户端程序进⾏交互;追随者副本被动地追随领导者副本,不能 与外界交互。

    4、副本⼯作机制

    ⽣产者向领导者副本写消息,消费者向领导者副本读消息。追随者副本只做⼀件 事:请求领导者副本把最新⽣产的消息发给它,保持与领导者同步。

    5、伸缩性(Scalability)问题的解决

    伸缩性是分布式系统中⾮常重要的问题。何为伸缩性?我们拿副本来说,虽然现 在有了领导者副本和追随者副本,但倘若领导者副本积累了⼤量的数据以⾄于单台 Broker 机器都⽆法容纳了,Kafka为了避免这个问题,就是把数据分割成多份保存在 不同的Broker 上。这种机制其实就是所谓的分区(partitioning)。

    6、分区机制 Kafka 中的分区机制指的是将每个主题划分成多个分区(Partition),每个分区 是⼀组有序的消息⽇志。⽣产者⽣产的每条消息只会被发送到⼀个分区中,也就是说 如果向⼀个双分区的主题发送⼀条消息,这条消息要么在分区 0 中,要么在分区 1 中。如你所⻅,Kafka 的分区编号是从 0 开始的,如果 Topic 有 100 个分区,那么它 们的分区号就是从 0 到 99。

    ⼆、Kafka的性质

    1、性质

    Kafka既是消息引擎,⼜是分布式流处理平台。

    2、设计之初的三个特性

    • 提供⼀套API实现⽣产者和消费者。

    • 降低⽹络传输和磁盘存储开销。

    • 实现⾼伸缩性架构。

    3、Kafka与其他流处理框架相⽐的优势

    • 更容易实现端对端的正确性。

    • 对于流式计算的定位。

    补充:什么叫流处理?什么叫批处理? 答:流处理:⼀种允许⽤户在接收到的数据后的短时间内快速查询连续数据流和检测 条件的技术,检测时间从⼏毫秒到⼏分钟不等。 批处理:当需要向数据库中插⼊⼤量数据时,在批处理之前,要执⾏100条SQL,就 需要100次打开关闭连接和⽹络传输。⽽批处理就是将⼤量的SQL打包成⼀个批次, 发送给服务器,服务器接受数据,打开批,⼀次执⾏批量SQL,减少与数据库的交 互,提⾼程序效率。

    三、Kafka版本发展时间线

  • 相关阅读:
    json转MAP
    责任链模式
    单例模式
    代理模式
    策略模式
    mysql触发器的使用
    Java 中的日期和时间
    MySQL插入数据前检测唯一性
    java字符串转为Map类型:split()方法的应用
    java Socket实例
  • 原文地址:https://www.cnblogs.com/xusp/p/14461191.html
Copyright © 2020-2023  润新知