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

    文章

    2607

    浏览量

    17477
收藏 人收藏

    评论

    相关推荐

    华为 Flexus 服务器 X 实例之 openEuler 系统下部署 Tailchat 开源聊天系统

    前言 在华为 Flexus 服务器 X 实例的支持,本次实践将展示如何在先进的 openE
    的头像 发表于 01-08 11:40 86次阅读
    <b class='flag-5'>华为</b><b class='flag-5'>云</b> Flexus <b class='flag-5'>云</b>服务器 X <b class='flag-5'>实例</b>之 openEuler 系统下<b class='flag-5'>部署</b> Tailchat 开源聊天系统

    华为 Flexus 服务器 X 实例之 openEuler 系统下部署 Joplin 笔记工具

    前言 作为 IT 技术人员,在工作与学习中,服务器的使用频率极高。华为 Flexus 服务器 X 实例便是一款
    的头像 发表于 01-08 11:39 98次阅读
    <b class='flag-5'>华为</b><b class='flag-5'>云</b> Flexus <b class='flag-5'>云</b>服务器 X <b class='flag-5'>实例</b>之 openEuler 系统下<b class='flag-5'>部署</b> Joplin 笔记工具

    华为 Flexus 服务器 X 实例之 openEuler 系统下部署 Grav 内容管理系统

    华为展现了其在技术创新和服务质量方面的深厚积累。通过在 Flexus 服务器 X 实例部署
    的头像 发表于 01-08 11:38 78次阅读
    <b class='flag-5'>华为</b><b class='flag-5'>云</b> Flexus <b class='flag-5'>云</b>服务器 X <b class='flag-5'>实例</b>之 openEuler 系统下<b class='flag-5'>部署</b> Grav 内容管理系统

    docker 部署 kafka 及 ui 搭建

    1 . 介绍 1.1 什么是华为 Flexus  X 实 例 最近华为 828 B2B 企业节正在举办,Flexus  X 实例的促销也
    的头像 发表于 01-03 09:30 118次阅读
    docker <b class='flag-5'>部署</b> <b class='flag-5'>kafka</b> 及 ui 搭建

    华为 Flexus X 实例 docker 部署 rancher 并构建 k8s 集群

    · 华为最近正在举办 828 B2B 企业节,Flexus X 实例的促销力度非常大,特别适合那些对算力性能有高要求的小伙伴。如果你有自建 MySQL、Redis、Nginx 等服务
    的头像 发表于 01-02 13:44 69次阅读
    <b class='flag-5'>华为</b><b class='flag-5'>云</b> Flexus X <b class='flag-5'>实例</b> docker <b class='flag-5'>部署</b> rancher 并构建 k8s <b class='flag-5'>集群</b>

    华为 Flexus X 实例部署安装 Jupyter Notebook,学习 AI,机器学习算法

    的,由于华为 Flexus X 实例做了很多底层的性能优化,依托创新的大模型支持和智能全域调度,X-Turbo 加速技术让常见应用的
    的头像 发表于 01-02 13:43 99次阅读
    <b class='flag-5'>华为</b><b class='flag-5'>云</b> Flexus X <b class='flag-5'>实例</b><b class='flag-5'>部署</b>安装 Jupyter Notebook,学习 AI,机器学习算法

    华为 FlexusX 实例上实现 Docker 容器的实时监控与可视化分析

    高效。无论是性能瓶颈的精准定位,还是资源利用的优化调整,Flexus X 都是您的得力助手。立即拥抱华为 Flexus X,开启 Docker 容器管理新篇章,让云端之旅更加顺畅无忧
    的头像 发表于 01-02 13:42 72次阅读
    在<b class='flag-5'>华为</b><b class='flag-5'>云</b> <b class='flag-5'>FlexusX</b> <b class='flag-5'>实例</b>上实现 Docker 容器的实时监控与可视化分析

    轻松构建云端办公生态,华为 Flexusx + OnlyOffice 部署指南

    前言 在数字化转型的浪潮中,高效、灵活的云端办公成为企业新需求。华为Flexus X实例,凭借卓越的柔性算力技术和灵活的资源配置,为中小企业提供了理想的云端部署平台。结合 OnlyO
    的头像 发表于 12-30 15:13 210次阅读
    轻松构建云端办公生态,<b class='flag-5'>华为</b><b class='flag-5'>云</b> <b class='flag-5'>Flexusx</b> + OnlyOffice <b class='flag-5'>部署</b>指南

    优化企业运营流程,华为 Flexusx 实例 Odoo ERP 系统的完整解决方案

    前言 在当今数字化转型的大潮中,企业运营流程的优化已成为提升竞争力的关键。华为 Flexus X 实例以其创新的柔性算力和卓越的性能,为企
    的头像 发表于 12-30 14:55 85次阅读
    <b class='flag-5'>优化</b>企业运营流程,<b class='flag-5'>华为</b><b class='flag-5'>云</b> <b class='flag-5'>Flexusx</b> <b class='flag-5'>实例</b><b class='flag-5'>下</b> Odoo ERP 系统的完整解决方案

    云端安全守护者,华为 Flexusx 上的 AWVS 容器化部署与安全扫描实践

    前言 华为 Flexusx 实例以其高性能、可靠性和扩展性著称,为企业提供灵活的计算资源。其灵活性不仅限于硬件配置,更在于对容器化应用的深
    的头像 发表于 12-30 14:54 80次阅读
    云端安全守护者,<b class='flag-5'>华为</b><b class='flag-5'>云</b> <b class='flag-5'>Flexusx</b> 上的 AWVS 容器化<b class='flag-5'>部署</b>与安全扫描<b class='flag-5'>实践</b>

    华为 Flexus 服务器 X 实例之 openEuler 系统下部署 Discuz 论坛网站

    与支持。该实例不仅提供了灵活可扩展的计算资源,还特别优化了对于 openEuler 等开源操作系统的支持,确保用户能够享受到更加高效、安全且易于管理的服务体验。在本文中,我们将探索如何在华为
    的头像 发表于 12-30 09:12 198次阅读
    <b class='flag-5'>华为</b><b class='flag-5'>云</b> Flexus <b class='flag-5'>云</b>服务器 X <b class='flag-5'>实例</b>之 openEuler 系统下<b class='flag-5'>部署</b> Discuz 论坛网站

    华为 Flexus 服务器 X 实例之 openEuler 系统下部署 Web 应用服务器 OpenResty

    充满无限可能的技术世界。本次实践我们专注于在华为 Flexus X 实例上运行的 openEuler 系统中部署 OpenResty,以实
    的头像 发表于 12-26 18:15 178次阅读
    <b class='flag-5'>华为</b><b class='flag-5'>云</b> Flexus <b class='flag-5'>云</b>服务器 X <b class='flag-5'>实例</b>之 openEuler 系统下<b class='flag-5'>部署</b> Web 应用服务器 OpenResty

    基于华为 Flexus 服务器 X 实例部搭建 Halo 博客平台

    前言 在数字化转型的大潮中,华为 Flexus 服务器 X 实例凭借其强劲的性能和高性价比,成为中小企业和开发者理想的选择。本文将详细介
    的头像 发表于 12-26 09:40 167次阅读
    基于<b class='flag-5'>华为</b><b class='flag-5'>云</b> Flexus <b class='flag-5'>云</b>服务器 X <b class='flag-5'>实例</b>部搭建 Halo 博客平台

    华为 EulerOS 环境,Flexus X 实例快速部署宝塔面板攻略

    华为征文活动,我们将带领大家深入了解如何在华为 EulerOS 环境中,高效地安装并配置 Flexus X 实例,以及如何快速
    的头像 发表于 12-25 17:49 208次阅读
    <b class='flag-5'>华为</b><b class='flag-5'>云</b> EulerOS 环境<b class='flag-5'>下</b>,Flexus X <b class='flag-5'>实例</b>快速<b class='flag-5'>部署</b>宝塔面板攻略

    混合部署k8s集群方法有哪些?

    混合部署k8s集群方法是首先需在本地与公有分别建立K8s集群,并确保网络连接。接着,配置kubeconfig文件连接两
    的头像 发表于 11-07 09:37 158次阅读