三层架构+MVC
架构 -->解耦
开发框架
Spring
IOC AOP
IOC : 控制反转
控制反转举例:
比如我们要租房,找房子是一件很麻烦的事情,因为我们不清楚哪里有房东要出租房子,而房东要出租房子也不清楚哪里有客源、
这时候就出现了房产中介,你要找房子直接去房产中介,房东去出租房子也去房产中介就行了!
原来我们都是自己一步步操作,现在交给容器了!我们需要什么就去拿就可以了
AOP:切面(本质,动态代理)
为了解决什么?
不影响业本来的情况下,实现动态增加功能,大量应用在日志,事务等等
Spring是一个轻量级的Java开源框架,容器
目的:解决企业开发的复杂性问题
Spring是春天,但配置文件繁琐
SpringBoot
SpringBoot ,新代javaEE的开发标准,开箱即用!>拿过来就可以用,它自动帮我们配置了非常多的东西,我们拿来即用,特性:约定大于配置!
随着公司体系越来越大,用户越来越多
微服务架构—>新架构
模块化,功能化!
用户,支付,签到,娱乐…;
人多余多一台服务器解决不了就再增加一台服务器! --横向扩展
假设A服务器占用98%资源B服务器只占用了10%.–负载均衡;
将原来的整体项,分成模块化,用户就是一个单独的项目,签到也是一个单独的项目,项目和项目之前需要通信,如何通信
用户非常多而到十分少给用户多一点服务器,给签到少一点服务器
微服务架构问题?
分布式架构会遇到的四个核心题?
- 这么多服务,客户端该如何去访?
- 这么多服务,服务之间如何进行通信?
- 这么多服务,如何治理呢?
- 服务器宕机了怎么解决-->熔断机制
解决方案:SpringCloud
Springcloud是一套生态,就是来解决以上分布式架构的4个问题
想使用Spring Clould ,必须要掌握 springBoot , 因为Springcloud是基于springBoot ;
-
spring Cloud NetFlix
出来了一套解决方案!一站式解决方案。可以直接使用
- Api网关 , zuul组件
- Feign --> Httpclient —> http通信方式,同步并阻塞
- 服务注册与发现 , Eureka
- 熔断机制 , Hystrix
2018年年底,NetFlix 宣布无限期停止维护。生态不再维护,就会脱节。
-
Apache Dubbo zookeeper ,
- API:没有!要么找第三方组件,要么自己实现
- Dubbo 是一个高性能的基于ava实现的RPC通信框架!2.6.x
- 服务注册与发现 , zookeeper :动物管理者 ( Hadoop , Hive )
- 没有:借助了Hystrix
不完善,Dubbo
-
SpringCloud Alibaba 一站式解决方案
目前又提出了新的思路
- 服务网格:也许是下一代维服务标准,Service mesh
- 代表解决方案:istio(未来可能需要掌握)
总而言之,要解决的问题就是4个
- API网关 , 服务路由
- HTTP,RPC框架,异步调用
- 服务注册与发现,高可用
- 熔断机制,服务降级
为什么要解决这个问题?因为网络是不可靠的~