kafka的认识,安装zookeeper,kafka

Posted yangxiaoli

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了kafka的认识,安装zookeeper,kafka相关的知识,希望对你有一定的参考价值。

一,kafka是什么

  kafka是一个分布式的发布-订阅消息系统,能够支持海量的数据传递,在高效和实时的消息处理业务系统中,kafka都有广泛应用,kafka将消息持久化到磁盘中,并且创建了备份保存了数据的安全,kafka在保证了较高的处理速度的同时,又能保证数据处理的低延迟和数据的零丢失。

二,特性
  1、高吞吐量,低延迟:kafka每秒可以处理几十万条数据,他的延迟最低只有几毫秒,每个主题可以分多个分区,消费组对分区进行消费。

  2、可扩展性:kafka集群支持热扩展

  3、持久性、可靠性:消息被持久化到本地磁盘,并且支持数据备份,防止数据丢失

  4、容错性:允许集群中节点失败

  5、高并发:支持数千个客户端同时读写

三、概念详解

  技术图片

 

   1、Producer  :数据的生产者将数据发布到kafka的topic中,broker接收到生产者发送的消息之后,将该消息追加到当前用于追加数据的segment文件中,生产者发送的消息,存储到一个partition(分区)中,生产者也可以指定存储在某一个分区中

  2、Consumer: 消费者可以从broker中读取数据,消费者可以消费多个topic中的数据

  3、Topic:消息的种类

  4、Partition: topic中的数据分割成一个活多个partition(分区),每个topic至少有一个partition。每个partition的数据使用多个segment文件存储。partition中的数据存储是有序的,如果topic有多个partition,消费数据时不能保证数据的顺序,在需要严格保证消息的消息顺序的场景下,需要将partition数目设为1

  5、Partition Offset :每条消息在分区中存在的位置

  6、Replicas of partition:副本是一个分区的备份,副本不会被消费者消费,副本只能防止数据丢失

  7.broker:kafka集群包含一个或多个服务器,服务器节点称为broker,broker存储topic的数据

  8、Leader: 负责数据的读写,每个partition有多个副本,其中有且仅有一个作为leader

  9、Follower: follower跟随leader,所有写的请求都通过leader路由,数据变更会广播给所有的follower,follower与leader保持同步,如果leader失效,就从follower中选举一个新的leader,当两者都挂掉,卡住、或者同步太慢,leader会把这个follower从”in sync replicas“(ISR)列表中删除,重新创建一个follower

  10、zookeeper: 负责维护和协调broker,当kafka系统中新增或者某个broker发生故障失效时,由zookeeper通知生产者和消费者,生产者和消费者根据zookeeper的broker状态信息协调数据的发布和订阅任务

  11、AR(Assigned Replicas): 分区中所有副本统称为AR

  12、ISR(in sync replicas): 所有与leader部分保持一定程度的副本(包括leader副本在内)组成ISR

  13、OSR(Out_of_Sync Replicas): 与leader副本同步滞后过多的副本

  14、HW(Hign Watermark):高水位,标识了一个特定的offset,消费者只能拉取到这个offset之前的消息

  15、LEO(Log End Offset): 即日志末端位移,记录了该副本底层日志中下一条消息的位移值,也就是说,如果LEO=10,那么标识该副本保存了10条消息,位移值范围是[0,9]

          技术图片

 

 四、安装zookeeper

    zookeeper是安装Kafka的必要组件,Kafka通过zookeeper来实现对元数据信的 管理,包括集群、主题、分区等内容。

    •     官网下载zookeeper,上传致虚拟机技术图片

       

                 解压tar -zxvf zookeeper-3.4.14.tar.gz

    • 修改zookeeper的配置文件,进入安装路径conf目录,将zoo.sample.cfg改为zoo.cfg技术图片
    • 启动zookeeper     进入bin目录: zkServer.sh start                                                                                                 技术图片 
    •   如果命令找不到,可以去配置环境变量

      技术图片

 

 五、安装Kafka

  •     官网下载,上传虚拟机技术图片

     

     

  • 解压启动   bin/kafka-server-start.sh  config/server.properties 
  • 在server.properties中需要注意:技术图片

     

     

  • 启动完成之后,重新打开一个终端,验证启动进程 技术图片                                      

六、测试消息生产与消费

  1、创建一个主题

    bin/kafka-topics.sh -z00keeper localhost:2181 -create -topic heima -partitions 2 -replication-factor 1

      技术图片

 

  2、查看主题

    命令: bin/kafka- topics.sh -2ookeeper localhost:2181 -list

  技术图片

 

   3、查看主题详情  

  命令:bin/kafka-topics.sh --zookeeper localhost:2181 --describe --topic yangxiaoli

技术图片

 

   4.启动消费方接收消息

      bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic yangxiaoli

    技术图片

 

技术图片

 

 

   5.生产者发送消息

    命令: bin/kafka-console-producer.sh -broker-list 192.168.117.129:9092 --topic yangxiaoli

  技术图片

 

以上是关于kafka的认识,安装zookeeper,kafka的主要内容,如果未能解决你的问题,请参考以下文章

大白话带你认识 ZooKeeper !重要概念一网打尽!

从零开始搭建Kafka集群遇到的问题

kafka的认识,安装zookeeper,kafka

kafka深度研究之路-kafka和zookeeper 配置文件详细说明(来龙去脉)之zk配置

kafka安装和使用远程代码进行访问 ---附踩坑记录

kafka安装和使用远程代码进行访问 ---附踩坑记录