回顾以前,架构!

三层架构 + 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;

  1. Spring Cloud NetFlix,出来了一套解决方案

    1596783030323

    Api网关, zuul组件(客户端可以通过网关访问了)

    Feign ---> httpclient ---> HTTP的通信方式,同步并阻塞(服务之间就可以通讯了)

    服务注册于发现,Eureka

    服务熔断机制(服务挂了怎么办),Hystrix

2018年,年底,NetFlix宣布无限期停止维护.生态不再维护,就会脱节.

会造成新的安全问题,现在就被抛弃了很多,但是很多大公司还在用他们的机制

  1. Apache Dubbo zookeeper,第二套解决系统

    API:没有! 要么找第三方组件,要么自己实现.

    Dubbo:高性能的,基于Java实现的RPC通信框架!

    1596783503473

    1596783490532

服务注册与发现, zookeeper: 动物园管理者(Hadoop,Hive)

没有!熔断机制,借助了Hystrix的熔断机制

现在生态不完善,尤其是Dubbo. 当前的Dubbo3.0将提供具备当代特性(如响应性编程)的相关支持,同时吸取阿里内部HSF的设计长处来实现两者的融合,当前预览版的很多地方还在探讨中,希望大家能够积极反馈,我们都会虚心学习并参考.

  1. SpringCloud Alibaba 一站式解决方案!

    他没有孵化的时候就有人在使用它了,就这四个字就很多人在用了

  2. 目前,又提出了一种方案:

    服务网格: 下一代微服务标准! service mesh

    代表解决方案: istio(未来可能需要掌握!)

万变不离其中

万变不离其中,一通百通!,(还是那4个问题)

1. API网关(服务路由)
 2. HTTP,RPC框架,异步调用
 3. 服务注册于发现(高可用问题)
 4. 熔断机制,(服务降级)

如果,你们可用基于这4个问题,开发一套新的解决方案,也叫SpringCloud!微服务解决方案

为什么要解决这个问题?本质:网络是不可靠的!

程序猿,不要停下学习的脚步!!!

这是高级阶段...


results matching ""

    No results matching ""