栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 云计算 > 云平台

Kafka安装与使用

云平台 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Kafka安装与使用

1 介绍

Kafka是最初由Linkedin公司开发,是一个分布式、支持分区的(partition)、多副本的(replica),基于zookeeper协调的分布式消息系统,它的最大的特性就是可以实时的处理大量数据以满足各种需求场景:比如基于hadoop的批处理系统、低延迟的实时系统、storm/Spark流式处理引擎,web/nginx日志、访问日志,消息服务等等。
kafka官方介绍

2 Kafka架构与工作流程 2.1 Kafka架构

kafka对消息的保存时根据Topic进行分类,发送消息的是Producer,消费消息的是Consumer。此外kafka集群是由多个kafka实例组成的,每个Server实例称之为Broker。
kafka集群依靠zookeeper集群保存一些kafka实例和Consumer的Metadata,保证集群的高可用、高可靠性

2.2 kafka中相关概念与术语
术语概念
Producer消息生产者,向kafka的Broker发送消息的客服端
Consumer消息消费者,向kafka的Broker接收消息的客服端
Topic事件流的分类区,按照不同类型的数据进行划分,类比于文件夹,不同类型的文件夹中存放不同类型的文件
BrokerKafka实例,多个Broker组成kafka集群。一个Broker可以存放不同的topic
Partition分区,为了实现拓展性,一个非常大的topic可以分不到多个Broker(服务器)上,一个topic可以分为多个partition,每个partition都是一个有序的队列。partition中的每条消息都会被分配一个有序的id(offset)。kafka只能保证一个分区中消息的顺序,不能保证一个topic的整体(多个partition间)的顺序【可能由于网络延时的问题,消费者消费消息时并不能保证先消费完指定分区上的消息】
ConsumerGroup消费者组,消息的读取是按照消费者组为单位进行读取的。一个topic能有多个消费值组CG,topic上的消息能复制到所有的消费者组上【概念上的复制,不是物理的复制】,但是每个分区只会把消息分给一个Consumer,意味着单个消费者仅仅会读取某个分区的数据,但是所有的消费者读取的数据会进行共享,从而得到topic中所有的消息,增加读取消息的效率
2.3 kafka工作流程

kafka是一个分布式系统,包含了可以通过TCP通讯协议互相沟通的Server端和Client端。如架构图所示,kafka的运行依托于多个【至少一个】kafka broker组成的集群,每个kafka broker的元数据都会注册到Zookeeper上,由其调度Producer生产端到底生产数据到哪个broker上【负载均衡实现】。集群以及注册中心的存在,意味着kafka是一个可拓展,高可用的消息系统。

消息的存放是分区的,意味着一个Topic主题可以分布在多个Kafka Broker的不同区域上。數據的這種分散式放置對於可伸縮性非常重要,因為它允許用戶端應用程式同時從/向多個Kafka Broker讀取和寫入數據。將新事件發佈到主題時,它實際上會追加到該主題的某個分區。具有相同事件密鑰的事件(例如,客戶或車輛 ID)將寫入同一分區,並且 Kafka ‎‎保證‎‎給定主題分區的任何使用者將始終以與寫入時完全相同的順序讀取該分區的事件【分区的存储空间是一个有序序列,确保消息的有序性】。‎

为了让系统数据具有容错力和高可用性,每个Broker上topic中分区的数据都有一个备份数据,当Leader Broker异常时, 为了不让数据丢失,Follow Broker将被推举为Leader Broker,承担用户端的读、写数据 的功能

3 Kafka Linux环境下的安装 3.1 Kafka安装

kafka需要在Java环境下运行,未安装JDK的可以参考我的文章进行Java环境的配置操作手册——linux系统下安装JDK

  1. 下载kafka 压缩包放到linux服务器上并解压
    压缩包存放路径: /root/software/

    cd /root/software
    ## 解压缩到当前目录
    tar -xzf kafka_2.13-3.1.0.tgz
    ## 修改压缩包的名字
    mv kafka_2.13-3.1.0 kafka
    

    kafka官方下载路径

3.2 Kafka运行

开启kafka运行环境

cd /root/software/kafka
### kafka集群离不开Zookeeper注册中心
bin/zookeeper-server-start.sh config/zookeeper.properties

### 另一个session会话中 打开kafka server
cd /root/software/kafka
bin/kafka-server-start.sh config/server.properties 

### 另一个会话中操作,消息是以topic来组织的,producer发布消息前需要先创建topic
cd /root/software/kafka
bin/kafka-topics.sh --create --topic quickstart-events --bootstrap-server localhost:9092
Created topic quickstart-events.

### 向指定的server 中的 quickstart-events发送消息
bin/kafka-console-producer.sh --topic quickstart-events --bootstrap-server localhost:9092
>hello
>world
>1234

### 另一个会话中操作,consumer接收指定消息
cd /root/software/kafka
bin/kafka-console-consumer.sh --topic quickstart-events --from-beginning --bootstrap-server localhost:9092

示例图如下



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/898093.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号