微服务架构核心问题?
分布式架构会遇到的四个核心问题?
(1)这么多服务,客户端该如何去访问?
(2)这么多服务,服务之间如何进行通信?
(3)这么多服务,如何治理呢?
(4)服务挂了,怎么办?
解决方案:
Spring Cloud,是一套生态, 就是来解决以上分布式架构的4个问题,想使用Spring Cloud,必须要掌握SpringBoot,因为SpringCloud是基于SpringBoot;
1. Spring Cloud NetFlix,出来了一套解决方案! 一站式解决方案。我们都可以直接去这里拿?
(1)Api网关,zuu1组件
(2)Feign --> HttpClient ---> HTTP的通信方式,同步并阻塞
(3)服务注册与发现,Eureka
(4)熔断机制,Hystrix
2018年年底,NetFlix宣布无限期停止维护。生态不再维护,就会脱节。
2. Apache Dubbo zookeeper, 第二套解决系统
(1)API :没有! 要么找第三方组件, 要么自己实现
(2)Dubbo是一个高性能的基于Java实现的RPC通信框架! 2.6.x
(3)服务注册与发现,zookeeper:动物园管理者(Hadoop ,Hive)
(4)没有:借助了Hystrix
Dubbo不完善
3. Spring Cloud Alibaba一站式解决方案 !
以后的构想:
服务网格:下一代微服务标准, Server Mesh
代表解决方案: istio (未来可能需要掌握! )
始终的核心(解决网络不可靠问题):
(1)API网关,服务路由
(2)HTTP,RPC框架,异步调用
(3)服务注册与发现,高可用
(4)熔断机制,服务降级