大数据-78 Kafka 集群模式 集群的应用场景与Kafka集群的搭建 三台云服务器

本文涉及的产品
云原生大数据计算服务MaxCompute,500CU*H 100GB 3个月
注册配置 MSE Nacos/ZooKeeper,182元/月
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
简介: 大数据-78 Kafka 集群模式 集群的应用场景与Kafka集群的搭建 三台云服务器

点一下关注吧!!!非常感谢!!持续更新!!!

目前已经更新到了:

Hadoop(已更完)

HDFS(已更完)

MapReduce(已更完)

Hive(已更完)

Flume(已更完)

Sqoop(已更完)

Zookeeper(已更完)

HBase(已更完)

Redis (已更完)

Kafka(正在更新…)

章节内容

上节我们完成了如下的内容:


Kafka 延时队列

Kafka 重试队列

Kafka JavaAPI 实现 重试队列的操作

a932fe3805a26da88bb43e2a56dfea34_b60754598b1544a8b8f9bb5ece5ba5ba.png 应用场景

消息传递

Kafka可以很好的替代传统的邮件代理,消息代理的使用有很多种原因(将处理与数据生产者分离,缓冲未处理消息等)。与大多数邮件系统相比,Kafka具有更好的吞吐量,内置的分区,复制和容错功能,这使其成为大规模邮件处理应用程序的理想解决方案。


网站活动路由

Kafka最初的用例是能够将用户活动跟踪管道重建为一组实时的发布-订阅。这意味着将网站活动(页面浏览、搜索、其他操作等)发布到主题中心,每种活动类型只有一个主题。这些可用于一系列的用例的订阅,包括实时处理,实时监控,以及加载到Hadoop或脱机数据仓库系统中以进行脱机处理和报告。

活动跟踪通常量很大,因为每个用户页面视图都会生成许多活动消息。


监控指标

Kafka通常用于操作监控数据,这涉及汇总来自分布式应用程序的统计信息,以生成操作数据的集中。


日志汇总

许多人使用Kafka代替日志聚合解决方案,日志聚合通常从服务器收集物理日志文件,并将它们放在中央位置(也许是文件服务器或HDFS)以进行处理。Kafka提取文件的详细信息,并以日志的形式更清晰的抽象日志或事件数据,这允许较低的延迟的处理,并更容易支持多个数据源和分布式数据消耗。以日志为中心的系统(例如Scribe或Flume)相比,Kafka具有同样出色的性能,由于复制而提供的更强的耐用性保证以及更低的端到端的延迟。


流处理

Kafka的需要用户在由多个阶段组成的处理管道中处理数据,其中原始输入数据从Kafka主题中使用,然后进行汇总,充实或以其他方式转换为新主题,以供进一步使用或后续处理。例如,用于推荐新闻文章的处理管道可能会从RSS提要中检索文章内容,并将其发布到文章主题中。进一步的处理可能会使该内容规范化或重复数据删除,并将清晰后的文章内容发布到新主题中。最后的处理阶段可能会尝试向用户推荐此内容。这样的处理管道基于各个主题创建实时数据流的图形。

从0.10.0.0开始,一个轻量但功能强大的流处理库成为KafkaStreams可以在ApacheKafka中使用来执行上述数据处理。除了KafkaStreams之外,其他开源流处理工具还包括ApacheStorm和Apache Samza。


活动采集

事件源是一种应用程序,其中状态更改以时间顺序记录记录。Kafka对大量存储的日志数据的支持使其成为以这种样式构建的应用程序的绝佳后端。


提交日志

Kafka可以用作分布式系统的一种外部提交日志,该日志有助于在节点之间复制数据,并充当故障节点恢复其数据的重新同步机制。Kafka中的日志压缩功能有助于支持此用法。


集群搭建

集群设计

949de985d10b8baad4c5e3350c7be558_b7cc48c1087a45e7a66b854c002acc00.png 由于之前我们已经搭建过单机的Kafka,同时我们为了做之前的实验,一共搭建了两台Kafka的小集群(用作Broker宕机之后的分区、副本等内容的测试),这里我们将对一些部分进行简化。


机器详情

目前我们有三台云服务:


h121.wzk.icu

h122.wzk.icu

h123.wzk.icu

我们已经搭建好了,ZooKeeper的集群,如果你还没有搭建,需要回到之前的章节:ZooKeeper集群搭建。

这里开始,我们直接搭建Kafka的集群环境。

在 h121.wzk.icu 中,我我们已经有了:kafka_2.12-2.7.2 且是配置好的。

Kafka开源项目指南

文章已被社区收录

加入社区


大数据

同时被 2 个专栏收录

169 篇文章18 订阅

订阅专栏


Kafka

22 篇文章1 订阅

订阅专栏

点一下关注吧!!!非常感谢!!持续更新!!!

目前已经更新到了:

Hadoop(已更完)

HDFS(已更完)

MapReduce(已更完)

Hive(已更完)

Flume(已更完)

Sqoop(已更完)

Zookeeper(已更完)

HBase(已更完)

Redis (已更完)

Kafka(正在更新…)

章节内容

上节我们完成了如下的内容:


Kafka 延时队列

Kafka 重试队列

Kafka JavaAPI 实现 重试队列的操作



应用场景

消息传递

Kafka可以很好的替代传统的邮件代理,消息代理的使用有很多种原因(将处理与数据生产者分离,缓冲未处理消息等)。与大多数邮件系统相比,Kafka具有更好的吞吐量,内置的分区,复制和容错功能,这使其成为大规模邮件处理应用程序的理想解决方案。


网站活动路由

Kafka最初的用例是能够将用户活动跟踪管道重建为一组实时的发布-订阅。这意味着将网站活动(页面浏览、搜索、其他操作等)发布到主题中心,每种活动类型只有一个主题。这些可用于一系列的用例的订阅,包括实时处理,实时监控,以及加载到Hadoop或脱机数据仓库系统中以进行脱机处理和报告。

活动跟踪通常量很大,因为每个用户页面视图都会生成许多活动消息。


监控指标

Kafka通常用于操作监控数据,这涉及汇总来自分布式应用程序的统计信息,以生成操作数据的集中。


日志汇总

许多人使用Kafka代替日志聚合解决方案,日志聚合通常从服务器收集物理日志文件,并将它们放在中央位置(也许是文件服务器或HDFS)以进行处理。Kafka提取文件的详细信息,并以日志的形式更清晰的抽象日志或事件数据,这允许较低的延迟的处理,并更容易支持多个数据源和分布式数据消耗。以日志为中心的系统(例如Scribe或Flume)相比,Kafka具有同样出色的性能,由于复制而提供的更强的耐用性保证以及更低的端到端的延迟。


流处理

Kafka的需要用户在由多个阶段组成的处理管道中处理数据,其中原始输入数据从Kafka主题中使用,然后进行汇总,充实或以其他方式转换为新主题,以供进一步使用或后续处理。例如,用于推荐新闻文章的处理管道可能会从RSS提要中检索文章内容,并将其发布到文章主题中。进一步的处理可能会使该内容规范化或重复数据删除,并将清晰后的文章内容发布到新主题中。最后的处理阶段可能会尝试向用户推荐此内容。这样的处理管道基于各个主题创建实时数据流的图形。

从0.10.0.0开始,一个轻量但功能强大的流处理库成为KafkaStreams可以在ApacheKafka中使用来执行上述数据处理。除了KafkaStreams之外,其他开源流处理工具还包括ApacheStorm和Apache Samza。


活动采集

事件源是一种应用程序,其中状态更改以时间顺序记录记录。Kafka对大量存储的日志数据的支持使其成为以这种样式构建的应用程序的绝佳后端。


提交日志

Kafka可以用作分布式系统的一种外部提交日志,该日志有助于在节点之间复制数据,并充当故障节点恢复其数据的重新同步机制。Kafka中的日志压缩功能有助于支持此用法。


集群搭建

集群设计


由于之前我们已经搭建过单机的Kafka,同时我们为了做之前的实验,一共搭建了两台Kafka的小集群(用作Broker宕机之后的分区、副本等内容的测试),这里我们将对一些部分进行简化。


机器详情

目前我们有三台云服务:


h121.wzk.icu

h122.wzk.icu

h123.wzk.icu

我们已经搭建好了,ZooKeeper的集群,如果你还没有搭建,需要回到之前的章节:ZooKeeper集群搭建。

这里开始,我们直接搭建Kafka的集群环境。

在 h121.wzk.icu 中,我我们已经有了:kafka_2.12-2.7.2 且是配置好的。

e36e4aa20974d406b759be1decab9e48_9ea52655652c4e48b2196e22d323c918.png

我们借助之前Hadoop中编写的Shell工具来完成Kafka文件的分发(你也可以使用别的方法,比如压缩包等等)

rsync-script kafka_2.12-2.7.2/

h121

h122

h123

环境变量

我们在三台节点上,尽量配置好环境变量:

  • JDK
  • ZooKeeper
  • Kafka

修改配置

h121

vim /opt/servers/kafka_2.12-2.7.2/config/server.properties
• 1

修改如下内容:

# h121是0、h122是1、h123是2
broker.id=0

# 数据的存储目录
log.dirs=/opt/kafka-logs

# ZooKeeper 地址
zookeeper.connect=h121.wzk.icu:2181,h122.wzk.icu:2181,h123.wzk.icu:2181

对应的内容截图如下所示:

h122

# h121是0、h122是1、h123是2
broker.id=1

# 数据的存储目录
log.dirs=/opt/kafka-logs

# ZooKeeper 地址
zookeeper.connect=h121.wzk.icu:2181,h122.wzk.icu:2181,h123.wzk.icu:2181

h123

# h121是0、h122是1、h123是2
broker.id=3

# 数据的存储目录
log.dirs=/opt/kafka-logs

# ZooKeeper 地址
zookeeper.connect=h121.wzk.icu:2181,h122.wzk.icu:2181,h123.wzk.icu:2181

对应的截图如下图所示:

启动集群

在每台节点上都执行:

kafka-server-start.sh /opt/servers/kafka_2.12-2.7.2/config/server.properties

查看集群

我们需要进入ZooKeeper来启动服务:

zkCli.sh
# 进入ZK后,我们查看当中的信息
ls /brokers/ids

执行结果如下图所示:

第一次执行的时候,我的第三台没有配置好环境变量,启动失败了,第二次可以看到:【0,1,2】

h121

[zk: localhost:2181(CONNECTED) 2] get /brokers/ids/0
{"listener_security_protocol_map":{"PLAINTEXT":"PLAINTEXT"},"endpoints":["PLAINTEXT://h121.wzk.icu:9092"],"jmx_port":-1,"features":{},"host":"h121.wzk.icu","timestamp":"1722931444209","port":9092,"version":5}
[zk: localhost:2181(CONNECTED) 3]

h122

[zk: localhost:2181(CONNECTED) 3] get /brokers/ids/1
{"listener_security_protocol_map":{"PLAINTEXT":"PLAINTEXT"},"endpoints":["PLAINTEXT://h122.wz

h123

[zk: localhost:2181(CONNECTED) 4] get /brokers/ids/2
{"listener_security_protocol_map":{"PLAINTEXT":"PLAINTEXT"},"endpoints":["PLAINTEXT://h123.wzk

如下所示:

目录
相关文章
|
5月前
|
负载均衡 算法 关系型数据库
大数据大厂之MySQL数据库课程设计:揭秘MySQL集群架构负载均衡核心算法:从理论到Java代码实战,让你的数据库性能飙升!
本文聚焦 MySQL 集群架构中的负载均衡算法,阐述其重要性。详细介绍轮询、加权轮询、最少连接、加权最少连接、随机、源地址哈希等常用算法,分析各自优缺点及适用场景。并提供 Java 语言代码实现示例,助力直观理解。文章结构清晰,语言通俗易懂,对理解和应用负载均衡算法具有实用价值和参考价值。
大数据大厂之MySQL数据库课程设计:揭秘MySQL集群架构负载均衡核心算法:从理论到Java代码实战,让你的数据库性能飙升!
|
1月前
|
弹性计算 定位技术 数据中心
阿里云服务器选择方法:配置、地域及付费模式全解析
2025阿里云服务器选购指南:就近选择地域以降低延迟,企业用户优选2核4G5M带宽u1实例,仅199元/年;个人用户可选2核2G3M带宽ECS,99元/年起。长期稳定业务选包年包月,短期或波动场景用按量付费,轻松搭建网站首选高性价比配置。
|
2月前
|
弹性计算 运维 分布式计算
阿里云服务器付费模式选择:节省计划、预留实例券、抢占式实例详解
在我们选购阿里云服务器的时候,有多种计费方式可选,其中包年包月和按量付费是用户最熟悉也是选择最多的计费方式,除了这两种方式之外,阿里云还提供了抢占式实例、节省计划、预留实例券三种更为灵活且经济的付费模式,旨在满足不同业务场景下的长周期低成本与短周期高弹性需求,有的新手用户朋友不清楚这三种计费方式是什么,本文将为大家解析这三种付费模式的内在机制、优势对比及适用场景,以供您选择参考。
|
3月前
|
安全
基于Reactor模式的高性能服务器之Acceptor组件(处理连接)
本节介绍了对底层 Socket 进行封装的设计与实现,通过 `Socket` 类隐藏系统调用细节,提供简洁、安全、可读性强的接口。重点包括 `Socket` 类的核心作用(管理 `sockfd_`)、成员函数的功能(如绑定地址、监听、接受连接等),以及 `Acceptor` 组件的职责:监听连接、接收新客户端连接并分发给上层处理。同时说明了 `Acceptor` 与 `EventLoop` 和 `TcpServer` 的协作关系,并展示了其成员变量和关键函数的工作机制。
79 2
|
3月前
|
弹性计算 关系型数据库 Nacos
低配阿里云 ECS 如何 docker 环境部署 NACOS : 单机版模式
NACOS 单机版 Docker 安装指南。使用指定端口和 custom.env 配置文件启动 Nacos 服务,适用于 2.X 版本,包含 gRPC 支持及 MySQL 数据源配置。 -e MODE=standalone \
329 5
|
6月前
|
负载均衡 算法 关系型数据库
大数据新视界--大数据大厂之MySQL数据库课程设计:MySQL集群架构负载均衡故障排除与解决方案
本文深入探讨 MySQL 集群架构负载均衡的常见故障及排除方法。涵盖请求分配不均、节点无法响应、负载均衡器故障等现象,介绍多种负载均衡算法及故障排除步骤,包括检查负载均衡器状态、调整算法、诊断修复节点故障等。还阐述了预防措施与确保系统稳定性的方法,如定期监控维护、备份恢复策略、团队协作与知识管理等。为确保 MySQL 数据库系统高可用性提供全面指导。
|
6月前
|
存储 弹性计算 资源调度
阿里云服务器收费模式对比:包年包月与按量付费的适用场景与选择参考
在我们购买阿里云服务器的时候,云服务器的收费模式主要有多种收费模式,其中包年包月和按量付费两种主流模式。对于准备在阿里云上部署应用的用户来说,选择合适的收费模式至关重要,因为它直接关系到成本控制和资源使用的灵活性。本文将对这两种收费模式做一个对比,以供参考和选择。
954 14
|
11月前
|
SQL 存储 大数据
单机顶集群的大数据技术来了
大数据时代,分布式数仓如MPP成为热门技术,但其高昂的成本让人望而却步。对于多数任务,数据量并未达到PB级,单体数据库即可胜任。然而,由于SQL语法的局限性和计算任务的复杂性,分布式解决方案显得更为必要。esProc SPL作为一种开源轻量级计算引擎,通过高效的算法和存储机制,实现了单机性能超越集群的效果,为低成本、高效能的数据处理提供了新选择。
|
10月前
|
存储 负载均衡 监控
揭秘 Elasticsearch 集群架构,解锁大数据处理神器
Elasticsearch 是一个强大的分布式搜索和分析引擎,广泛应用于大数据处理、实时搜索和分析。本文深入探讨了 Elasticsearch 集群的架构和特性,包括高可用性和负载均衡,以及主节点、数据节点、协调节点和 Ingest 节点的角色和功能。
428 0
|
9月前
|
消息中间件 存储 缓存
kafka 的数据是放在磁盘上还是内存上,为什么速度会快?
Kafka的数据存储机制通过将数据同时写入磁盘和内存,确保高吞吐量与持久性。其日志文件按主题和分区组织,使用预写日志(WAL)保证数据持久性,并借助操作系统的页缓存加速读取。Kafka采用顺序I/O、零拷贝技术和批量处理优化性能,支持分区分段以实现并行处理。示例代码展示了如何使用KafkaProducer发送消息。

热门文章

最新文章