# 分布式架构
# 微服务架构问题
分布式架构会需要的四个核心问题?
1. 这么多服务,客户端该如何去访问?
2. 这么多服务,服务之间如何进行通信?
3. 这么多服务,如何治理呢?
4. 服务挂了,怎么办?
1
2
3
4
2
3
4
解决方案:
SpringCloud是一套生态,就是来解决以上分布式架构的4个问题
想使用SpringCloud,必须要掌握SpringBoot,因为SpringCloud是基于SpringBoot
1.Spring Cloud NetFlix, 出来了一套解决方案
APi网关,zuul组件
Feign-->HttpClient-->HTTP的通信方式,同步并阻塞(基于通信的)
服务注册与发现,Eurek
熔断机制,Hystrix
2018年底,netflix宣布无限期停止维护。生态不再维护,就会脱节
2. Apache Dubbo zookeper,第二套解决方案
API:没有!那么找第三方组件,那么自己实现 (基于通信的)
Dubbo是一个高性能的基于java实现 RPC通信框架
服务注册发现,zookeeper(Hadooop,Hive)
没有:借助了Hystrix
不完善,Dubbo
3.SpringCloud Alibaba 一站式解决方案
目前,又提出了一种方案:
服务网格(service mesh):下一代微服务标准
代表解决方案:istio(未来需要掌握的)
万变不离其宗,一通百通!
1.API网关,服务路由
2.HTTP,RPC框架,异步调用
3.服务注册与发现,高可用
4.熔断机制,服务降级
为什么要解决上面问题?
网络是不可靠的
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# 思考
熟悉24中设计模式是去为了更好的去看源码
全量分析 阅读量: