前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Kafka 知识整理

Kafka 知识整理

作者头像
tonglei0429
发布2019-07-19 19:43:16
3570
发布2019-07-19 19:43:16
举报

Kafka 适用于

  • 消息队列 可以类比于 ActiveMQ 或是 RabbitMQ
  • 网站活跃度分析跟踪 用于检测 Web 应用的访问次数与用户行为
  • 监控工具 检测应用的用户行为,并用于分析
  • 日志聚合中心
  • 用于处理流
  • 消息源
  • 日志同步 可类比于 Apache BookKeeper

组件与角色

  • Topics(主题) 特定类型的消息
  • Partition(分区) 主题内对消息的实际存储空间
  • Partition offset(分区偏移) 分区内消息的序列标识号
  • Replicas of partition(分区备份) 用于备份数据,防止分区内数据丢失
  • Brokers(经纪人/代理人) 用于维护和发布分区上数据的服务。一个分区至多有一个代理人,一个代理人可以管理0或多个分区,代理是无状态的
  • Kafka Cluster(Kafka集群) 具有多个代理的kafka应用被称为kafka集群,扩展kafka集群无需停机
  • Producers(生产者) 向kafka主题推送消息(生产者 -> 主题 -> 代理人 -> 分区)
  • Consumers(消费者) 从kafka主题读取消息
  • Leader(领导者) 分区所在服务器中,唯一一个负责读写分区内数据的服务器,每个分区必有一个 leader
  • Follower(追随者) 备用 leader, 当 leader 失败后,kafka 会从 follower 中选举一个新的leader。follower平时是一个普通的 Consumer
  • Zookeeper 用于管理和协调Kafka代理,通知生产者和消费者新产生或失败的代理

常用操作

Kafka 安装

  1. 安装 Java
  2. 安装和启动 Zookeeper (默认 localhost:2181)
  3. 下载解压最新 kafka https://www.apache.org/dyn/closer.cgi?path=/kafka/2.2.0/kafka_2.12-2.2.0.tgz $ wget https://www.apache.org/dyn/closer.cgi?path=/kafka/2.2.0/kafka_2.12-2.2.0.tgz $ tar -zxf kafka_2.12-2.2.0.tgz
  4. 启动服务 (默认 9092) $ bin/kafka-server-start.sh config/server.properties
  5. 停止服务 $ bin/kafka-server-stop.sh

Kafka 启动

$ bin/kafka-server-start.sh config/server.properties

创建单节点主题

创建 1个分区 1个备份 名为 "custom-topic-name" 的主题,并同步到 Zookeeper(localhost:2181)

$ bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 
--partitions 1 --topic custom-topic-name

主题列表

$ bin/kafka-topics.sh --list --zookeeper localhost:2181

启动生产者

Kafka 自带终端控制指令,可在命令行向 Kafka 主题发送消息

$ bin/kafka-console-producer.sh --broker-list localhost:9092 --topic custom-topic-name
...
hello world

启动消费者

Kafka 自带终端控制指令,可在命令行打印主题内的新消息

bin/kafka-console-consumer.sh --zookeeper localhost:2181 —topic custom-topic-name 
--from-beginning
...
hello world

单节点多代理

复制 server.properties 到两个新文件 [server-one.properties, server-two.properties]

config / server-one.properties

# The id of the broker. This must be set to a unique integer for each broker.
broker.id=1
# The port the socket server listens on
port=9093
# A comma seperated list of directories under which to store log files
log.dirs=/tmp/kafka-logs-1

config / server-two.properties

# The id of the broker. This must be set to a unique integer for each broker.
broker.id=2
# The port the socket server listens on
port=9094
# A comma seperated list of directories under which to store log files
log.dirs=/tmp/kafka-logs-2

在每台机器(节点)上分别启动

bin/kafka-server-start.sh config/server.properties
bin/kafka-server-start.sh config/server-one.properties
bin/kafka-server-start.sh config/server-two.properties

创建多节点主题

--replication-factor 3, 3 = 代理数

bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 3 -partitions 1 --topic custom-multi-broker-topic-name

查看多节点主题描述

bin/kafka-topics.sh --describe --zookeeper localhost:2181 --topic custom-multi-broker-topic-name

修改主题

bin/kafka-topics.sh —zookeeper localhost:2181 --alter --topic custom-topic-name --partitions (count)

删除主题

bin/kafka-topics.sh --zookeeper localhost:2181 --delete --topic custom-topic-name
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Kafka 适用于
  • 组件与角色
  • 常用操作
    • Kafka 安装
      • Kafka 启动
        • 创建单节点主题
          • 主题列表
            • 启动生产者
              • 启动消费者
                • 单节点多代理
                  • 创建多节点主题
                    • 查看多节点主题描述
                      • 修改主题
                        • 删除主题
                        相关产品与服务
                        领券
                        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档