• Kafka快速入门


    一.简介

      Kafka是由Apache软件基金会开发的一个开源流处理平台,由ScalaJava编写。Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者规模的网站中的所有动作流数据。Kafka是一个高吞吐的分布式消息队列系统。特点是生产者消费者模式,先进先出(FIFO)保证顺序,本身不会丢失数据,默认清理7天之前的数据。消息队列常见常见场景:系统之间解耦合,峰值压力缓冲,异步通信等等。

    二..架构

      producer:消息生产者

      consumer:消息消费者

      broker:Kafka集群的servevr,负责处理消息读、写请求,存储数据

      topic:消息队列、分类

      

    三.特点

      1.一个topic分成多个partition【提高并行度】

      2.每个partition内部消息强有序【FIFO】,其中的每个消息都有一个序号叫offset【偏移量】

      3.一个partition只对应一个broker,一个broker可以管理多个partition

      4.消息直接写入文件,并不是保存在内存中【NIO:不经过用户内存,直接写入磁盘】

      5.默认【一周】根据时间策略删除数据,而不是消费完就删除  

      6.producer自己决定往哪个partition写消息,可以基于轮询【负载均衡】策略,或者基于hash策略

      7.consumer自己维护消费到哪个offset

      8.每个consumer都有对应的group,每个consumer消费不同的partition,一个消息在group内只消费一次

      9.每个group各自独立,互不影响

      10.高性能,单节点支持上千个客户端,百MB/s吞吐

      11.分布式,数据副本冗余,流量负载均衡,可扩展

      12.kafka和很多消息系统策略不同,很多消息系统是消费完就删除,而kafka是根据时间策略进行删除的,不是消费完就删除,在kafka里面没有消费完,只有过期。

      备注:零拷贝

      

    四.Kafka与其它消息队列比较

      1.RabbitMQ:分布式,支持多种MQ协议,重量级

      2.ActiveMQ:与RabbitMQ类似

      3.ZeroMQ:以库的形式提供,使用复杂,无持久化

      4.Redis:纯内存性能好,持久化较差

    五.相关命令

      

      

      

    六.优先副本策略

      kafka中有一个优先副本(preferred replicas)的概念。如果一个分区有3个副本,且这3个副本的优先级分别为0,1,2,根据优先副本的策略,0优先级副本所在的broker会作为leader。当这个broker挂掉时,会自动启动1优先级副本所在的broker当做leader。当0优先级副本所在的borker重启后,会自动切换回该borker作为leader。这样就不会负载不均衡和资源浪费,这就是leader的均衡机制。

  • 相关阅读:
    判断文件结束,feof……
    第五篇 分治思想(例子待加)
    第四篇 枚举思想
    第三篇 贪心思想
    第二篇 递归思想
    第一篇 递推思想
    爬虫系列
    整数划分问题
    html中a标签做容器的问题
    H5学习小结——div+css创建电子商务静态网页
  • 原文地址:https://www.cnblogs.com/yszd/p/10549199.html
Copyright © 2020-2023  润新知