【狂神说Java】SpringBoot 聊聊现在和未来
开发框架(架构的目的就是解耦)
一、Spring
IOC AOP
IOC :控制反转
约泡:
泡温泉,泡茶..... 泡友
附近的人,打招呼。加微信,聊天,天天聊,--->约泡
浴场(容器) :温泉,茶庄,泡友
直接进温泉,就有人和你- -起了!
原来我们都是自己一步步操作,现在交给容器了!我们需要什么就去拿就可以了
AOP :切面(本质,动态代理)
为了解决什么?不影响业务本来的情况下,实现动态增加功能,大量应用在日志,事务...等等方面
Spring是一个轻量级的Java开源框架, 容器
目的:解决企业开发的复杂性问题
Spring是春天,觉得他是春天,也十分复杂,配置文件!
二、SpringBoot
SpringBoot并不是新东西,就是Spri ng的升级版!
新一代JavaEE的开发标准,开箱即用! ->拿过来就可以用!
它自动帮我们配置了非常多的东西,我们拿来即用!
特性:约定大于配置
随着公司体系越来越大,用户越来越多!
微服务架构--->新架构
模块化,功能化!
用户,支付,签到,娱乐,..... ;
人多余多: -台服务器解决不了;在增加服务器!
横向
假设A服务器占用98%资源,B服务器只占用了10% 。--负载均衡;
将原来的整体项目,分成模块化,用户就是一个单独的项目,签到也是- -个单独的项目,项目和项目之前需要通信,如何通信?
用户非常多,而签到十分少!给用户多点服务器 ,给签到少点服务器! 这就是引入了分布式!
三、微服务架构问题?
分布式架构会遇到的四个核心问题?
1.这么多服务,客户端该如何去访问?入口在哪里?
2.这么多服务,服务之间如何进行通信?
3.这么多服务,如何治理呢?
4.服务挂了,怎么办?
四、解决方案:
SpringCloud,是一套生态,就是来解决以上分布式架构的4个问题
想使用SpringCloud,必须要掌握SpringBoot,因为SpringCloud是基于SpringBoot;
1.Spring Cloud NetFlix,出来了一套解决方案! -站式解决方案。我们都可以直接去这里拿?
Api网关,zuu1组件
Feign --> HttpClient ---> HTTP的通信方式,同步并阻塞
服务注册与发现,Eureka
熔断机制,Hystrix
2018年年底,NetFlix宣布无限期停止维护。生态不再维护,就会脱节。
2. Apache Dubbo zookeeper, 第二套解决系统
API :没有!要么找第三方组件,要么自己实现
Dubbo是一个高性能的基于Java实现的RPC通信框架!
服务注册与发现,zookeeper:动物园管理者(Hadoop , Hive)
没有:借助了Hystrix
不完善,Dubbo.
3. SpringCloud Alibaba - 站式解决方案!
五、万变不离其宗,一通百通!
1.API网关,服务路由
2.HTTP, RPC框架,异步调用
3.服务注册与发现,高可用!
4.熔断机制,服务降级
六、本质问题:网络是不可靠的
七、目前,又提出了一种方案:服务网格:下一代微服务标准,Server Mesh,代表解决方案: istio (你们未来可能需要掌握! )