微服务最大的问题: 网络不可靠
为了实现高可用
,高并发
,高性能
。我们需要面对如下的问题:
-
客户端如何访问这么多的服务
API 网关
-
服务与服务之间如何通信
同步通信
HTTP (Apache Http Client)
RPC (Dubbo 只支持Java, gRPC)异步通信
消息队列 (kafka, RabbitMQ, RocketMQ) -
这么多的服务如何管理
服务治理
服务注册与发现
基于客户端的服务注册与发现
Apache Zookeeper基于服务端的服务注册与发现
Netflix Eureka -
服务挂了怎么办
重试机制
服务熔断
服务降级
服务限流