企业生产环境-麒麟V10(ARM架构)操作系统部署kafka高可用集群

前言:Apache Kafka是一个分布式流处理平台,由LinkedIn开发并捐赠给Apache软件基金会。它主要用于构建实时数据流管道和流应用。Kafka具有高吞吐量、可扩展性和容错性的特点,适用于处理大量数据。

以下是Kafka的一些核心概念和特性:

  1. 主题(Topic):Kafka中消息的分类,生产者(Producer)将消息发送到特定的主题,消费者(Consumer)从主题中读取消息。

  2. 分区(Partition):为了提高并行性和吞吐量,每个主题可以被分割成多个分区。分区可以分布在集群中的不同服务器上。

  3. 生产者(Producer):向Kafka集群发送消息的客户端。

  4. 消费者(Consumer):从Kafka集群读取消息的客户端。消费者通常以消费者组(Consumer Group)的形式存在,每个消费者组中的消费者可以独立地读取消息。

  5. 消费者组(Consumer Group):是一组共享相同主题订阅的消费者。消费者组允许多个消费者实例共同处理主题中的消息。

  6. Broker:Kafka集群中的一个节点,负责存储数据并提供数据服务。

  7. ZooKeeper:Kafka使用ZooKeeper来维护集群元数据和协调集群操作。

  8. 消息(Message):Kafka中的基本数据单元,由键(Key)、值(Value)、时间戳等组成。

  9. 偏移量(Offset):每个分区中消息的索引,消费者通过偏移量来追踪其在分区中的位置。

  10. 副本(Replica):为了提高数据的可靠性和可用性,Kafka中的每个分区都有多个副本。其中一个副本是领导者(Leader),其他副本是追随者(Follower)。

  11. 领导者选举(Leader Election):当分区的领导者不可用时,追随者之一会被选为新的领导者。

  12. 高可用性(High Availability, HA):通过副本和领导者选举机制,Kafka能够保证服务的高可用性。

  13. 持久性(Durability):Kafka提供了消息持久化机制,确保消息不会因为系统故障而丢失。

  14. 可伸缩性(Scalability):Kafka可以通过增加更多的Broker来水平扩展,以处理更多的数据。

  15. 容错性(Fault Tolerance):Kafka通过副本机制来容忍节点故障。

Kafka的应用场景包括:

  • 日志聚合:收集和集中分布式系统中的日志数据。
  • 实时数据分析:流式处理和分析实时数据。
  • 事件源(Event Sourcing):使用事件来记录系统中发生的状态变化。
  • 消息队列:作为消息队列系统,用于任务分发和解耦服务。
  • 流处理:构建复杂的流处理应用,如实时监控、报警系统等。

Kafka通常与其他技术(如Apache Flink、Apache Storm、Apache Samza等)结合使用,以构建完整的流处理解决方案。

安装kafka集群:
第一步:创建文件夹路径
命令:mkdir -p /var/kafka-logs /data/zk
命令:mkdir -p /usr/local/kafka

第二步:上传压缩包到 /usr/local/kafka
解压,进入解压后的目录/kafka-3.0.0/kafka_2.12-3.0.0
tar -zxvf kafka_2.12-3.0.0.tgz
cd kafka_2.12-3.0.0

第三步:修改配置文件
修改/usr/local/kafka/kafka_2.12-3.0.0/config/server.properties
vim server.properties修改以下内容:

broker.id=0        #保证每个broker唯一,第一台可以不修改默认为0,后面两台需要修改,如改为1和2
num.partitions=3      #分区数量一般与broker保持一致
listeners=PLAINTEXT://10.0.0.8:9092     #修改为本机ip
zookeeper.connect=10.0.0.8:2181,10.0.0.9:2181,10.0.0.10:2181      #配置三台服务zookeeper连接地址
host.name=10.0.0.8      #新增host.name值,分别设为不同的值(3台机器根据自己的ip设置)
log.dirs=/var/kafka-logs/       #修改log.dirs目录

修改/kafka-3.0.0/kafka_2.12-3.0.0/config/zookeeper.properties

dataDir=/data/zk  #修改为自定义的目录
maxClientCnxns=0  #注释掉
#设置连接参数,添加如下配置
tickTime=2000
initLimit=10
syncLimit=5
#设置broker Id的服务地址
server.0=10.0.0.8:2888:3888
server.1=10.0.0.9:2888:3888
server.2=10.0.0.10:2888:3888

而消费者配置consumer.properites和生产者配置producer.properties根据具体业务来进行调配

第四步:
三台服务器分别执行如下命令:myid的值取决于broker.id

echo 0 > /data/zk/myid
echo 1 > /data/zk/myid
echo 2 > /data/zk/myid

第五步:配置hosts文件
查看主机名命令:hostname

10.0.0.8    ecs-ubiinf6as0wpbx
10.0.0.9    ecs-8k9rxzfxvsuyp2
10.0.010    ecs-bodhwf981mt5r9

命令:vim /etc/hosts
注释掉本机的,加入以上三条信息

第六步:启动
kafka启动时先启动zookeeper,再启动kafka;关闭时相反,先关闭kafka,再关闭zookeeper
启动zookeeper:
./zookeeper-server-start.sh /usr/local/kafka/kafka_2.12-3.0.0/config/zookeeper.properties &
启动kafka:
./kafka-server-start.sh /usr/local/kafka/kafka_2.12-3.0.0/config/server.properties &
查看日志:
tail -f /usr/local/kafka/kafka_2.12-3.0.0/logs/server.log

Kafka集群配置成功,且无集群节点连接异常报错

第七步:放行端口
如集群配置完成后开启防火墙报节点无法连接,需做放行端口配置:
放行端口:

firewall-cmd --zone=public --add-port=2888/tcp --permanent    放行2888端口
firewall-cmd --zone=public --add-port=3888/tcp --permanent    放行3888端口
firewall-cmd --zone=public --add-port=9092/tcp --permanent    放行9092端口firewall-cmd --reload  #重新载入 返回 success 代表成功firewall-cmd --zone=public --query-port=2888/tcp    查看 返回 yes 代表开启成功
firewall-cmd --zone=public --query-port=3888/tcp    查看 返回 yes 代表开启成功
firewall-cmd --zone=public --query-port=9092/tcp    查看 返回 yes 代表开启成功

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

供应链管理、一件代发系统功能及源码分享 PHP+Mysql

随着电商行业的不断发展,传统的库存管理模式已经逐渐无法满足市场需求。越来越多的企业选择“一件代发”模式,即商家不需要自己储备商品库存,而是将订单直接转给供应商,由供应商直接进行发货。这种方式极大地降低了企业的运营成本…

机器学习 ---线性回归

目录 摘要: 一、简单线性回归与多元线性回归 1、简单线性回归 2、多元线性回归 3、残差 二、线性回归的正规方程解 1、线性回归训练流程 2、线性回归的正规方程解 (1)适用场景 (2)正规方程解的公式 三、衡量…

Unity类银河战士恶魔城学习总结(P127 Stat ToolTip属性提示)

【Unity教程】从0编程制作类银河恶魔城游戏_哔哩哔哩_bilibili 教程源地址:https://www.udemy.com/course/2d-rpg-alexdev/ 本章节实现了把鼠标放到属性上面就会显示属性的作用 UI_StatToolTip.cs 这段代码实现了一个UI提示框(ToolTip)功能…

C/C++语言基础--initializer_list表达式、tuple元组、pair对组简介

本专栏目的 更新C/C的基础语法,包括C的一些新特性 前言 initializer_list表达式、tuple元组、pair对组再C日常还是比较常用的,尤其是对组在刷算法还是挺好用的,这里做一个简介;这三个语法结合C17的结构化绑定会更好用&#xff…

Python_爬虫1_Requests库入门

目录 Requests库 7个主要方法 Requests库的get()方法 Response对象的属性 爬取网页的通用代码框架 理解requests库的异常 HTTP协议及Requests库方法 HTTP协议 HTTP协议采用URL作为定位网络资源的标识。 HTTP协议对资源的操作 理解PATCH和PUT的区别 HTTP协议与Requse…

视频流媒体播放器EasyPlayer.js RTSP播放器视频颜色变灰色/渲染发绿的原因分析

EasyPlayer.js RTSP播放器属于一款高效、精炼、稳定且免费的流媒体播放器,可支持多种流媒体协议播放,无须安装任何插件,起播快、延迟低、兼容性强,使用非常便捷。 EasyPlayer.js播放器不仅支持H.264与H.265视频编码格式&#xff0…

[JAVA]有关MyBatis环境配置介绍

什么是MyBatis环境配置? MyBatis是基于JDBC对数据库进行操作,在我们进行数据操作时,我们需要告诉MyBatis我们连接哪个数据库,ip地址,数据库名称,用户名密码等。以此来进行环境配置。 首先,MyB…

微搭低代码入门05循环

目录 1 for 循环2 while 循环3 do...while 循环4 break 语句5 循环展示组件总结 在编程中,循环是一种非常强大的控制结构,它允许我们重复执行一段代码直到满足某个条件为止。在微搭中,我们一般用循环来处理我们数据库返回的结果。 在微搭中&a…

11.13机器学习_线性回归

十 集成学习方法之随机森林 机器学习中有一种大类叫集成学习(Ensemble Learning),集成学习的基本思想就是将多个分类器组合,从而实现一个预测效果更好的集成分类器。集成算法可以说从一方面验证了中国的一句老话:三个…

活动|华院计算作为联盟理事单位出席进博会全球人工智能合作论坛

第七届中国国际进口博览会(进博会)于11月5日至10日在上海举行,作为本次进博会的重要配套活动,首届人工智能全球合作论坛也于9日圆满落幕。本次论坛由全球招商中心委员会、人工智能全球合作论坛组委会主办,中国国际科技…

2、开发工具和环境搭建

万丈高楼平地起,学习C语言先从安装个软件工具开始吧。 1、C语言软件工具有两个作用 1、编辑器 -- 写代码的工具 2、编译器 -- 将代码翻译成机器代码0和1 接下来我们介绍两种C语言代码工具:devcpp 和 VS2019,大家可以根据自己的喜好安装。 dev…

【Qt实现虚拟键盘】

Qt实现虚拟键盘 🌟项目分析🌟实现方式🌟开发流程 🌟项目分析 需求:为Linux环境下提供可便捷使用的虚拟键盘OS环境:Windows 7/11、CentOS 7开发语言:Qt/C IDE:QtCreator 、Qt5.14.2功…

领夹麦克风哪个品牌好,手机领夹麦克风哪个牌子好,选购推荐

​无线麦克风凭借其无与伦比的便携性与灵活性,成为在演讲、表演以及会议等多种场合中不可或缺的有力帮手。它挣脱了线缆的束缚,使得声音的传播更加自由自在。其操作十分简便,只需简单配对就能投入使用,从而可以轻松地适应各类场景…

ADC输出码和输入电压转换关系

ADC输出码和输入电压转换关系 转换公式:ADC输出码(Vin / Vref) *2n 。其中Vin 是输入ADC芯片的电压,Vref是参考电压,n是ADC芯片的位数。 举个例子MS5182是一个16bit的ADC(21665536),参考电压Vref4.096V&a…

IROS讲座:如何写出受欢迎的论文

讲座原名称:How to write papers people love reading 时间地点:2024年10月中旬,阿布扎比国家展览中心,阿联酋 演讲嘉宾照片: 以下是拍摄的部分PPT,并添加了中文笔记:

【Docker】Mac安装Docker Desktop导致磁盘剩余空间较少问题如何解决?

目录 一、背景描述 二、解决办法 三、清理效果 四、理论参考 解决方法 1. 清理未使用的 Docker 镜像、容器和卷 2. 查看 Docker 使用的磁盘空间 3. 调整 Docker 的存储位置 4. 增加磁盘空间 5. 调整 Docker Desktop 配置 6. 使用 Docker 清理工具(例如 D…

Tiktok对接和内容发布申请流程

这段时间在搞AI生成视频,希望用户能一键发布到Tiktok,因此研究了一下Tiktok的开发者申请流程,发现好复杂,同时也发现Tiktok的开发也跟我一样,挺草台班子的 0、流程简述 废话不多说,Tiktok的开发者申请和…

Android ART知多少?

Android 虚拟机 ART(Android Runtime)是 Android 平台上的应用程序运行时环境,用于执行应用程序的字节码。ART 自 Android 5.0(Lollipop)开始取代了 Dalvik,成为 Android 的默认运行时环境。本文将从以下几…

黑马嵌入式开发入门模电基础学习笔记

学习视频: 黑马程序员嵌入式开发入门模电(模拟电路)基础 文章目录 背景介绍电流电压组件仿真三极管ne555PCBEDA案例:非接触式电笔案例:电子琴 背景介绍 电流 电压 组件 仿真 三极管 mos管 ne555 PCB EDA 案例:非接触…

Ubuntu 18 EDK2 环境编译

视频:在全新的Ubuntu上从零搭建UEFI的EDK2开发环境 开始:git clone https://github.com/tianocore/edk2.git 开始编译BaseTools前先更新一下子模块:git submodule update --init ,然后:make -C BaseTools/ 问题1&a…