12、回顾架构,以及了解微服务结构SpringCloud

三层架构+MVC

架构 -->解耦

开发框架

Spring

  IOC AOP

  IOC : 控制反转

控制反转举例:

  比如我们要租房,找房子是一件很麻烦的事情,因为我们不清楚哪里有房东要出租房子,而房东要出租房子也不清楚哪里有客源、

这时候就出现了房产中介,你要找房子直接去房产中介,房东去出租房子也去房产中介就行了!

原来我们都是自己一步步操作,现在交给容器了!我们需要什么就去拿就可以了


​ AOP:切面(本质,动态代理)
  ​ 为了解决什么?

    不影响业本来的情况下,实现动态增加功能,大量应用在日志,事务等等

Spring是一个轻量级的Java开源框架,容器

目的:解决企业开发的复杂性问题

Spring是春天,但配置文件繁琐

SpringBoot

  SpringBoot ,新代javaEE的开发标准,开箱即用!>拿过来就可以用,它自动帮我们配置了非常多的东西,我们拿来即用,特性:约定大于配置!

随着公司体系越来越大,用户越来越多

微服务架构—>新架构

模块化,功能化!

用户,支付,签到,娱乐…;

人多余多一台服务器解决不了就再增加一台服务器! --横向扩展

假设A服务器占用98%资源B服务器只占用了10%.–负载均衡;

将原来的整体项,分成模块化,用户就是一个单独的项目,签到也是一个单独的项目,项目和项目之前需要通信,如何通信

用户非常多而到十分少给用户多一点服务器,给签到少一点服务器
微服务架构问题?
分布式架构会遇到的四个核心题?

  1. 这么多服务,客户端该如何去访?
  2. 这么多服务,服务之间如何进行通信?
  3. 这么多服务,如何治理呢?
  4. 服务器宕机了怎么解决-->熔断机制

解决方案:SpringCloud

  Springcloud是一套生态,就是来解决以上分布式架构的4个问题

想使用Spring Clould ,必须要掌握 springBoot , 因为Springcloud是基于springBoot ;

  1. spring Cloud NetFlix

    出来了一套解决方案!一站式解决方案。可以直接使用

    • Api网关 , zuul组件
    • Feign --> Httpclient —> http通信方式,同步并阻塞
    • 服务注册与发现 , Eureka
    • 熔断机制 , Hystrix

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

  1. Apache Dubbo zookeeper ,

    • API:没有!要么找第三方组件,要么自己实现
    • Dubbo 是一个高性能的基于ava实现的RPC通信框架!2.6.x
    • 服务注册与发现 , zookeeper :动物管理者 ( Hadoop , Hive )
    • 没有:借助了Hystrix

    不完善,Dubbo

  2. SpringCloud Alibaba 一站式解决方案

目前又提出了新的思路

  • 服务网格:也许是下一代维服务标准,Service mesh
  • 代表解决方案:istio(未来可能需要掌握)

总而言之,要解决的问题就是4个

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

为什么要解决这个问题?因为网络是不可靠的~

原文地址:https://www.cnblogs.com/zhangzhixi/p/14365567.html