1.为什么要用消息中间件
为了提高响应速度
为了模块解耦
为了提高可靠性
在一个典型的电商网站上,用户下单后需要进行以下操作:
- 订单处理模块创建订单。
- 库存管理模块扣减库存。
- 通知服务模块发送确认邮件或短信给用户。
通过引入消息中间件(如RabbitMQ或Kafka),我们可以将订单处理流程中的操作进行异步处理,解耦各个模块。
- 模块解耦:订单处理模块、库存管理模块和通知服务模块通过消息队列进行通信,彼此之间没有直接依赖,降低了耦合度。
- 提高响应速度:订单处理模块在创建订单后立即返回响应给用户,不需要等待库存更新和通知发送,提升了用户体验。
- 提高可靠性:即使库存管理模块或通知服务模块发生故障,订单处理流程仍然可以继续进行。故障模块恢复后,可以继续处理未处理的消息。
2.如何发送消息
- 创建一个连接工厂并配置连接参数。
- 创建连接和通道。
- 声明一个消息队列。
- 发送消息到队列。