首页 > 其他分享 >集群使用Kafka

集群使用Kafka

时间:2024-08-02 19:55:50浏览次数:14  
标签:echo -- kafka topic sh 集群 使用 Kafka

创建Kafka启动脚本

ZooKeeper为Kafka提供了集群管理、分布式协调、配置管理和高可用性等关键服务,Kafka启动之前需要先zkServer.sh start。

Kafka 2.8.0版本开始引入了自身的内部元数据管理机制(KRaft模式),以逐步替代ZooKeeper。

kafka/bin目录下,例如 /usr/local/soft/kafka-1.0.0/bin

vim start-kafka.sh

获得执行权限

chmod +x  start-kafka.sh
#!/usr/bin/env bash

# 检查Kafka启动脚本是否存在
if [[ ! -x "/usr/local/soft/kafka-1.0.0/bin/kafka-server-start.sh" ]]; then
  echo "错误:找不到Kafka启动脚本或没有执行权限"
  exit 1
fi

# 检查Kafka配置文件是否存在
if [[ ! -f "/usr/local/soft/kafka-1.0.0/config/server.properties" ]]; then
  echo "错误:找不到Kafka配置文件"
  exit 1
fi


# 使用绝对路径启动Kafka,确保脚本能够正确执行
/usr/local/soft/kafka-1.0.0/bin/kafka-server-start.sh -daemon /usr/local/soft/kafka-1.0.0/config/server.properties

# 检查Kafka是否成功启动
# 显示等待信息,并每秒打印一个“.”
echo -n "正在启动Kafka,请等待5秒"
for i in {1..5}; do
  echo -n "."
  sleep 1
done
echo

# 使用ps命令检查Kafka进程是否启动
PIDS=$(ps ax | grep -i 'kafka\.Kafka' | grep java | grep -v grep | awk '{print $1}')
if [[ -n "$PIDS" ]]; then
  echo "Kafka启动成功,进程ID: $PIDS"
else
  echo "Kafka启动失败,请检查日志文件 $KAFKA_LOG_FILE 以获取更多信息"
  exit 1
fi

停止脚本

同样在bin目录下,

vim stop-kafka.sh
chmod +x  stop-kafka.sh 
#!/usr/bin/env bash

# 检查Kafka停止脚本是否存在
if [[ ! -x "/usr/local/soft/kafka-1.0.0/bin/kafka-server-stop.sh" ]]; then
  echo "错误:找不到Kafka停止脚本或没有执行权限"
  exit 1
fi

# 调用Kafka停止脚本
/usr/local/soft/kafka-1.0.0/bin/kafka-server-stop.sh

# 显示等待信息,并每秒打印一个“.”
echo -n "正在停止Kafka,请等待5秒"
for i in {1..5}; do
  echo -n "."
  sleep 1
done
echo

# 检查Kafka是否成功停止
if pgrep -f kafka.Kafka > /dev/null; then
  echo "错误:Kafka未能成功停止"
  exit 1
else
  echo "Kafka已成功停止"
fi

1、创建topic

在生产和消费数据时,如果topic不存在会自动创建一个分区为1,副本为1的topic

--replication-factor  ---每一个分区的副本数量, 同一个分区的副本不能放在同一个节点,副本的数量不能大于kafak集群节点的数量
--partition   --分区数,  根据数据量设置
--zookeeper zk的地址,将topic的元数据保存在zookeeper中

kafka-topics.sh --create --zookeeper master:2181,node1:2181,node2:2181/kafka --replication-factor 2 --partitions 3 --topic bigdata

2、查看topic描述信息

kafka-topics.sh --describe  --zookeeper master:2181,node1:2181,node2:2181/kafka --topic shujia

3、获取所有topic

__consumer_offsetsL kafka用于保存消费便宜量的topic

kafka-topics.sh --list  --zookeeper  master:2181,node1:2181,node2:2181/kafka

4、创建控制台生产者

kafka-console-producer.sh --broker-list master:9092,node1:9092,node2:9092 --topic bigdata

5、创建控制台消费者

x  --from-beginning  从头消费,, 如果不在执行消费的新的数据

kafka-console-consumer.sh --bootstrap-server  master:9092,node1:9092,node3:9092 --from-beginning --topic bigdata

标签:echo,--,kafka,topic,sh,集群,使用,Kafka
From: https://blog.csdn.net/qq_42674178/article/details/140878843

相关文章

  • fastapi 使用websocket协议
      fastapi是一个高性能异步web框架,并且支持websocket协议。这是一个比较新的框架,但github上的Star数挺多,快追上flask了。1、websocket服务端的简单实现:@app.websocket('/test')asyncdefwebsocket_test(websocket:WebSocket):#服务器接受客户端的WebSocket连接请求。......
  • 【Docker项目实战】使用Docker部署轻量级Markdown文本编辑器
    【【Docker项目实战】使用Docker部署轻量级Markdown文本编辑器一、项目介绍1.1项目简介1.2使用方法二、本次实践介绍2.1本地环境规划2.2本次实践介绍三、本地环境检查3.1安装Docker环境3.2检查Docker服务状态3.3检查Docker版本3.4检查docke......
  • 大数据场景下的Zookeeper集群的搭建
    本篇文件将介绍如何搭建zookeeper集群,并集合大数据相关组件介绍zookeeper的功能一、Zookeeper是做什么的,我们搭建它有什么用处Zookeeper是一个分布式的服务管理框架,它负责存储和管理大家都关心的数据,基于观察者涉及模式,Zookeeper接受观察者的注册,一旦这些数据的状态发生了变......
  • net core使用ADO.NET
     System.Data.SqlClient是.NETFramework使用ADO.NET旧提供程序。Microsoft.Data.SqlClient软件包于2019年发布,它是同时支持.NETCore和.NETFramework的新软件包。所以现在最好使用Microsoft.Data.SqlClientNuGet中查询安装即可。  注:Microsoft.Data.SqlClient程序......
  • SemanticKernel/C#:使用Ollama中的对话模型与嵌入模型用于本地离线场景
    前言上一篇文章介绍了使用SemanticKernel/C#的RAG简易实践,在上篇文章中我使用的是兼容OpenAI格式的在线API,但实际上会有很多本地离线的场景。今天跟大家介绍一下在SemanticKernel/C#中如何使用Ollama中的对话模型与嵌入模型用于本地离线场景。开始实践本文使用的对话模型是gemm......
  • helm部署Kafka集群
    生产环境推荐的kafka部署方式为operator方式部署,Strimzi是目前最主流的operator方案。集群数据量较小的话,可以采用NFS共享存储,数据量较大的话可使用localpv存储。部署operator[root@k8s-master3101-kafka]#helmrepoaddstrimzihttps://strimzi.io/charts/"strimzi"has......
  • Win11不在C盘安装WSL2(Linux环境),安装Nvidia驱动和默认使用Win11的网络代理服务
    众所周知,WSL2为Windows用户提供了一个强大、高效且灵活的Linux环境,特别适合开发者使用。它结合了Windows和Linux的优点,为用户提供了更加全面和高效的工作环境。但缺点也很明显,那就是默认安装在本来空间就不富裕的C盘。本次我们在非C盘的盘符快速安装基于wsl2的linux开......
  • 使用线程池你应该知道的知识点
    多线程编程是每一个开发必知必会的技能,在实际项目中,为了避免频繁创建和销毁线程,我们通常使用池化的思想,用线程池进行多线程开发。线程池在开发中使用频率非常高,也包含不少知识点,是一个高频面试题,本篇总结线程池的使用经验和需要注意的问题,更好的应对日常开发和面试。如有更多知......
  • Pandas的30个高频函数使用介绍
    Pandas是Python中用于数据分析的一个强大的库,它提供了许多功能丰富的函数。本文介绍其中高频使用的30个函数。read_csv():从CSV文件中读取数据并创建DataFrame对象。importpandasaspddf=pd.read_csv('data.csv')read_excel():从Excel文件中读取数据并创......
  • GD32使用PWM+DMA调试WS2812-RGB灯调试记录(附GD32中的TIMER定时器和DMA的踩坑记录)
    一、前言目的:对于使用STM32驱动WS2812-RGB灯,已经有很多大佬进行了分享,同时写得很好!但是对于GD32的调试WS2812确实偏少,刚好最近的项目有用到,顺便记录一下踩过的坑。开源不易,谢谢大家!感谢:特别感谢三位大佬的的博文贡献;1.GD32F470通过DMA输出PWM_gd32pwmdma-CSDN博客2.基于G......