当前位置: 首页 > news >正文

安装 Zookeeper 和 Kafka

注意:需要java环境

[root@hcss-ecs-2a6a ~]# java -version
java version "17.0.12" 2024-07-16 LTS
Java(TM) SE Runtime Environment (build 17.0.12+8-LTS-286)
Java HotSpot(TM) 64-Bit Server VM (build 17.0.12+8-LTS-286, mixed mode, sharing)
[root@hcss-ecs-2a6a ~]# 

1、 安装 Zookeeper

1.1 下载 Zookeeper

从 Apache 官方网站下载 Zookeeper 的安装包。这里以最新的稳定版本为例。

wget https://archive.apache.org/dist/zookeeper/zookeeper-3.7.1/apache-zookeeper-3.7.1-bin.tar.gz

1.2 解压安装包

将下载的安装包解压到一个合适的目录,例如 /opt。

sudo tar -zxvf apache-zookeeper-3.7.1-bin.tar.gz -C /opt

1.3 创建软链接

为了方便管理,可以创建一个软链接指向解压后的目录。

sudo ln -s /opt/apache-zookeeper-3.7.1-bin /opt/zookeeper

1.4 配置 Zookeeper

编辑 Zookeeper 的配置文件 zoo.cfg。

sudo mkdir -p /opt/zookeeper/data
sudo nano /opt/zookeeper/conf/zoo.cfg

在 zoo.cfg 文件中添加以下内容:

tickTime=2000
dataDir=/opt/zookeeper/data
clientPort=2181
initLimit=5
syncLimit=2

1.5 启动 Zookeeper

启动 Zookeeper 服务。

sudo /opt/zookeeper/bin/zkServer.sh start

验证 Zookeeper 是否启动成功:

sudo /opt/zookeeper/bin/zkServer.sh status

2、安装 Kafka

2.1 下载 Kafka

从 Apache 官方网站下载 Kafka 的安装包。这里以最新的稳定版本为例。

wget https://archive.apache.org/dist/kafka/3.0.0/kafka_2.13-3.0.0.tgz

2.2 解压安装包

将下载的安装包解压到一个合适的目录,例如 /opt。

sudo tar -zxvf kafka_2.13-3.0.0.tgz -C /opt

2.3 创建软链接

为了方便管理,可以创建一个软链接指向解压后的目录。

sudo ln -s /opt/kafka_2.13-3.0.0 /opt/kafka

2.4 配置 Kafka

编辑 Kafka 的配置文件 server.properties。

sudo nano /opt/kafka/config/server.properties

在 server.properties 文件中进行以下配置:

broker.id=0
listeners=PLAINTEXT://:9092
zookeeper.connect=localhost:2181
log.dirs=/opt/kafka/logs

确保 zookeeper.connect 指向你刚刚启动的 Zookeeper 服务。

2.5 创建日志目录

创建 Kafka 的日志目录。

sudo mkdir -p /opt/kafka/logs

2.6 启动 Kafka

启动 Kafka 服务。

sudo /opt/kafka/bin/kafka-server-start.sh -daemon /opt/kafka/config/server.properties

验证 Kafka 是否启动成功:

[root@hcss-ecs-2a6a ~]# /opt/java/jdk-17.0.12/bin/jps
18307 QuorumPeerMain
19848 Kafka
28121 ConsoleConsumer
27627 ConsoleProducer
29996 Jps

你应该能看到 Kafka 进程在运行。

3、测试 Kafka

创建一个测试主题并发送消息。

3.1 创建主题

sudo /opt/kafka/bin/kafka-topics.sh --create --topic test-topic --bootstrap-server localhost:9092 --replication-factor 1 --partitions 1

3.2 发送消息

sudo /opt/kafka/bin/kafka-console-producer.sh --topic test-topic --bootstrap-server localhost:9092

在打开的终端中输入一些消息,例如:

Hello, Kafka!

3.3 消费消息

打开另一个终端,运行消费者来接收消息。

sudo /opt/kafka/bin/kafka-console-consumer.sh --topic test-topic --from-beginning --bootstrap-server localhost:9092

你应该能看到之前发送的消息。

3.4 修改Kafka 的配置文件 server.properties,添加以下内容:

# 允许外部端口连接                                            
listeners=PLAINTEXT://0.0.0.0:9092  
# 外部代理地址                                                
advertised.listeners=PLAINTEXT://1.94.145.26:9092

3.5 常用命令

# 重启kafka./kafka-server-stop.sh./kafka-server-start.sh -daemon ../config/server.properties 
# 创建主题
./kafka-topics.sh --create --topic demo-topic20241207 \--bootstrap-server 1.94.145.26:9092 \--partitions 3 \--replication-factor 1# 查看主题详情
./kafka-topics.sh --describe --topic demo-topic20241207 --bootstrap-server 1.94.145.26:9092# 列出所有主题
./kafka-topics.sh --list --bootstrap-server 1.94.145.26:9092# 查看 Kafka 主题中的消息
./kafka-console-consumer.sh --bootstrap-server 1.94.145.26:9092 --topic demo-topic20241207 --from-beginning --property print.partition=true
1、说明:
--topic demo-topic20241207 - 使用你更新后的主题名称
--partitions 3 - 可以设置多个分区,即使只有一个 broker
--replication-factor 1 - 因为只有一个 broker,所以副本因子必须是 12、分区数(partitions)和副本因子(replication-factor)的区别:分区(partitions):
可以大于 broker 数量
用于并行处理和提高吞吐量
决定了可以有多少消费者并行消费(同一个消费者组内)副本(replication-factor):
不能超过 broker 数量
用于数据冗余和高可用
在单 broker 环境中只能是 13、在单实例环境下:
可以设置多个分区来提高并行度
副本因子必须是 1
没有故障转移能力(因为没有副本)

相关文章:

安装 Zookeeper 和 Kafka

注意:需要java环境 [roothcss-ecs-2a6a ~]# java -version java version "17.0.12" 2024-07-16 LTS Java(TM) SE Runtime Environment (build 17.0.128-LTS-286) Java HotSpot(TM) 64-Bit Server VM (build 17.0.128-LTS-286, mixed mode, sharing) [roo…...

操作系统输入输出系统知识点

I/O系统的功能、模型和接口 I/O系统的基本功能 隐藏物理设备的细节与设备的无关性提高处理机和I/O设备的利用率对1/0 设备进行控制确保对设备的正确共享 独占设备,进程应互斥地访问这些设备共享设备,在一段时间内允许多个进程同时访问的设备 错误处理 I…...

C语言控制语句与案例

控制语句与案例 1. 选择结构 1.1 if 语句 if 语句用于根据条件执行不同的代码块。最基本的语法形式如下: // 单分支 if (条件) {// 条件为真时执行的代码 }// 双分支 if (条件) {// 条件为真时执行的代码 } else {// 条件为假时执行的代码 }// 多分支 if (条件1…...

JVM的内存布局

Java虚拟机(JVM)的内存布局可以分为几个主要部分,每个部分都有特定的用途。以下是JVM内存布局的基本组成: 方法区(Method Area): 方法区是所有线程共享的内存区域,用于存储已被虚拟机…...

aws codepipeline + github + sonarqube + jenkins实践CI/CD

https://blog.csdn.net/u011564831/article/details/144007981文章浏览阅读1.2k次,点赞31次,收藏21次。本文使用 Jenkins 结合 CodeBuild, CodeDeploy 实现 Serverless 的 CI/CD 工作流,用于自动化发布已经部署 lambda 函数。在 AWS 海外区&a…...

mistralai 部署笔记

目录 mistralai 部署笔记 mistralai 部署笔记 #! /usr/bin/env python3 import os import sys import torch os.chdir(os.path.dirname(os.path.abspath(__file__)))current_dir = os.path.dirname(os.path.abspath(__file__))paths = [os.path.abspath(__file__).split(scri…...

Java——异常机制(上)

1 异常机制本质 (异常在Java里面是对象) (抛出异常:执行一个方法时,如果发生异常,则这个方法生成代表该异常的一个对象,停止当前执行路径,并把异常对象提交给JRE) 工作中,程序遇到的情况不可能完美。比如…...

坐标系,向量_batch及向量点乘部分知识

坐标系 Unity所采用的是左手坐标系。 对于Vector3.forward ,其坐标值为(0,0,1),为定值 而transform.forward 该值不固定,本地坐标正方向所在世界坐标系中的方向 向量 向量是终点位置减去起始点位置得…...

【计算机网络】期末速成(2)

部分内容来源于网络,侵删~ 第五章 传输层 概述 传输层提供进程和进程之间的逻辑通信,靠**套接字Socket(主机IP地址,端口号)**找到应用进程。 传输层会对收到的报文进行差错检测。 比特流(物理层)-> 数据帧(数据链路层) -> 分组 / I…...

【设计模式】结构型设计模式总结之代理模式、装饰模式、外观模式、享元模式

文章目录 代理模式示例结构分类动态代理 装饰模式示例结构使用场景与代理模式区别Context 外观模式结构示例使用场景Context 享元模式结构示例使用场景Message 代理模式 代理模式(Proxy Pattern) 是一种结构型设计模式,它提供了一个代理对象…...

11进阶篇:专业课论文阅读方向指南(2025版)

文章目录 第一个检索式:图情档核心期刊(北大 + CSSCI)发文情况研究方法类关键词研究主题类关键词论文阅读建议第二个检索式:川大公共管理学院在核心期刊(北大 + CSSCI)的发文情况研究方法类关键词研究主题类关键词特点关键词与2024年972(现815)两道题目的映射情况815信…...

watch里可以写异步吗

在Vue的 watch 中可以写异步,但通常不推荐。 原因 - 可维护性差: watch 的主要用途是响应式地监听数据变化。如果在里面写复杂的异步操作,会让代码逻辑变得难以理解和维护。例如,同时监听多个数据变化并触发不同异步操作时&am…...

基于 Spring Boot + Vue 的宠物领养系统设计与实现

引言 近年来,随着人们生活水平的提高,宠物逐渐成为许多家庭的重要成员。然而,宠物的流浪和弃养问题日益严重,这促使社会对宠物领养的需求不断增长。为解决宠物领养中信息不对称、领养流程复杂等问题,设计并实现一个基…...

leetcode399:除法求值

给你一个变量对数组 equations 和一个实数值数组 values 作为已知条件,其中 equations[i] [Ai, Bi] 和 values[i] 共同表示等式 Ai / Bi values[i] 。每个 Ai 或 Bi 是一个表示单个变量的字符串。 另有一些以数组 queries 表示的问题,其中 queries[j]…...

【10】MySQL中的加密功能:如何使用MD5加密算法进行数据加密

文章目录 1. MySQL加密功能概述2. MD5加密算法3. 在MySQL中使用MD5加密4. 使用更安全的加密方法总结 在现代的数据库应用中,数据的安全性和隐私性变得尤为重要。无论是存储用户的个人信息,还是保护敏感的业务数据,确保这些数据不会被未授权访…...

CSS的2D和3D动画效果

CSS的2D和3D动画效果:网页动态设计的魔法 在现代网页设计中,动画已经成为提升用户体验的重要元素。通过引入动态效果,我们不仅可以使交互更加流畅和直观,还能吸引用户的注意力,增强品牌认知度。CSS提供了强大的工具&a…...

30天学会Go--第9天 GO语言 Mysql 学习与实践

30天学会Go–第9天 GO语言 MySQL学习与实践 文章目录 30天学会Go--第9天 GO语言 MySQL学习与实践前言一、MySQL 基础知识1.1 MySQL 的核心特征1.2 MySQL 的常见使用情景 二、安装 MySQL2.1 Windows 安装2.2 macOS 安装2.3 Linux 安装 三、MySQL 常用命令3.1 数据库操作3.2 表操…...

跟李笑来学美式俚语(Most Common American Idioms): Part 54

Most Common American Idioms: Part 54 前言 本文是学习李笑来的Most Common American Idioms这本书的学习笔记,自用。 Github仓库链接:https://github.com/xiaolai/most-common-american-idioms 使用方法: 直接下载下来(或者clone到本地…...

Angular由一个bug说起之十一:排序之后无法展开 Row

问题现象 在使用 Material Table 时,排序功能触发了一个奇怪的 Bug:表格的 Row 无法展开。最终排查发现,问题的根源在于 trackBy 的错误使用。trackBy 方法接受两个参数:index(数据索引)和 row(…...

使用 Flutter 进行移动应用开发:深入探索

文章目录 前言一、介绍二、安装 Flutter 环境三、Flutter 应用结构与基础组件四、状态管理策略五、高级主题结语 前言 随着移动技术的迅猛发展,跨平台开发的需求日益增长。开发者们一直在寻找一种既能保证应用性能又能减少开发成本和时间的技术方案。Flutter 应运而…...

英雄联盟智能助手Seraphine:免费开源的战绩查询与BP辅助神器

英雄联盟智能助手Seraphine:免费开源的战绩查询与BP辅助神器 【免费下载链接】Seraphine 英雄联盟战绩查询工具 项目地址: https://gitcode.com/gh_mirrors/se/Seraphine 还在为错过对局接受而懊恼吗?还在BP阶段犹豫不决错失最佳英雄选择吗&#…...

别再只会写脚本了!用Matlab APP Designer给你的数据分析做个可视化界面(附完整代码)

从脚本到交互式应用:用MATLAB APP Designer打造专业数据分析工具 在数据科学和工程领域,MATLAB一直是不可或缺的计算工具。然而,许多用户长期停留在命令行脚本的层面,未能充分发挥MATLAB的完整潜力。本文将带您突破这一局限&#…...

Pinia Colada:革命性Vue数据获取层的完整入门指南

Pinia Colada:革命性Vue数据获取层的完整入门指南 【免费下载链接】pinia-colada 🍹 The smart data fetching layer for Vue 项目地址: https://gitcode.com/gh_mirrors/pi/pinia-colada Pinia Colada是Vue生态系统中一款革命性的数据获取层解决…...

【独家首发】ElevenLabs尚未官方支持的希伯来文增强模式:基于phoneme-level微调的48小时快速部署方案

更多请点击: https://intelliparadigm.com 第一章:希伯来文语音合成的技术挑战与ElevenLabs生态定位 希伯来文是一种自右向左(RTL)书写的辅音音素文字,其语音合成面临多重语言学与工程学挑战:元音符号&…...

使用curl命令快速测试Taotoken大模型接口连通性与功能

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 使用curl命令快速测试Taotoken大模型接口连通性与功能 在接入大模型服务时,直接使用HTTP请求进行测试是一种高效且通用…...

ThinkPad风扇控制终极指南:如何让你的笔记本在静音与散热之间找到完美平衡

ThinkPad风扇控制终极指南:如何让你的笔记本在静音与散热之间找到完美平衡 【免费下载链接】TPFanCtrl2 ThinkPad Fan Control 2 (Dual Fan) for Windows 10 and 11 项目地址: https://gitcode.com/gh_mirrors/tp/TPFanCtrl2 你是否曾经在深夜工作时&#xf…...

NotebookLM智能体插件开发:连接AI笔记与外部工具的实现指南

1. 项目概述:当AI笔记助手学会“动手”最近在折腾AI应用开发的朋友,可能都注意到了GitHub上一个挺有意思的项目:amp-rh/notebooklm-agent-plugin。乍一看名字,它像是Google那个实验性AI笔记工具NotebookLM的一个插件。但如果你深入…...

如何解决神界原罪2模组冲突问题:Divinity Mod Manager终极指南

如何解决神界原罪2模组冲突问题:Divinity Mod Manager终极指南 【免费下载链接】DivinityModManager A mod manager for Divinity: Original Sin - Definitive Edition. 项目地址: https://gitcode.com/gh_mirrors/di/DivinityModManager Divinity Mod Manag…...

在高校科研项目中采用 Taotoken 实现多模型对比实验的便捷方案

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 在高校科研项目中采用 Taotoken 实现多模型对比实验的便捷方案 高校科研团队在进行大模型相关的对比实验时,常常面临一…...

如何在Windows电脑上安装安卓应用:APK Installer完整使用指南

如何在Windows电脑上安装安卓应用:APK Installer完整使用指南 【免费下载链接】APK-Installer An Android Application Installer for Windows 项目地址: https://gitcode.com/GitHub_Trending/ap/APK-Installer 想在Windows电脑上直接运行安卓应用吗&#x…...