第十七章 Kafka

news2024/11/23 15:08:19

一、特性

- 高吞吐、低延迟
- 高伸缩性
- 持久性、可靠性
- 容错性
- 高并发
   
通过 O(1)的磁盘数据结构提供消息的持久化,这种结构对于即使数以 TB 的消息存储也能够保持长时间的稳定性能。
高吞吐量:即使是非常普通的硬件 Kafka 也可以支持每秒数百万的消息。
支持通过 Kafka 服务器和消费机集群来分区消息。
支持 Hadoop 并行数据加载。
  

二、场景

- 消息传递
- 网站活动跟踪
- 指标监控
- 日志聚合
   

三、安装

3.1 单机版
官网地址:https://kafka.apache.org/downloads
   
1. 进入 /usr/local/soft 目录;
cd /usr/local/soft
  
2. 下载 kafka;
wget https://archive.apache.org/dist/kafka/2.5.0/kafka_2.13-2.5.0.tgz
  
3. 解压
tar -xzvf kafka_2.13-3.2.1.tgz
   
4. 启动 zookeeper;
- 后台启动 ZK:
bin/zookeeper-server-start.sh -daemon config/zookeeper.properties &
   
- 检查 zookeeper 是否启动成功:
ps -ef|grep zookeeper
    
5. 启动 kafka;
- 修改相关配置
vim config/server.properties
     # 取消注释,改成本机IP:
     listeners=PLAINTEXT://192.168.43.10:9092
     # num.partitions后面增加2行。
     # 发送到不存在topic自动创建。允许永久删除topic。
     num.partitions=1
     auto.create.topics.enable=true
     delete.topic.enable=true
   
- 后台启动 kafka(kafka 安装目录下):
nohup ./bin/kafka-server-start.sh ./config/server.properties &
  
6. 创建 Topic
- 创建一个名为 gptest 的 topic ,只有一个副本,一个分区:
sh bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic gptest

- 查看已经创建的 topic:
sh bin/kafka-topics.sh -list -zookeeper localhost:2181
      
7. 启动 Producer
- 打开一个窗口,在 kafka 解压目录下:
sh bin/kafka-console-producer.sh --broker-list localhost:9092 --topic gptest
   
8. 启动 Consumer
- 在一个新的远程窗口中:
sh bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic gptest --from-beginning
   
9. Producer 窗口发送消息
- 输入 hello world 回车
  
- 消费者收到了消息:
    
3.2 伪集群
1. 进入 /usr/local/soft 目录;
cd /usr/local/soft
  
2. 下载 kafka;
wget https://archive.apache.org/dist/kafka/2.5.0/kafka_2.13-2.5.0.tgz
 
3. 解压
tar -xzvf kafka_2.13-3.2.1.tgz
  
4. 启动 zookeeper;
- 后台启动 ZK:
bin/zookeeper-server-start.sh -daemon config/zookeeper.properties &
   
- 检查 zookeeper 是否启动成功:
ps -ef|grep zookeeper
  
5. 修改配置文件
- 修改配置文件
     cd config
     cp server.properties server1.properties 
     cp server.properties server2.properties 
     cp server.properties server3.properties 
    
- 修改配置文件中的 broker.id 分别为 1、2、3
listeners 这一行取消注释,端口号分别为 9093、9094、9095
log.dirs 分别设置为`kafka-logs1、kafka-logs2、kafka-logs3(先创建)
   
mkdir -p /tmp/kafka-logs1 /tmp/kafka-logs2 /tmp/kafka-logs3
   
- server1.properties 的配置:
broker.id=1
listeners=PLAINTEXT://192.168.44.161:9093
log.dirs=/tmp/kafka-logs1
   
- server2.properties 的配置:
broker.id=2
listeners=PLAINTEXT://192.168.44.161:9094
log.dirs=/tmp/kafka-logs2
   
- server3.properties 的配置:
broker.id=3
listeners=PLAINTEXT://192.168.44.161:9095
log.dirs=/tmp/kafka-logs3
  
6. 启动 3 个服务
   cd ../bin
   ./kafka-server-start.sh -daemon ../config/server1.properties
   ./kafka-server-start.sh -daemon ../config/server2.properties
   ./kafka-server-start.sh -daemon ../config/server3.properties
     
PS:如果遇到 zk node exists 的问题,先把 brokers 节点删掉(临时解决方案)。
  
7. 集群下创建 Topic
- 在 bin 目录下,创建一个名为 `gptest` 的 `topic` ,只有一个副本,一个分区:
sh kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic gptest
  
- 查看已经创建的 topic:
sh kafka-topics.sh -list -zookeeper localhost:2181
  
8. 集群下启动 Consumer
- 在一个新的远程窗口中:
sh kafka-console-consumer.sh --bootstrap-server 192.168.44.161:9093,192.168.44.161:9094,192.168.44.161:9095 --topic gptest --from-beginning
  
9. 集群下启动 Producer
- 打开一个新的窗口,在 kafka 解压目录下:
sh kafka-console-producer.sh --broker-list 192.168.44.161:9093,192.168.44.161:9094,192.168.44.161:9095 --topic gptest
  
10. 集群下 Producer 窗口发送消息
- 在生产者窗口输入 hello world 回车。
- 在消费者窗口查看消息。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1562182.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MSOX3104T是德科技MSOX3104T示波器

181/2461/8938产品概述: Keysight MSOX3104T X 系列示波器提供您更快获得测量见解所需的所有性能和功能,再次重新定义了您对通用示波器的期望。除了触摸的优点外,内置 USB 主机和 USB 设备端口还使 PC 连接变得容易。InfiniiVision MSOX3104…

Nginx 日志输出配置json格式

nginx日志输出配置json格式 nginx服务器日志相关指令主要有两条: (1) 一条是log_format,用来设置日志格式 (2) 另外一条是access_log,用来指定日志文件的存放路径、格式和缓存大小。 log_format指令用来设置日志的记录格式,它的语…

【面试八股总结】传输控制协议TCP(一)

一、什么是TCP协议 TCP是传输控制协议Transmission Control Protocol TCP 是面向连接的、可靠的、基于字节流的传输层通信协议。 面向连接的:每条TCP连接杜只能有两个端点,每一条TCP连接只能是点对点的(一对一)可靠的&#xff1a…

iPhone设备中如何分析和解决应用程序崩溃日志的问题

​ 目录 如何在iPhone设备中查看崩溃日志 摘要 引言 导致iPhone设备崩溃的主要原因是什么? 使用克魔助手查看iPhone设备中的崩溃日志 奔溃日志分析 总结 摘要 本文介绍了如何在iPhone设备中查看崩溃日志,以便调查崩溃的原因。我们将展示三种不同的…

WPF学习笔记-FlowDocument实现表格单元格垂直居中以及边框设置

文章目录 概述一、基本方案1.1 添加Grid1.2 添加列1.3 添加行1.4 添加Grid的时候同时添加行和列1.5 添加元素1.6 获取指定单元格的元素1.7 添加TextBlock元素1.7.1 直接添加字符串1.7.2 添加Paragraph1.8 获取文本内容1.9 获取元素二、其他操作2.1 设置边框2.2 设置隔行颜色2.3…

深入剖析Xen与KVM虚拟化技术及其架构特点

引言 在现代数据中心与云计算领域中,虚拟化技术已经成为提升资源利用率、增强灵活性与可扩展性的重要基石。其中,Xen与KVM作为两种备受瞩目的开源虚拟化解决方案,分别以其独特的设计理念与技术创新引领着行业的进步与发展。Xen源自剑桥大学的…

Excel 隔几行批量插入空白行

例如如下表格,每隔6行插入一行数据: 1)第7个单元格输入1 2)选中6个单元格,然后双击填充数据: 3)F5 找到常量 Ctrlshift 复制插入的数据,然后选中数据 按F5,定位到空值

非关系型数据库之Redis配置与优化

一、关系数据库与非关系型数据库 1.1关系型数据库 关系型数据库是一个结构化的数据库,创建在关系模型(二维表格模型)基础上一般面向于记录。SQL语句(标准数据查询语言)就是一种基于关系型数据库的语言,用…

Unix 网络编程, Socket 以及bind(), listen(), accept(), connect(), read()write()五大函数简介

Unix网络编程是针对类Unix操作系统(包括Linux、BSD以及其他遵循POSIX标准的操作系统)进行网络通信开发的技术领域。网络编程涉及创建和管理网络连接、交换数据以及处理不同层次网络协议栈上的各种网络事件。在Unix环境中,网络编程通常涉及到以…

分类预测 | Matlab实现CNN-GRU-Mutilhead-Attention卷积神经网络-门控循环单元融合多头注意力机制多特征分类预测

分类预测 | Matlab实现CNN-GRU-Mutilhead-Attention卷积神经网络-门控循环单元融合多头注意力机制多特征分类预测 目录 分类预测 | Matlab实现CNN-GRU-Mutilhead-Attention卷积神经网络-门控循环单元融合多头注意力机制多特征分类预测分类效果基本介绍模型描述程序设计参考资料…

Web实例_报表开发01-基于HTML进行报表呈现

Web实例_报表开发01-基于HTML进行报表呈现 报表开发是一种在利用了软件的基础上, 针对不同类型的报表, 进行开放的工作。 而以报表的方式, 将相关的内容、数值呈现出来的话, 则会起到更好的概况作用。 再加上, 报表开发工作是依托于计算机来完成的, 因此在效率、完整性等方面…

蓝桥杯-穿越雷区

题目要求 需求:从一个方格中A点,按要求移动到B点。 要求:每次只能走上下左右,每次只能走一次,每次是轮换穿越’‘,’-两个,否则就会能量失衡,发生爆炸。 使用的算法:这题典型的就是使…

6款Mac垃圾清理软件横评 Mac电脑清理软件哪个好 cleanmymac评测

鉴于苹果笔记本昂贵的硬盘价格,导致我们不得不定期清理自己的硬盘空间,释放给真正有用的各种程序等。 即便我们把程序安装到外置硬盘,但是程序运行时的缓存,仍然是在内置的硬盘中。 今天就让我们对比看看,目前市面上…

Linux如何连接github仓库

一.创建一个github账号 如何创建一个github账号 二.在github上创建一个仓库 登录上github后出现这个界面 然后点击左上角头像,在按照图片位置点击: 继续按照图片上的位置进行点击: 创建成功: 三.云主机连接Github仓库 1.在linux中…

openstack云计算(二)——使用Packstack安装器安装一体化OpenStack云平台

初步掌握OpenStack快捷安装的方法。掌握OpenStack图形界面的基本操作。 一【准备阶段】 (1)准备一台能够安装OpenStack的实验用计算机,建议使用VMware虚拟机。 (2)该计算机应安装CentOS 7,建议采用CentO…

探究云手机的海外原生IP优势

随着全球数字化进程的加速,企业越来越依赖于网络来扩展其业务。在这个数字时代,云手机作为一种创新的通信技术,已经成为了企业网络优化的重要组成部分。云手机支持海外原生IP的特性,为企业在国际市场上的拓展提供了全新的可能性。…

基础布局之LinearLayout线性布局

目录 一、基础属性二、重点属性2.1 weight(权重)属性:2.2 gravity 一、基础属性 LinearLayout默认方向是水平排放 属性作用android:id控件的ID,可以通过这个ID号来找到对应的控件android:layout_width控件的宽度android:layout_height控件的高度androi…

解析Apache Kafka:在大数据体系中的基本概念和核心组件

关联阅读博客文章:探讨在大数据体系中API的通信机制与工作原理 关联阅读博客文章:深入解析大数据体系中的ETL工作原理及常见组件 关联阅读博客文章:深度剖析:计算机集群在大数据体系中的关键角色和技术要点 关联阅读博客文章&a…

大数据系列 | Kafka架构分析及应用

大数据系列 | Kafka架构分析及应用 1. Kafka原理分析2. Kafka架构分析3. Kafka的应用3.1. 安装Zookeeper集群3.2. 安装Kafka集群3.3. 生产者和消费者使用3.3.1. 生产者使用3.3.1. 消费者使用 4. Kafka Controller控制器 1. Kafka原理分析 Kafka是一个高吞吐量、 持久性的分布式…

vue项目打包优化之-productionSourceMap设置

productionSourceMap 是一个用于配置生产环境下是否生成 source map 文件的选项。在 webpack 中,source map 文件是一种映射关系文件,可以将编译后的代码映射回原始源代码,方便开发者在调试时定位问题。 在生产环境中,通常不建议暴…