Kafka Broker 级存储目录迁移

此场景用于在不停机或最小化影响的情况下,为单个 Broker 增加或更换存储目录。

核心原理

Kafka 支持在 log.dirs 配置项中指定多个数据目录。从 Kafka 2.4.0 版本开始,通过 KIP-113 引入了动态日志目录迁移功能,允许在线将分区的日志从一个目录迁移到另一个,而无需重启 Broker。

实施步骤

准备新目录

在 Broker 服务器上创建新的数据目录,例如 /data/kafka-logs-2。
确保新目录的权限和所有者与 Kafka 进程匹配(例如 chown -R kafka:kafka /data/kafka-logs-2)。

更新 Broker 配置

编辑 Broker 的 server.properties 文件,在 log.dirs 配置项中添加新目录的路径,与旧目录用逗号分隔。

log.dirs=/data/kafka-logs-1,/data/kafka-logs-2

Invalid character found for config key: 'SCRAM-SHA-256解决办法

kafka-configs.bat添加授权时报错:
Invalid character found for config key: 'SCRAM-SHA-256

解决办法:去掉--add-config后面的单引号即可;

完整命令如下:
.\bin\windows\kafka-configs.bat --zookeeper localhost:2181/kafka --alter --add-config SCRAM-SHA-256=[password=admin1234] --entity-type users --entity-name admin

参考链接:
https://github.com/confluentinc/confluent-kafka-dotnet/issues/741

常见消息中间件MQ介绍及对比

常见消息中间件MQ介绍

ActiveMQ
Apache下的一个子项目。使用Java完全支持JMS1.1和J2EE 1.4规范的 JMS Provider实现,少量代码就可以高效地实现高级应用场景。可插拔的传输协议支持,比如:in-VM, TCP, SSL, NIO, UDP, multicast, JGroups and JXTA transports。RabbitMQ、ZeroMQ、ActiveMQ均支持常用的多种语言客户端 C++、Java、.Net,、Python、 Php、 Ruby等。

Kafka
Apache下的一个子项目,使用scala实现的一个高性能分布式Publish/Subscribe消息队列系统,具有以下特性: