服务通信 分布式系统通信两种方式: 直接远程调用(同步) 借助第三方间接通信(异步) Feign就属于同步通讯。存在的如下问题 耦合度高,每次添加新的模块就要修改原有模块的代码 性能下降,调用者需要等待服务者返回的结果,如果调用链过长,则响应的时间越长 资源浪费,在等待的过程中,不会释放CPU与内存资源,在高并发的场景下占用浪费资源过大 级联失败,当调用链中一个服务宕机,那么调用者也会出现问题。 异步调用常见的实现方式为事件驱动模式 事件驱动模式优点: 服务解耦,添加模块不需要更改其他服务的代码 性能提升,在用户请求的模块可以直接返回结果,不需要等待其他服务执行完毕后再返回结果 服务没有强依赖关系,一个服务宕机不会影响到其他服务 流量削峰 缺点: 依赖了第三方组件,第三方组件需要保证可靠性、安全性、吞吐能力 架构复杂,业务没有明显流程线,不好追踪管理 一致性问题 MQ MQ:Message Queue消息队列,是消息在传输的过程中保存消息的容器。多用于分布式系统之间进行通信 Kafka适用于数据量大但对数据安全性不高的场景比如说日志的传输...