文章目录
分布式架构遇到的问题
高并发,高可用,高性能
最大的问题:网络不可靠
客户端如何访问这些服务
- 解决方案:
在后台 N 个服务和 UI 之间加一个代理或者叫 API Gateway
为前台(通常是移动应用)提供后台服务的聚合,提供一个统一的服务出口,解除他们之间的耦合,不过 API Gateway 也有可能成为 单点故障 点或者性能的瓶颈。
每个服务之间如何通信
同步调用
- REST(JAX-RS,Spring Boot)
- RPC(Thrift, Dubbo)
异步消息调用
- Kafka
- Notify
- MessageQueue
如此多的服务,如何管理调用地址
基于客户端的服务注册与发现
Zookeeper
优点是架构简单,扩展灵活,只对服务注册器依赖。
缺点是客户端要维护所有调用服务的地址
基于服务端的服务注册与发现
Eureka
服务挂了,如何解决?(备份方案,应急处理机制)
- 重试机制
- 限流
- 熔断机制
- 负载均衡
- 降级(本地缓存)