• 微服务原理


    一、微服务

    1.1 SpringCloud核心组件有哪些?分别有哪些作用?

    • 服务注册与发现——Netflix Eureka、Nacos、Zookeeper
    • 客户端负载均衡——Netflix Ribbon、SpringCloud LoadBalancer
    • 服务熔断器——Netflix Hystrix、Alibaba Sentinel、Resilience4J
    • 服务网关——Netflix Zuul、SpringCloud Gateway
    • 服务接口调用——Netflix Feign、Resttemplate、Openfeign
    • 链路追踪——Netflix Sleuth、Skywalking、Pinpoint
    • 聚合Hystrix监控数据——Netflix Turbine
    • 监控中心---- SpringBoot Admin
    • 配置中心——Spring Cloud Config . Apollo、nacos

    1.2 注册中心的原理是什么?

    服务启动后向Eureka注册,Eureka Server会将注册信息向其他Eureka Server进行同步,当服务消费者要调用服务提供者,则向服务注册中心获取服务提供者地址,然后会将服务提供者地址缓存在本地,下次再调用时,则直接从本地缓存中获取服务列表来完成服务调用

    1.3 eureka和zookeeper的区别?

    zookeeper使用的CP,而eureka使用的是AP
    选择可用性 A(Availability),选择一致性C(Consistency)
    P就是在分布式环境中,由于网络的问题可能导致某个节点和其它节点失去联系,这时候就形成了P(partition),也就是由于网络问题,将系统的成员隔离成了2个区域,互相无法知道对方的状态,这在分布式环境下是非常常见的。

    1.4 SpringCloud和Dubbo有什么区别?

    • dubbo是二进制传输,对象直接转成二进制,使用RPC通信。
      SpringCloud是http传输,同时使用http协议一般会使用SON报文,json再转二进制,消耗会更大。
    • Dubbo只是实现了服务治理,而Spring Cloud下面有几十个子项目分别覆盖了微服务架构下的方方面面,服务治理只是其中的一个方面,一定程度来说,Dubbo只是Spring Cloud Netflix中的一个子集。

    1.5 Ribbon负载均衡的原理?

    1, Ribbon通过ILoadBalancer接口对外提供统一的选择服务器(Server)的功能,此接口会根据不同的负载均衡策略(IRule)选择合适的Server返回给使用者。
    2, IRule是负载均衡策略的抽象,lLoadBalancer通过调用IRule的choose()方法返回Server
    3,IPing用来检测Server是否可用,ILoadBalancer的实现类维护一个Timer每隔10s检测一次Server的可用状态
    4, IClientConfig主要定义了用于初始化各种客户端和负载均衡器的配置信息,器实现类为DefaultClientConfiglmpl

    1.6 微服务的熔断降级机制??

    微服务框架是许多服务互相调用的,要是不做任何保护的话,某一个服务挂了,就会引起连锁反应,导致别的服务
    也挂。Hystrix 是隔离、熔断以及降级的一个框架。如果调用某服务报错(或者挂了),就对该服务熔断,在5分
    钟内请求此服务直接就返回一个默认值,不需要每次都卡几秒,这个过程,就是所谓的熔断。但是熔断了之后就会
    少调用一个服务,此时需要做下标记,标记本来需要做什么业务,但是因为服务挂了,暂时没有做,等该服务恢复
    了,就可以手工处理这些业务。这个过程,就是所谓的降级。

    1.7 什么是Hystrix?实现原理是什么 ?

    Hystrix是一个延迟和容错库,旨在隔离对远程系统、服务和第三方库的访问点,停止级联故障,并在不可避免发生故障的复杂分布式系统中实现快速恢复。主要靠Spring的AOP实现
    实现原理:
    正常情况下,断路器关闭,服务消费者正常请求微服务
    一段事件内,失败率达到一定阈值,断路器将断开,此时不再请求服务提供者,而是只是快速失败的方法((断路方法)
    断路器打开一段时间,自动进入“半开"状态,此时,断路器可允许一个请求方法服务提供者,如果请求调用成功,则关闭断路器,否则继续保持断路器打开状态。
    断路器hystrix是保证了局部发生的错误,不会扩展到整个系统,从而保证系统的即使出现局部问题也不会造成系统雪崩

  • 相关阅读:
    SSM 图书管理在线销售系统
    HTML5网页前端设计-作业二
    【计算机是怎么跑起来的】软件,体验一次手工汇编
    XCTF刷题十一道(01)
    探究Socks5代理和代理IP在技术领域的多重应用
    《熟悉Set集合》 第二弹
    安装node.js详细步骤
    浅浅的 linux开发板 驱动的使用
    Linux系统任务设置
    分布式事务
  • 原文地址:https://blog.csdn.net/qq_46624276/article/details/126537148