kafka-安装与简单使用-01

一、基础概念

  1. Kafka是什么
    Kafka 是一个分布式流数据系统,使用 Zookeeper 进行集群的管理。 与其他消息系统类似,整个系统由生产者、 Broker Server 和消费者三部分组成,生产者和消费者由开发人员编写,通过 API 连接到 Broker Server 进行数据操作。
  2. 什么是生产者、消费者
  • 生产者
  • 消费者
  1. 什么是broker
    消息队列中常用的概念,在Kafka中指部署了Kafka实例的服务器节点。(即Kafka的实例,通常一台服务器就开启一个broker)
  2. 什么是topic
    用来区分不同类型信息的主题。比如应用程序A订阅了主题t1,应用程序B订阅了主题t2而没有订阅t1,那么发送到主题t1中的数据将只能被应用程序A读到,而不会被应用程序B读到(可以理解为电视的付费频道,谁付钱谁才能看)
  3. Kafka有什么功能
  • 发布订阅消息i系统
  • 存储功能
  • 流处理功能
    Kafka中消息是以键值对形式进行存储(key - value),如果不指定key,key的值为空,Kafka会以轮询的方式将消息放到不同的分区中,如果指定了key,那么相同key的消息会放到相同的分区

一个topic对应不同分区(partition),一个分区对应多个broker实例

分区保证了Kafka可以线性扩展,如果分区只存在一份,那么数据丢失,kafka中通过设置副本因子(replication-faction)来设置副本数量,假设副本因子为3,就是包含主分区在内,合计三份副本。
Kafka会选择一份副本作为主分区,即leader,所有生产者的写入都是写入到leader中,数据的读取也是从leader中读取,其他副本(follower)只负责从leader中复制数据,保持数据的一致
Kafka会监测所有副本的状态,通过ISR集合记录所有副本,假设有副本编号101、102、103,即ISR = 【101,102,103】,当有副本不能同步leader数据,或者数据落后较多,Kafka会将其从ISR中剔除,当其恢复使用并将追赶上来后再恢复到ISR中

二、安装所需

  1. 安装包传输
  • zookeeper安装包
  • kafka安装包
  1. 解压安装
    tar 命令解压
    参数:
  • -v :压缩的过程中显示文件!这个常用,但不建议用在背景执行过程!
  • -f :使用档名,请留意,在 f 之后要立即接档名喔!不要再加参数!
       例如使用『 tar -zcvfP tfile sfile』就是错误的写法,要写成
       『 tar -zcvPf tfile sfile』才对喔!
  • -x :解开一个压缩文件的参数指令!
  • -z :是否同时具有 gzip 的属性?亦即是否需要用 gzip 压缩?
  1. 配置Kafka
  • 先启动zookeeper

为什么依赖zookeeper
当消费者需要消费消息时,不能每次确认都需要和生产者建立连接 效率太低,zookeeper就充当生产者和消费者之间的协调处理者

  • 包含主目录:
    • bin 一些shell脚本
    • config 配置文件
    • libs 依赖包
    • site-docs 说明文档

三、实现Kafka分布式系统

由于只有一台机器,启动三个broker实例模拟分布式
实现步骤:

  1. 复制三分配置文件到指定文件夹etc
  2. 修改配置文件 ID、log名称、端口号等
  3. 通过bin目录下shell脚本启动三份配置文件的broker实例

切入bin目录
./kafka-server-start.sh ../etc/server-*.properties

  1. 创建完实例后创建指定topic

这里需要设置参数启动(REQUIED 必须的)

  • --list 查看都有哪些topic
  • --topic 设置topic名称
  • -- create 创建
  • -- describe 查看描述
  • -- partition 分区操作
  • -- replication factor 副本因子,设置总副本数量(包含leader)
  • -- replication-assignment 手动指定哪些分区负责哪些broker
    ./kafka-topics.sh --zookeeper localhost:2181 --create --topic test --partitions 3 --replication-factor 2 (三个分区两个副本名称为test的topic)
  1. 查看创建的topic test(使用describe参数)

./kafka-topics.sh --zookeeper localhost:2181 --topic test --describe

  1. 展示截图


    创建的三个broker

四、配置文件

Kafka中配置文件 server.properties中有三个重要参数

  • broker.id
  • log.dirs
  • zookeeper.connect
    除此之外还有监听器listeners,指定broker启动时本机的监听名称、端口
    配置方式有四种:
  1. listeners=PLAINTEXT://:9092(默认)
  2. listeners=PLAINTEXT://192.168.1.10:9092
  3. listeners=PLAINTEXT://hostname:9092
  4. listeners=PLAINTEXT://0.0.0.0:9092
    其中123没区别,第4种适用于多网卡

除listeners外还有advertised.listeners

  • listeners 指定broker启动时本机监听端口,给服务端使用
  • advertised.listeners 对外发布的访问IP和端口,注册到zookeeper中,给客户端用的


    image.png

客户端拿着advertised,listeners提供的访问地址和端口去找服务端broker要服务
默认advertised,listeners不需要配置,采用listeners的配置

内网访问

image.png

如图:
broker 服务端里使用两种方式监听,上边的是省略IP,下边采用主机名
记录到zookeeper中的advertised.listeners中,上边采用内网IP,下边为主机名
客户端里的advertised.listeners 上边为内网地址,下边为主机名称

这里有个条件,客户端与服务端要采用同一网段IP,这样才能用内网地址,采用主机名需要在客户端中 /etc/host 配置文件中加入 主机名对应IP的配置

外网访问

image.png

broker中 EXTERNAL 0.0.0.0 为所有监听IP的端口9093
对应到zookeeper中必须是公网IP
客户端(不在同一网段)必选拿着公网IP才能访问,主机名也是对着 /etc/host配置文件中找公网IP才能访问服务端

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,088评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,715评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,361评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,099评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 60,987评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,063评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,486评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,175评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,440评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,518评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,305评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,190评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,550评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,880评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,152评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,451评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,637评论 2 335

推荐阅读更多精彩内容