三层架构 +MVC
架构--->
解耦
开发框架
Spring:
- IOC(控制反转):原来我们都是自己一步一步操作,现在交给容器了,我们需要什么就去拿。
- AOP(面向切面):本质-动态代理,在不影响原本业务的情况下,实现动态增加功能,大量应用在日志,事务等方面。
SpringBoot
- 并不是什么新东西,就是spring的升级版。
- 新一代javaEE的开发标准,开箱即用,有很多start启动器。
- 它自动帮我们配置了很多东西。
- 特性:预定大于配置
微服务架构
模块化,功能化
- 例如:用户,支付,签到,娱乐。。。。。
- 一台服务器解决不了,再增加服务器(横向)
- 假设A服务器占用了98%的资源,而B服务器只占了10%,
----
负载均衡 - 将原来的整体项目,分成模块化,用户就是一个单独的项目签到,也是一个单独的项目,项目和项目之间如何通信?
- 用户非常多,而签到非常少,给用户多一点服务器,给签到少一点服务器。
微服务架构问题
分布式架构会遇到的4个核心问题:
- 这么多服务,客户端该如何去访问?
- 这么多服务,服务之间如何进行通信?
- 这么多服务,该如何治理
- 服务挂了怎么办?
解决方案
SpringCloud
, 是一套生态,就是来解决以上分布式架构的4个问题,想使用SpringCloud
的,必须要掌握spring boot,因为SpringBoot是基础。
- Spring Cloud NetFlix ,出来了一套解决方案,一站式解决方案
- Api网关 zuul组件
- feign
-->
HttpClient-->
Http的通信方式,同步并阻塞 - 服务注册与发现,Eureka
- 熔断机制 Hystrix
- 2018年底,NetFlix停止维护。
-
Apach Dubbo Zookeeper,第二套解决方案
API:没有,找第三方组件,或者自己实现
Dubbo
Zookeeper
借助Hystrix -
Spring Cloud Alibaba 一站式解决方案,更简单
新概念:服务网格~ Server Mesh
万变不离其宗
4. API
5. HTTP,RPC
6. 注册和发现
7. 熔断机制
8. 网络不可靠