1.Spring Cloud (Hoxton.SR8) 学习笔记—微服务基础知识、Spring Cloud基础知识

  • Post author:
  • Post category:其他




一、微服务基础知识




什么是微服务架构?


微服务架构

就是根据业务

拆分软件模块

,每个模块

单独运行

,每个模块本身是

单体

在这里插入图片描述




服务拆分 有哪些注意事项?

  • 1.不同微服务,

    不要重复开发

    相同业务。
  • 2.微服务

    数据独立

    ,不要访问其它微服务的

    数据库

    。(

    一个微服务

    对应

    一个数据库

    )
  • 3.微服务可以将

    自己的业务

    暴露为

    接口

    ,供其它微服务

    调用




什么是分布式集群?


  • 分布式系统

    : 若干个程序部署在若干台不同的计算机上,它们通过

    网络

    协作完成一个服务。

  • 集中式集群

    : 相同的程序, 在本机部署了多次, 有了

    Docker

    后这很轻松。

  • 分布式集群

    : 若干个程序在

    不同的计算机

    上部署了

    多次

    。(强调

    容灾能力

    )



分布式的 CAP 原则?



  • CAP原则


    : 指的是在一个分布式系统中,


    一致性

    (Consistency)




    可用性

    (Availability)




    分区容错性

    (Partition tolerance)


  • CAP原则

    指的是: 这三个要素最多只能

    同时实现两点

    ,不可能

    三者兼顾




什么是 服务降级 与 服务熔断?



服务降级



  • 超时

    :当下游的服务响应过慢,上游服务主动停掉一些不太重要的业务,加快

    响应速度


  • 程序运行异常

    :当

    下游的服务

    因为某种原因

    不可用



    上游

    主动调用本地的一些

    降级逻辑

    ,加快

    响应速度



服务熔断


  • 不调用该

    失败的服务

    ,直接返回,

    快速释放资源




微服务 中如何实现 远程调用?

  • 基于


    RestTemplate


    发起的

    http请求

    实现

    远程调用



  • http请求




    远程调用

    是与语言无关的调用,只要知道对方的

    ip、端口、接口路径、请求参数

    即可。



REST 和 RPC 远程调用有什么区别?




二、Spring Cloud基础知识



Spring Cloud 是什么?



Spring Cloud




一系列框架

的集合。 它利用

Spring Boot

简化了

分布式系统

的开发。




组件 – Spring Cloud 哪几个组件比较重要?



总体架构



  • Nacos


    :

    注册中心

    : 主管

    服务的发现



    相互调用



  • Feign


    :

    服务远程调用


  • Ribbon


    :

    负载均衡器


  • Spring Cloud Gateway




    服务网关


  • Spring Cloud Config


    :

    配置中心



组件 – 为什么要使用这些组件?




组件 – Ngnix 和 Ribbon 有什么区别?



  • Nginx




    客户端

    所有请求统一交给

    Nginx

    ,由

    Nginx

    进行实现

    请求转发

    ,属于

    服务器端负载均衡



  • Ribbon


    是从

    Eureka注册中心

    上获取

    服务注册信息列表

    ,缓存到本地,然后在

    本地

    实现

    轮询负载均衡

    策略。



  • Nginx


    适合于

    服务器端实现负载均衡

    比如

    Tomcat



  • Ribbon


    适合与在微服务中

    RPC远程调用

    实现

    本地服务负载均衡

    ,比如

    Dubbo



    SpringCloud

    中都是采用

    本地负载均衡




Ribbon 负载均衡的原理?

image.png




版权声明:本文为affluent6原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。