Java生态的总结
三层架构 + MVC
架构的目的:解耦
开发框架
1.Spring
IOC AOP
IOC:控制反转
AOP:切面,动态代理
为了解决不影响业务本来的情况下,实现动态增加功能,大量应用在日志,事务等。
Spring是一个轻量级的Java开源框架,容器
目的:解决企业开发的复杂性问题
Spring是春天,但也十分复杂,配置文件相当繁琐!!
2.SpringBoot
SpringBoot并不是一个新东西,就是Spring的升级版!
新一代JavaEE的开发标准,开箱即用!
它自动帮我们配置了非常多的东西,我们拿来即用!
特性:约定大于配置
3.微服务架构(新的架构)
模块化、功能化!
微服务架构问题:
分布式架构会遇到的四个核心问题?
1.这么多服务,客户端如何去访问?
2.这么多服务,服务之间如何通信?
3.这么多服务,如何治理?
4.服务器宕机,怎么办?
解决方案:
SpringCloud 是一套生态,就是来解决以上分布式架构的四个问题
想使用SpringCloud,必须要掌握SpringBoot,因为SpringCloud式基于SpringBoot;
1. Spring Cloud NetFlix,出来了第一套解决方案,一站式解决方案。
API网关:zuul组件
Feign-->HttpClient-->Http的通信方式,同步并阻塞
服务注册与发现:Eureka
熔断机制:Hystrix
2018年,NetFlix停止维护。
2. Apache Dubbo zookeeper,第二套解决方案
API:没有!要么找第三方,要么自己实现
Dubbo:高性能的基于java实现的RPC通信框架!
服务注册与发现:zookeeper
熔断机制:没有,借助了Hystrix
3. SpringCloud Alibaba 一站式解决方案
4.目前,又提出一种方案(未来):
服务网格:下一代微服务标准。Server Mesh
代表解决方案:istio
核心解决的问题:
1.API网关,服务路由
2.HTTP,RPC框架,异步调用
3.服务注册与发现,高可用
4.熔断机制,服务降级
解决以上问题的本质:网络不可靠。