分布式系统

Kafka Share Groups如何把事件流变成任务队列

276 阅读

Kafka传统消费者组把分区作为最小分配单位,消费者数量一旦超过分区数,多出的实例就只能空闲;逐条确认、失败重试、毒消息隔离和峰值扩容也往往需要业务自行补齐。Kafka 4.x引入Share Groups,以记录级获取锁替代分区独占,并提供ACCEPT、RELEASE、REJECT、RENEW四种处理结果,让多个消费者能够同时协作处理同一分区中的不同任务。本文结合Kafka 4.3.x,从工作原理、记录状态机、顺序与投递语义、Java客户端实现、关键配置、幂等设计、长任务续锁、保留策略和迁移步骤等方面展开,说明Share Groups适合哪些任务队列场景,又为何不能简单视为RabbitMQ等传统消息队列的完全替代品。

用 Seata 解决微服务的分布式事务

803 阅读

Seata 通过事务协调器(TC)、事务管理器(TM)和资源管理器(RM)实现微服务间的全局事务,解决跨服务的数据一致性问题。文章先分析传统 XA、TCC、消息表等方案的性能与实现缺陷,随后介绍 Seata 三种主流模式:AT 通过自动生成回滚日志实现零代码侵入,适用于大多数关系型业务;TCC 采用 Try‑Confirm‑Cancel 手动补偿,支持非关系型资源并要求幂等、防悬挂;Saga 采用正向+补偿链式执行,适合长事务场景。随后给出基于 Spring Boot 的实战步骤、配置要点以及 XID 传播方式,并提供 TC 高可用、事务日志存储、常见坑点的防范建议,帮助 Java 开发者在生产环境安全、快速落地分布式事务。