Last最后:聊聊现在和未来

回顾以前,架构!

 三层机构 + MVC
 
 开发框架
     Spring
    IOC AOP
    IOC(控制反转):原来我们需要自己创建对象,现在交给IOC容器去做!当我们需要的时候,去拿即可;
    AOP:(面向切面编程)
    为了解决什么?在不影响业务的情况下,实现动态增加功能,大量应用在日志,事务..等方面
    Spring是一个轻量级的Java开源框架,容器
    目的:解决企业开发的复杂性问题
    Spring是春天,但是不然,它的配置文件也很复杂!
     
     
     SpringBoot
    SpringBoot并不是新东西,就是Spring的升级版!
    新一代JavaEE的开发标准,开箱即用 -> 拿过来就可以用!
    它自动帮我们配置了非常多的东西,我们拿来用即可!
    特性:约定大于配置!
     
 随着公司体系越来越到,用户越来越多!
     
 微服务架构 --> 新架构
     利用模块化,功能化!开发
     比如:用户,支付,签到,娱乐...模块都放在一个springmvc项目中去跳转
     一旦人数过多:一台服务器解决不了;通过横向增加服务器!
     又出现问题,假设A服务器占用98%资源,B服务器只占了10%的资源 --> 负载均衡,通过底层的算法,尽量将资源占用平衡
     
     问题:用户使用非常多,而签到模块使用很少!所以需要给用户模块多一点资源,给签到模块少一点资源!
     那么就需要将原来的项目,分成模块化,用户和签到分别是一个项目,那么项目之间又需要如何通信呢?
     
 微服务架构问题?
     分布式架构会遇到的四个核心问题?
     1.这么多服务,客户端该如何去访问? //让用户访问同一个接口,通过这个接口再去请求
     2.这么多服务,服务之间如何进行通信?
  3.这么多服务,如何治理呢?
     4.服务挂了,怎么办?
     
 解决方案:
     SpringClound,是一套生态,就是来解决以上分布式架构的4个问题;
     想使用SpringCloud,必须掌握SpringBoot,因为SpringCloud是基于SpringBoot;
     
     1.Spring Cloud NetFlix一家在线影片租赁提供商:提出来了一套解决方案(一站式解决方案, 我们都可以直接去这里拿)
    如何访问:Api网关,zuul组件
    通信:
    Feign 基于 HTTPClient 基于 HTTP的通信方式(同步并阻塞)
    治理:服务注册与发现,Eureka
    服务挂了:服务熔断机制,Hystrix
     
    但是2018年年底,NetFlix宣布无限期停止维护。生态不在维护就会脱节!(可能就会造成安全问题,就会抛弃,但是没有更好的一些公司就还在用)
     
     2.Apache Dubbo zookeeper,第二套解决系统
    访问:API接口,没有!那要么找第三方组件,要么自己实现
    通信:Dubbo,是一个高性能的基于Java实现的 RPC通信框架
    治理:服务注册与发现,zookeeper:动物园管理者(Hadoop,Hive)
    服务挂了:熔断机制没有!那就借助了Hystrix
     
    不完善,Dubbo
 
     3.SpringCloud Alibaba:一站式解决方案!
   
 目前,有提出一种方案:
     服务网格:下一代微服务标准,Server Mesh
     代表方案:istio(你们未来可能需要掌握!)
     
 但是万变不离其宗,一通百通!
     就是解决下面四个问题:
     1.访问问题:API网关,服务路由
     2.通信问题:HTTP、RPC通信框架,异步调用
     3.治理问题:服务注册与发现,实现高可用
     4.服务挂掉:熔断机制,服务降级
     
 为什么要解决这些问题?本质:网络是不可靠的!
     
 程序猿,不要停下脚步!

  来自:https://space.bilibili.com/95256449

posted @ 2020-03-13 12:28  忘忧山的兰木  阅读(270)  评论(0编辑  收藏  举报
她只是想吃这个而已啊……这一定是她非常爱吃的,我居然连如此细微的幸福也夺走了……
Hide
Switch
Save