一个电商系统中，消息中间件可以用来做什么呢？
当然不仅仅限于电商 
最近在了解消息中间件，但是一直不太清楚消息中间件到底是干嘛的，到底在一个系统中用来做什么，就好比redis，内存数据库，我可以在系统中缓存数据，缓解db压力，可以充当队列，用于订单系统异步处理，只是拿redis来举个例子，不是和kafka来比较，在网上很多人介绍都只说生产者消费者模式，异步阿，用于消息告知等等，看了之后更是一头雾水，有了解的能否举几个在实际项目中或工作中，场景中的例子，可以更直观的对消息中间件有一个理解，谢谢
就题目和个人理解回答：消息中间件，是解决分布式系统中各个系统相互通信的工具。
举个很常用的例子：
A系统是分布式模块化构成：
包含a子系统--比如用户模块；包含b子系统--比如资产模块。
现在接到这样的一个需求：要求在用户成功注册系统用户时，要赠送积分给该用户。
那么这个流程就是：
```
用户注册——》a子系统新增用户——》a子系统新增用户成功通知b子系统加相应积分——》b子系统接收通知——》b子系统增加用户积分
```
以上的通知和接收即为消息中间件中的发布和订阅概念。
当然，你可能会问为什么不在同一个事物里注册完用户加相应用户积分？
答案是：是可以的，只是这样系统就不能达到模块之间业务解耦的目的。
所以消息中间件又可以用来解决分布式系统各个模块耦合的功效。