0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

华为云 FlexusX 实例下的 Kafka 集群部署实践与性能优化

jf_21561199 来源:jf_21561199 作者:jf_21561199 2025-01-07 17:23 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

前言

华为云 FlexusX 实例,以创新的柔性算力技术,为 Kafka 集群部署带来前所未有的性能飞跃。其灵活的 CPU 与内存配比,结合智能调度与加速技术,让 Kafka 在高并发场景下依然游刃有余。在 828 华为云企业上云节期间,FlexusX 实例携手海量优惠,助力企业轻松上云,享受数字化转型的加速红利。链接直达华为云Flexus云服务器X实例

wKgZPGd88qmAOKzdAAEA43MSbXE480.png

Kafka 简介

Kafka 是一个性能、高吞吐量的分布式发布订阅消息系统,专为处理大规模数据流而设计。作为 Apache 顶级项目之一,Kafka 以其卓越的扩展性、持久性和可靠性,在大数据和实时处理领域占据重要地位。它允许生产者(数据发送者)以高吞吐量向 Kafka 集群发布消息,而消费者(数据接收者)则可以以低延迟从集群中读取消息。Kafka 通过将消息存储到多个分区中,并在多个 broker(服务器)之间复制这些分区,实现了数据的高可用性和容错性。

Kafka 不仅支持简单的消息传递,还具备强大的流处理能力,能够与各种流处理框架无缝集成,实现复杂的数据转换和分析任务。其灵活的消息模型和可扩展的架构,使得 Kafka 能够轻松应对各种应用场景,包括日志收集、事件监控、消息队列以及实时数据管道等。

官方网站:https://kafka.apache.org/

官方文档:https://kafka.apache.org/documentation/

wKgZO2d88qmAcAtLAAKcRY6Z_fM820.png

ZooKeeper 简介

ZooKeeper 是一个开源的分布式协调服务,它为分布式应用提供一致性服务,主要用于管理大型分布式系统中的配置信息、命名服务、分布式同步以及提供组服务等,通过其简单的 API 和强大的功能,使得分布式系统中的各个组件能够相互协调、协同工作。

官方网站:https://zookeeper.apache.org/

官方文档:https://zookeeper.apache.org/doc/

华为云 Flexus X 实例部署 Kafka 集群的亮点

灵活配置:通过柔性计算技术,自由调整 CPU、内存资源,匹配 Kafka 需求。

高性能 &可扩展:增强 Kafka 的高吞吐、高可用特性,支持便捷的水平扩展。

无缝集成 &自动化:华为云服务助力无缝集成,支持自动化运维,减少人工干预。

安全可靠:集成华为云安全体系,结合 Kafka 副本机制,确保数据安全和服务可用。

成本效益:智能化运维降低运维成本,提高运维效率。

响应速度:提升业务系统处理实时数据流的响应速度。

业务连续性:故障自动迁移和容错能力,保障业务稳定运行。

促进创新:灵活性和可扩展性支持快速调整,应对市场变化和挑战。

环境规划

本次实验环境中,准备搭建一台 zookeeper 以及三个 Kafka broker 组成的 Kafka Cluster

wKgZPGd88qqALVECAACQ17L5G7g895.png

部署流程

需要了解:

•采用 docker 方式进行部署 kafka 集群

•详细购买配置实例可参考文章:快速部署华为云Flexus X实例,开启您的云端之旅

•部署 docker 服务请参考文章:华为FlexusX与Docker+Nginx的高效整合之路

拉取镜像

查看并拉取 zookeeper 镜像(镜像尽量拉取官方镜像)

#默认拉取最新版[root@flexusx-251f~]# docker search zookeeperNAMEDESCRIPTION STARS OFFICIALzookeeperApache ZooKeeper is an open-source server wh… 1452 [OK]bitnamizookeeperBitnami container image for ZooKeeper 122chainguardzookeeperMinimal image with Apache Zookeeper. 0rapidfortzookeeperRapidFort optimized, hardened image for Zook… 9ubuntuzookeeperZooKeeper maintains configuration informatio… 13..............................[root@flexusx-251f~]# docker pull zookeeperUsingdefault tag latestlatestPulling from libraryzookeeperf7ec5a41d630Already existsfaf4c47c8c61Pull complete810072571fafPull completeca2026cde8dePull complete560b60c59d86Pull complete48a7bbbfc8ebPull complete56ff45ef75e6Pull completee28096689586Pull completeDigestsha256ecc855e80a6c36a9864e7c1ccc0b68a13595871f88bc8a97e7f2c82a8e9803b2StatusDownloaded newer image for zookeeperlatestdocker.iolibraryzookeeperlatest

查看并拉取 kafka 镜像(镜像尽量拉取官方镜像)

[root@flexusx-251f~]# docker search kafkaNAMEDESCRIPTION STARS OFFICIALchainguard/kafkaMinimal image with Kafka. 0bitnami/kafkaBitnami container image for Apache Kafka 884ubuntu/kafkaApache Kafka, a distributed event streaming … 51apache/kafkaApache Kafka 63rancher/kafka2bitnamicharts/kafka..............................[root@flexusx-251f~]# docker pull bitnami/kafkaUsingdefault tag: latestlatest:Pulling from bitnami/kafka2449408de487:Pull completeDigest:sha256:999ba91863ef67e13c5704c3145154d0484671222dab2a603bfdeedc4a9fbad7Status:Downloaded newer image for bitnami/kafka:latestdocker.io/bitnami/kafka:latest

编写 docker-compose.yaml

编写 docker-compose.yaml

[root@flexusx-251f~]# mkdir /kafka[root@flexusx-251f~]# cd /kafka/[root@flexusx-251f kafka]# vim docker-compose.yamlversion:'2.9'services:zookeeper:image:zookeeper:latestports: -"2181:2181"#将容器的 2181 端口映射到宿主机的 2181 端口environment:ZOO_MY_ID:1#设置 Zookeeper 节点的 ID 为 1ZOO_SERVERS:server.1=zookeeper:2888:3888;2181#配置 Zookeeper 集群信息,我们只定义了一个节点,所以为单个kafka1:image:bitnami/kafka:latestdepends_on: -zookeeper ports: -"9092:9092"environment:KAFKA_BROKER_ID:1#设置 Kafka broker 的 ID 为 1KAFKA_ZOOKEEPER_CONNECT:zookeeper:2181#指定 Kafka 如何连接到 ZookeeperKAFKA_ADVERTISED_LISTENERS:PLAINTEXT://kafka1:9092#设置 Kafka broker 对外部客户端广播的地址和端口KAFKA_LISTENER_SECURITY_PROTOCOL_MAP:PLAINTEXT:PLAINTEXT KAFKA_INTER_BROKER_PROTOCOL_VERSION:2.8KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR:1kafka2:image:bitnami/kafka:latest depends_on: -zookeeper ports: -"9093:9092"environment:KAFKA_BROKER_ID:2KAFKA_ZOOKEEPER_CONNECT:zookeeper:2181 KAFKA_ADVERTISED_LISTENERS:PLAINTEXT://kafka2:9092 KAFKA_LISTENER_SECURITY_PROTOCOL_MAP:PLAINTEXT:PLAINTEXT KAFKA_INTER_BROKER_PROTOCOL_VERSION:2.8KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR:1kafka3:image:bitnami/kafka:latest depends_on: -zookeeper ports: -"9094:9092"environment:KAFKA_BROKER_ID:3KAFKA_ZOOKEEPER_CONNECT:zookeeper:2181 KAFKA_ADVERTISED_LISTENERS:PLAINTEXT://kafka3:9092 KAFKA_LISTENER_SECURITY_PROTOCOL_MAP:PLAINTEXT:PLAINTEXT KAFKA_INTER_BROKER_PROTOCOL_VERSION:2.8KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR:1

创建容器

执行 docker-compose,开始创建容器

[root@flexusx-251fkafka]# docker-compose up -dWARN[0000]/kafka/docker-compose.yaml:the attribute `version`is obsolete, it will be ignored, please remove it to avoid potential confusion[+]Running 5/5✔Network kafka_default Created 0.0s✔Container kafka-zookeeper-1 Started 0.2s✔Container kafka-kafka2-1 Started 0.3s✔Container kafka-kafka3-1 Started 0.3s✔Container kafka-kafka1-1 Started 0.3s

查看容器状态(全部正常运行如果不正常请查看日志)

[root@flexusx-251fkafka]# docker-compose psWARN[0000]/kafka/docker-compose.yaml:the attribute `version`is obsolete, it will be ignored, please remove it to avoid potential confusionNAMEIMAGE COMMAND SERVICE CREATED STATUS PORTSkafka-kafka1-1bitnami/kafka:latest "/opt/bitnami/script…"kafka1 7 seconds ago Up 6 seconds 0.0.0.0:9092->9092/tcp, :::9092->9092/tcpkafka-kafka2-1bitnami/kafka:latest "/opt/bitnami/script…"kafka2 7 seconds ago Up 6 seconds 0.0.0.0:9093->9092/tcp, :::9093->9092/tcpkafka-kafka3-1bitnami/kafka:latest "/opt/bitnami/script…"kafka3 7 seconds ago Up 6 seconds 0.0.0.0:9094->9092/tcp, :::9094->9092/tcpkafka-zookeeper-1zookeeper:latest "/docker-entrypoint.…"zookeeper 7 seconds ago Up 6 seconds 2888/tcp, 3888/tcp, 0.0.0.0:2181->2181/tcp, :::2181->2181/tcp, 8080/tcp

放行安全组

放行端口 2181,9092,9093,9094

wKgZO2d88qqAMiaOAAFPJIT5HJs095.png

基本使用

创建主题

进入容器内部,并进入 bin 目录下(脚本文件都在这个目录下)

[root@flexusx-251fkafka]# docker exec -itkafka-kafka1-1 /bin/bashIhave no name!@6a5684babfc1:/$ lsbindev etc lib64 opt run srv usrbitnamidocker-entrypoint-initdb.d home media proc run.sh sys varbootentrypoint.sh lib mnt root sbin tmpIhave no name!@6a5684babfc1:/$ cd /opt/bitnami/kafka/bin/

创建主题(任意一个 kafka 即可)

•使用 kafka-topics.sh 脚本在 Kafka 集群(通过 123.249.27.118:9092 访问)中创建一个名为 topic1 的新主题,该主题包含 3 个分区,每个分区有 3 个副本。

Ihave no name!@6a5684babfc1:/opt/bitnami/kafka/bin$ ./kafka-topics.sh --create--bootstrap-server123.249.27.118:9092 --replication-factor3 --partitions3 --topictopic1Createdtopic topic1.

命令不知道如何使用,可以进行 help 查询

./kafka-topics.sh--help

查看主题

查看主题,

•使用 kafka-topics.sh 脚本描述(或查询)Kafka 集群(通过 123.249.27.118:9092 访问)中名为 topic1 的主题的详细信息。

Ihave no name!@6a5684babfc1:/opt/bitnami/kafka/bin$ kafka-topics.sh --describe--bootstrap-server123.249.27.118:9092 --topictopic1[2024-09-1102:21:00,753] WARN [AdminClient clientId=adminclient-1] The DescribeTopicPartitions API is not supported, using Metadata API to describe topics. (org.apache.kafka.clients.admin.KafkaAdminClient)Topic:topic1 TopicId: V1q3U6OxR1G5Umo203kvPQ PartitionCount: 3 ReplicationFactor: 3 Configs:Topic:topic1 Partition: 0 Leader: 3 Replicas: 3,1,2 Isr: 3,1,2 Elr: N/A LastKnownElr: N/ATopic:topic1 Partition: 1 Leader: 1 Replicas: 1,2,3 Isr: 1,2,3 Elr: N/A LastKnownElr: N/ATopic:topic1 Partition: 2 Leader: 2 Replicas: 2,3,1 Isr: 2,3,1 Elr: N/A LastKnownElr: N/A

通过执行 kafka-topics.sh 脚本的 describe 命令,并指定 bootstrap-server 为 123.249.27.118:9092 以及查询的 topic 为 topic1,我们观察到该主题的 3 个分区被均匀且成功地分配到了 Kafka 集群的三个 broker 上,这标志着这三个 broker 已经构建了一个高效协作、稳定运行的 Kafka 集群环境。

查看主题列表

Ihave no name!@6a5684babfc1:/opt/bitnami/kafka/bin$ ./kafka-topics.sh --bootstrap-serverlocalhost:9092 --listtopic1

修改主题信息

分区数只能增加,不能减少;副本数不支持修改。

Ihave no name!@6a5684babfc1:/opt/bitnami/kafka/bin$ ./kafka-topics.sh --bootstrap-serverlocalhost:9092 --alter--topictopic1 --partitions4[2024-09-1103:23:54,240] WARN [AdminClient clientId=adminclient-1] The DescribeTopicPartitions API is not supported, using Metadata API to describe topics. (org.apache.kafka.clients.admin.KafkaAdminClient)Ihave no name!@6a5684babfc1:/opt/bitnami/kafka/bin$ kafka-topics.sh --describe--bootstrap-server123.249.27.118:9092 --topictopic1[2024-09-1103:24:17,033] WARN [AdminClient clientId=adminclient-1] The DescribeTopicPartitions API is not supported, using Metadata API to describe topics. (org.apache.kafka.clients.admin.KafkaAdminClient)Topic:topic1 TopicId: V1q3U6OxR1G5Umo203kvPQ PartitionCount: 4 ReplicationFactor: 3 Configs:Topic:topic1 Partition: 0 Leader: 3 Replicas: 3,1,2 Isr: 3,1,2 Elr: N/A LastKnownElr: N/ATopic:topic1 Partition: 1 Leader: 1 Replicas: 1,2,3 Isr: 1,2,3 Elr: N/A LastKnownElr: N/ATopic:topic1 Partition: 2 Leader: 2 Replicas: 2,3,1 Isr: 2,3,1 Elr: N/A LastKnownElr: N/ATopic:topic1 Partition: 3 Leader: 3 Replicas: 3,2,1 Isr: 3,2,1 Elr: N/A LastKnownElr: N/A

删除主题

Ihave no name!@6a5684babfc1:/opt/bitnami/kafka/bin$ kafka-topics.sh --bootstrap-serverlocalhost:9092 --delete--topictopic1#可以看到,已经没有主题存在了 Ihave no name!@6a5684babfc1:/opt/bitnami/kafka/bin$ kafka-topics.sh --bootstrap-serverlocalhost:9092 --list

体验和感受

在大数据与实时流处理领域,Kafka 以其高吞吐量、低延迟和可扩展性赢得了广泛赞誉。而华为云 FlexusX 实例,以其卓越的计算性能、灵活的资源配置和稳定的云环境,为 Kafka 集群的部署提供了理想平台。

在 FlexusX 实例上部署 Kafka 集群,不仅能够充分利用其强大的计算资源,还能通过精细化的配置与优化,实现集群性能的最大化。我们结合华为云提供的专业指导与最佳实践,对 Kafka 集群进行了深度优化,包括网络配置、存储优化、分区与副本策略调整等,确保 Kafka 在高并发、大数据量场景下依然能够稳定运行,提供卓越的服务质量。

值此 828 华为云企业上云节之际,诚邀您一起体验 FlexusX 实例下的 Kafka 集群部署与优化服务。在特惠期间,将享受到前所未有的价格优惠与专业的技术支持,助您轻松构建高效、稳定的实时数据流处理系统。选择华为云 FlexusX 实例,让 Kafka 集群的部署与性能优化变得更加简单、高效。点击下方链接,立即行动,把握 828 特惠,让 Kafka 集群在 FlexusX 实例的强劲动力下,开启数据流处理的新篇章!

产品链接华为云Flexus云服务器X实例直播建站服务器-华为云

wKgZPGd88qqAOfZmAAMdMY7jqCs641.png

审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 华为云
    +关注

    关注

    3

    文章

    2837

    浏览量

    19390
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    Kimi K2.6模型发布当天上线华为

    4月20日, Kimi K2.6模型正式发布并开源,带来行业领先的代码、长程任务执行和Agent集群能力。当前,华为完成适配并实现针对性优化华为
    的头像 发表于 04-23 15:10 606次阅读
    Kimi K2.6模型发布当天上线<b class='flag-5'>华为</b><b class='flag-5'>云</b>

    Prometheus千节点集群的横向扩展实践

    在2026年的运维环境中,千节点规模的Kubernetes集群已经稀松平常。一个典型的中大型互联网公司,其Kubernetes集群规模通常在3000至5000个节点,单个集群中运行的Pod数量动辄数万个。在这样的规模
    的头像 发表于 03-31 14:37 300次阅读

    中软国际携手华为加速企业落地智能体实践

    在第四届北京人工智能产业创新发展大会 “伙伴共成长” 分论坛上,中软国际 AI JointForce工程院副院长韩鹏发表《携手华为加速企业落地智能体实践》主题分享,深度剖析企业智能体落地痛点,分享与
    的头像 发表于 03-04 16:14 712次阅读

    KubePi:开源Kubernetes可视化管理面板,让集群管理如此简单

    环境示例) 有开发者分享了在华为Flexus服务器X实例上,基于openEuler 22.03 LTS操作系统部署KubePi的
    发表于 02-11 12:53

    燧原科技荣获2025年超大规模智算集群创新应用实践成果

    近日,中国信息通信研究院(以下简称“中国信通院”)成功召开2025AI产业发展大会。中国通信标准化协会理事长闻库、中国信通院副院长王志勤出席会议并致辞。中国工程院院士郑纬民作主旨报告。会议期间,发布了超大规模智算集群创新应用实践
    的头像 发表于 12-29 09:59 610次阅读
    燧原科技荣获2025年超大规模智算<b class='flag-5'>集群</b>创新应用<b class='flag-5'>实践</b>成果

    DeepSeek模型如何在服务器上部署

    随着大型语言模型(LLM)的应用日益普及,许多开发者和企业希望将像DeepSeek这样的优秀模型部署到自己的服务器上,以实现私有化、定制化服务并保障数据安全。本文将详细阐述部署DeepSeek模型
    的头像 发表于 10-13 16:52 1239次阅读

    CI/CD实践中的运维优化技巧

    在数字化转型的浪潮中,CI/CD已经成为现代软件开发的基石。然而,真正能够发挥CI/CD威力的,往往在于那些不为人知的运维优化细节。本文将深入剖析CI/CD实践中的关键优化技巧,帮助您构建更高效、更稳定的持续集成与
    的头像 发表于 09-18 15:05 1580次阅读

    使用Ansible实现大规模集群自动化部署

    当你面对1000+服务器需要部署时,你还在一台台手工操作吗?本文将揭秘如何用Ansible实现大规模集群的自动化部署,让运维效率提升10倍!
    的头像 发表于 08-27 14:41 1113次阅读

    Ansible Playbook自动化部署Nginx集群指南

    面对日益猖獗的DDoS攻击,手动部署防护已经out了!今天教你用Ansible一键部署具备DDoS防御能力的Nginx集群,让攻击者哭着回家!
    的头像 发表于 08-06 17:54 977次阅读

    Redis集群部署配置详解

    Redis集群是一种分布式Redis解决方案,通过数据分片和主从复制实现高可用性和横向扩展。集群将整个数据集分割成16384个哈希槽(hash slots),每个节点负责一部分槽位。
    的头像 发表于 07-17 11:04 1266次阅读

    SIP 广播对讲与华为视频会议融合解决方案

    对讲终端与视频会议终端接入同一网络,由统一的管理平台进行管理,实现功能联动。 系统架构 : 控制层 :可在阿里华为部署 SIP
    发表于 07-12 10:57

    Kafka生产环境应用方案

    Apache Kafka作为分布式流处理平台,在现代大数据架构中扮演着消息中间件的核心角色。本文将从运维工程师的角度,详细介绍Kafka在生产环境中的部署方案、配置优化、监控运维等关键
    的头像 发表于 07-09 09:56 720次阅读

    Redis集群部署性能优化实战

    Redis作为高性能的内存数据库,在现代互联网架构中扮演着关键角色。作为运维工程师,掌握Redis的部署、配置和优化技能至关重要。本文将从实战角度出发,详细介绍Redis集群的搭建、
    的头像 发表于 07-08 17:56 1082次阅读

    使用树莓派构建 Slurm 高性能计算集群:分步指南!

    实践经验,并了解了它们是如何协同工作的。设置SLURM组件确实是其中的主要部分,经过一番研究,我终于成功搭建了自己的高性能计算集群。由于设置这台机器非常简单,因
    的头像 发表于 06-17 16:27 2052次阅读
    使用树莓派构建 Slurm 高<b class='flag-5'>性能</b>计算<b class='flag-5'>集群</b>:分步指南!

    鸿蒙5开发宝藏案例分享---性能优化案例解析

    +Profiler**三件套,从编码到测试一键避坑。如果你有更多实战技巧,欢迎在评论区拍砖交流~ 性能优化不是玄学,用对工具,代码也能纵享丝滑!? PS :更多案例可去官网搜“性能最佳实践
    发表于 06-12 16:36