狂神说springBoot总结笔记
三层架构 + MVC
架构 目的: 解耦
开发框架
spring
IOC AOP
IOC:控制反转
原来我们自己做的,现在交给容器做,我们需要什么就去容器拿,
AOP:切面(本质,动态代理)
为了解决什么?不影响业务的情况下,实现动态代理,大量应用在日志,事务等方面。
spring是一个轻量级的java开源框架,容器
目的:解决企业开发的复杂性问题
spring的配置文件十分复杂。
springBoot
springBoot并不是新东西,就是spring的升级版
新一代的javaEE的开发标准,开箱即用!拿过来就可以用
他自动帮我们配置了很多东西,我们拿来即用!
特性:约定大于配置!
随着公司体系越来越大,用户越来越多!
微服务架构—》新架构
模块化,功能化!
用户,支付,签到,娱乐,…;
人越来越多,一台服务器解决不了;增加服务器!横向
假设A服务器占用98%资源,B服务器只占用了10% ----负载均衡
将原来的整体项目,分模块化,用户就是一个单独的项目,签到也是一份单独的项目,项目和项目之间需要通信,如何通信?
用户非常的多,而签到十分少!给用户多一点服务器,给签到少一点服务器!
微服务架构问题?
分布式架构会遇到的四个核心问题?
1. 这么多服务,客户端该如何去访问?
2. 这么多服务,服务之间如何进行通信?
3. 这么多服务如何治理?
4. 服务挂了,该怎么办?
解决方案:
springCloud,是一套生态,就是来解决以上分布式架构的四个问题
想使用springCloud,必须掌握springBoot,因为springBoot是基于springBoot
1.spring Colud NetFlix,出来一套解决方案!一站式解决方案。我们都可以直接使用
API网关,zuul组件
Feign --》HttpClient----》Http的通信方式,同步并阻塞
服务注册与发现,Eureka
熔断机制,Hystrix
2018年年底,NetFlix宣布无限制停止维护。生态不在维护,就会脱节。
2.Apache Dubbo zookeeper,第二套解决方案
API:没有!要么找第三方组件,要么自己实现
Dubbo是一个高性能的基于java实现的RPC通信框架!
服务注册与搭建,zookeeper:动物园管理者(Hadoop,Hive)
没有:借助了Hystrix
不完善,Dubbo3.0
3. springCloud Alibaba 一站式解决方案!
目前,又提出了一种方案:
服务网格:下一代微服务标准,Server Mesh
代表解决方案:istio()
万变不离其中,一通百通!
1.API网关,服务路由
2.HTTP,RPC框架,异步调用
3.服务注册与发现,高可用
4.熔断机制,服务降级
如果你们基于这四个问题,开发一套解决方案,也叫springCloud!
为什么要解决这个问题?
本质是:网络不可靠的!