回顾以前,架构!
三层架构 + MVC
架构 --- > 解耦
开发框架
spring
IOC AOP
IOC: 控制反转
约泡:
泡温泉,泡茶....泡友
附近的人打招呼,加微信聊天,天天聊,--->还不一定能约到
浴场(容器):
温泉,茶庄,泡友
直接进温泉,就有人和你一起了!
原来我们都是自己一步步操作,现在交给容器了!我们需要什么就去拿就可以了 AOP: 面向切面编程(本质,动态代理)
为了解决什么? 不影响业务本来的情况下,实现动态增加功能,大量应用在日志,事务..等等方面
Spring是一个轻量级的Java开源框架,容器
目的: 解决企业开发的复杂性问题
Spring是春天, 万物复苏的季节,觉得他是春天,也十分复杂,配置文件有一大堆
SpringBoot
SpringBoot并不是新东西,就是Spring的升级版!
新一代JavaEE开发标准,开箱即用!--> 拿过来就可以用!
它自动帮我们配置了非常多的东西,我们拿来即用!
特性: 约定大于配置!
随着公司体系越来越大,用户越来越多!
微服务架构---> 什么是微服务,新架构
模块化,功能化!
用户模块,支付模块,签到模块,娱乐模块......
人过于多:一台服务器解决不了;在增加服务器! (横向解决问题)
假设A服务器占用98%,而B服务器只占用了10%.这样依旧不行.
万一A一爆,那不行 --- 负载均衡;
将原来的整体项目,分成模块化,用户就是单独的项目,签到也是一个单独的项目,项目和项目之间需要通信,如何通信?
用户非常多,而签到十分少! 给用户多一点服务器,给签到少一点儿服务器!(分布式)
约定大于配置
微服务架构问题? 分布式架构会遇到的四个核心问题?
1. 这么多服务,客户端如何去访问?
2. 这么多服务,服务之间如何进行通信?
3. 这么多服务,如何治理呢? zookeeper
4. 服务挂了,怎么办? (熔断机制 )
解决方案:
SpringCloud ,是一套生态,就是来解决以上分布式架构的四个问题
但是想使用SpringCloud,必须要掌握SpringBoot,因为SpringCloud是基于SpringBoot;
Spring Cloud NetFlix,出来了一套解决方案
Api网关, zuul组件(客户端可以通过网关访问了)
Feign ---> httpclient ---> HTTP的通信方式,同步并阻塞(服务之间就可以通讯了)
服务注册于发现,Eureka
服务熔断机制(服务挂了怎么办),Hystrix
2018年,年底,NetFlix宣布无限期停止维护.生态不再维护,就会脱节.
会造成新的安全问题,现在就被抛弃了很多,但是很多大公司还在用他们的机制
服务注册与发现, zookeeper: 动物园管理者(Hadoop,Hive)
没有!熔断机制,借助了Hystrix的熔断机制
现在生态不完善,尤其是Dubbo. 当前的Dubbo3.0将提供具备当代特性(如响应性编程)的相关支持,同时吸取阿里内部HSF的设计长处来实现两者的融合,当前预览版的很多地方还在探讨中,希望大家能够积极反馈,我们都会虚心学习并参考.
SpringCloud Alibaba 一站式解决方案!
他没有孵化的时候就有人在使用它了,就这四个字就很多人在用了
目前,又提出了一种方案:
服务网格: 下一代微服务标准! service mesh
代表解决方案: istio(未来可能需要掌握!)
万变不离其中
万变不离其中,一通百通!,(还是那4个问题)
1. API网关(服务路由)
2. HTTP,RPC框架,异步调用
3. 服务注册于发现(高可用问题)
4. 熔断机制,(服务降级)
如果,你们可用基于这4个问题,开发一套新的解决方案,也叫SpringCloud!微服务解决方案
为什么要解决这个问题?本质:网络是不可靠的!
程序猿,不要停下学习的脚步!!!
这是高级阶段...