kafka服务端架构总览

Kafka服务端架构与计算IO分离解析

Kafka系列文章

基于Kafka2.1解读Producer原理
基于Kafka2.1解读Consumer原理
Kafka服务端NIO操作原理解析(一)
Kafka服务端NIO操作原理解析(二)



前言

kafka服务端,咱们前两篇文章都是围绕kafka的IO进行分析的,读者很难有全貌的理解,也就是整个服务端有哪些功能,以及这些功能之间是如何协作。


一、kafka服务端的架构

1.1 基本概念介绍

其实任何一个系统,总结起来无非都是『计算』+『IO』。只不过针对咱们的平时的业务系统,“计算”比较多,也就是主要是业务逻辑;IO一般涉及到的是RPC服务框架的调用,当然不管是调用其他业务服务、中间件、数据源其实都是RPC,只不过可能是不同的“网络模型+自定义协议”。

1.2 kafka的特性

kafka作为一个开源的MQ框架,当然也是『计算』+『IO』,但是最为人称道的其实就是他的“IO”模型:网络IO+文件IO。
不过kafka还有个厉害的地方,他使用了计算和IO分离的模式。想想咱们自己的业务系统,是不是会写一段IO,写一段业务逻辑,来回穿插?而再回顾下Kafka服务端NIO操作原理解析(一)
Kafka服务端NIO操作原理解析(二),想想kafka服务端是怎么做的?几乎这两段全是数据的IO逻辑,也就是读取request,写入response的过程。根本不依赖于所谓的逻辑计算,也就是咱们kafka对producer和consumer的请求逻辑实际处理逻辑。
其实想想producer是不是也是这么干的?accumulator不停把数据组装成batches,Sender线程不停遍历batches,然后进行消息发送。producer通过b

要配置Apache Kafka 服务器以在ARM架构上运行,特别是在使用Docker时,你可以按照以下步骤操作: 1. **设置基础配置**[^1]: - 配置`broker.id`为服务器的唯一标识(如 `broker.id=3`)。 - 设置`zookeeper.connect`,连接到ZooKeeper集群,这里使用的是IP地址和端口(如`zookeeper.connect=192.168.44.128:2181,192.168.44.129:2181,192.168.44.130:2181`)。 - 定义`advertised.listeners`,指定对外公开的监听端口(如`advertised.listeners=PLAINTEXT://192.168.44.130:9092`)。 - 指定日志目录(如`log.dirs=/data/kafka/kafka-logs`)。 2. **启动Kafka容器**[^2],如果使用Docker-Compose,可以创建一个新的`docker-compose.yml`文件,定义Kafka服务和依赖项,可能类似于这样: ```yaml version: '3' services: kafka: image: confluentinc/cp-kafka:latest environment: KAFKA_BROKER_ID: 3 KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181 KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://localhost:9092 KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1 volumes: - ./kafka-data:/var/lib/kafka/data ``` 确保替换`image`为所需的Kafka版本(如`confluentinc/cp-kafka:latest`),并使用本地主机名或实际IP替换`localhost`。 3. **启动服务**: - 使用`docker-compose up -d`命令启动Kafka服务(`-d`表示后台运行)。 4. **验证服务状态**: - 可以通过`netstat -tna | grep -e 9092 -e 2181`来检查Kafka和ZooKeeper的端口是否正在监听。 请注意,如果你使用的是新版本的Kafka(3.3及以上),可能会跳过ZooKeeper的部署,因为KRaft取代了部分功能。然而,在生产环境中,通常还是推荐保留ZooKeeper。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值