我们项目中很多地方都使用了RabbitMQ , RabbitMQ 是我们项目中服务通信的主要方式之一 , 我们项目中服务通信主要有二种方式实现 :
- 通过Feign实现服务调用
- 通过MQ实现服务通信
基本上除了查询请求之外, 大部分的服务调用都采用的是MQ实现的异步调用 , 例如 :
- 发布内容的异步审核
- 验证码的异步发送
- 用户行为数据的异步采集入库
- 搜索历史记录的异步保存
- 用户信息修改的异步通知(用户修改信息之后, 同步修改其他服务中冗余/缓存的用户信息)
- 静态化页面的生成
- MYSQL和Redis , ES之间的数据同步
- ....