狂神说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!

为什么要解决这个问题?

本质是:网络不可靠的!