**Kafka vs RabbitMQ 选择**
1. **Kafka**:高吞吐、分布式流处理,适合日志/大数据场景,弱事务,消息可长期存储。
2. **RabbitMQ**:传统消息队列,强一致性,低延迟,适合业务解耦、复杂路由。
**选型**:
- 大数据流 → Kafka
- 业务消息(如订单) → RabbitMQ
---
**
@Transactional 不一定生效的原因**
1. **非 public 方法**
2. **自调用**(类内方法调用)
3. **异常被捕获**或未配置 `rollbackFor`
4. **数据库引擎不支持**(如 MyISAM)
5. **多数据源配置错误**
6. **非 Spring 代理对象**(如手动 `new` 的类)
**一句话**:确保方法公开、异常抛出、数据库支持,且通过代理调用。