第十七章 Kafka

2024-04-02 15:52
文章标签 kafka 第十七章

本文主要是介绍第十七章 Kafka,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、特性

- 高吞吐、低延迟
- 高伸缩性
- 持久性、可靠性
- 容错性
- 高并发
   
通过 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=1auto.create.topics.enable=truedelete.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 configcp 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 回车。
- 在消费者窗口查看消息。

这篇关于第十七章 Kafka的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


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

相关文章

SpringBoot实现Kafka动态反序列化的完整代码

《SpringBoot实现Kafka动态反序列化的完整代码》在分布式系统中,Kafka作为高吞吐量的消息队列,常常需要处理来自不同主题(Topic)的异构数据,不同的业务场景可能要求对同一消费者组内的... 目录引言一、问题背景1.1 动态反序列化的需求1.2 常见问题二、动态反序列化的核心方案2.1 ht

深入理解Apache Kafka(分布式流处理平台)

《深入理解ApacheKafka(分布式流处理平台)》ApacheKafka作为现代分布式系统中的核心中间件,为构建高吞吐量、低延迟的数据管道提供了强大支持,本文将深入探讨Kafka的核心概念、架构... 目录引言一、Apache Kafka概述1.1 什么是Kafka?1.2 Kafka的核心概念二、Ka

一文详解kafka开启kerberos认证的完整步骤

《一文详解kafka开启kerberos认证的完整步骤》这篇文章主要为大家详细介绍了kafka开启kerberos认证的完整步骤,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录一、kerberos安装部署二、准备机器三、Kerberos Server 安装1、配置krb5.con

Debezium 与 Apache Kafka 的集成方式步骤详解

《Debezium与ApacheKafka的集成方式步骤详解》本文详细介绍了如何将Debezium与ApacheKafka集成,包括集成概述、步骤、注意事项等,通过KafkaConnect,D... 目录一、集成概述二、集成步骤1. 准备 Kafka 环境2. 配置 Kafka Connect3. 安装 D

Java中Springboot集成Kafka实现消息发送和接收功能

《Java中Springboot集成Kafka实现消息发送和接收功能》Kafka是一个高吞吐量的分布式发布-订阅消息系统,主要用于处理大规模数据流,它由生产者、消费者、主题、分区和代理等组件构成,Ka... 目录一、Kafka 简介二、Kafka 功能三、POM依赖四、配置文件五、生产者六、消费者一、Kaf

Kafka拦截器的神奇操作方法

《Kafka拦截器的神奇操作方法》Kafka拦截器是一种强大的机制,用于在消息发送和接收过程中插入自定义逻辑,它们可以用于消息定制、日志记录、监控、业务逻辑集成、性能统计和异常处理等,本文介绍Kafk... 目录前言拦截器的基本概念Kafka 拦截器的定义和基本原理:拦截器是 Kafka 消息传递的不可或缺

如何在一台服务器上使用docker运行kafka集群

《如何在一台服务器上使用docker运行kafka集群》文章详细介绍了如何在一台服务器上使用Docker运行Kafka集群,包括拉取镜像、创建网络、启动Kafka容器、检查运行状态、编写启动和关闭脚本... 目录1.拉取镜像2.创建集群之间通信的网络3.将zookeeper加入到网络中4.启动kafka集群

IDEA中的Kafka管理神器详解

《IDEA中的Kafka管理神器详解》这款基于IDEA插件实现的Kafka管理工具,能够在本地IDE环境中直接运行,简化了设置流程,为开发者提供了更加紧密集成、高效且直观的Kafka操作体验... 目录免安装:IDEA中的Kafka管理神器!简介安装必要的插件创建 Kafka 连接第一步:创建连接第二步:选

搭建Kafka+zookeeper集群调度

前言 硬件环境 172.18.0.5        kafkazk1        Kafka+zookeeper                Kafka Broker集群 172.18.0.6        kafkazk2        Kafka+zookeeper                Kafka Broker集群 172.18.0.7        kafkazk3

Java消息队列:RabbitMQ与Kafka的集成与应用

Java消息队列:RabbitMQ与Kafka的集成与应用 大家好,我是微赚淘客返利系统3.0的小编,是个冬天不穿秋裤,天冷也要风度的程序猿! 在现代的分布式系统中,消息队列是实现系统间通信、解耦和提高可扩展性的重要组件。RabbitMQ和Kafka是两个广泛使用的消息队列系统,它们各有特点和优势。本文将介绍如何在Java应用中集成RabbitMQ和Kafka,并展示它们的应用场景。 消息队