zoukankan      html  css  js  c++  java
  • 2020年SpringCloud面试题

    --SpringCloud 的组件使用哪些--------

    https://www.cnblogs.com/weigy/p/12310337.html

    ---SpringCloud的Eureka主要注册什么----

    服务提供者,IP

    服务实例名和IP

    包括服务的主机与端口号、服务版本号、通讯协议等一些附加信息.

    ---SpringCloud的Eureka的基本原理----

    https://www.cnblogs.com/weigy/p/12310362.html

    ---SpringCloud 服务调用,是如何轮询的---

    --SpringCloud之Eureka注册过程分析--

    https://www.cnblogs.com/weigy/p/12617122.html

    ---SpringCloud的Eureka注册中心挂了,正在调用的两个服务怎么样----

    --SpringCloud服务之间是如何调用的--

     --Spring Cloud服务雪崩、降级与熔断--

    https://blog.csdn.net/Mrs_chens/article/details/91831286

    --SpringCloud Feign工作原理--

     --使用 Spring Cloud 有什么优势--

    使用Spring Boot开发分布式微服务时,我们面临以下问题
    1.与分布式系统相关的复杂性-这种开销包括网络问题,延迟开销,
    带宽问题,安全问题。
    2.服务发现-服务发现工具管理群集中的流程和服务如何查找和互
    相交谈。它涉及一个服务目录,在该目录中注册服务,然后能够查
    找并连接到该目录中的服务。
    3.冗余-分布式系统中的冗余问题。
    4.负载平衡 --负载平衡改善跨多个计算资源的工作负荷,诸如计
    算机,计算机集群,网络链路,中央处理单元,或磁盘驱动器的分
    布。
    5.性能-问题 由于各种运营开销导致的性能问题。
    6.部署复杂性-Devops技能的要求。

    --服务注册和发现是什么意思?Spring Cloud 如何实现--

    当我们开始一个项目时,我们通常在属性文件中进行所有的配置。
    随着越来越多的服务开发和部署,添加和修改这些属性变得更加复
    杂。有些服务可能会下降,而某些位置可能会发生变化。手动更改
    属性可能会产生问题。Eureka服务注册和发现可以在这种情况下
    提供帮助。由于所有服务都在Eureka服务器上注册并通过调用
    Eureka服务器完成查找,因此无需处理服务地点的任何更改和处
    理。

    -------负载平衡的意义什么?-----------

    在计算中,负载平衡可以改善跨计算机,计算机集群,网络链接,
    中央处理单元或磁盘驱动器等多种计算资源的工作负载分布。负载
    平衡旨在优化资源使用,最大化吞吐量,最小化响应时间并避免任
    何单一资源的过载。使用多个组件进行负载平衡而不是单个组件可
    能会通过冗余来提高可靠性和可用性。负载平衡通常涉及专用软件
    或硬件,例如多层交换机或域名系统服务器进程。

    ---------什么是 Hystrix 断路器?我们需要它吗?---------

    由于某些原因,employee-consumer公开服务会引发异常。在这
    种情况下使用Hystrix我们定义了一个回退方法。如果在公开服务
    中发生异常,则回退方法返回一些默认值。
    如果firstPage method() 中的异常继续发生,则Hystrix电路将
    中断,并且员工使用者将一起跳过firtsPage方法,并直接调用回
    退方法。 断路器的目的是给第一页方法或第一页方法可能调用的
    其他方法留出时间,并导致异常恢复。可能发生的情况是,在负载
    较小的情况下,导致异常的问题有更好的恢复机会 。

    -----什么是 Netflix Feign?它的优点是什么?-------

    Feign是受到Retrofit,JAXRS-2.0和WebSocket 启发的java
    客户端联编程序。Feign的第一个目标是将约束分母的复杂性统一
    到httpapis,而不考虑其稳定性。在employee-consumer的例
    子中,我们使用了employee-producer使用REST模板公开的
    REST服务。但是我们必须编写大量代码才能执行以下步骤
    1.使用功能区进行负载平衡。
    2.获取服务实例,然后获取基本URL。
    3.利用REST模板来使用服务。
    如何使用NetflixFeign使呼叫变得更加轻松和清洁。如果NetflixRibbon依赖
    关系也在类路径中,那么Feign默认也会负责负载平衡。

    ----------什么是 Spring Cloud Bus?我们需要它吗?--------

    考虑以下情况:我们有多个应用程序使用Spring Cloud Config
    读取属性,而SpringCloudConfig从GIT读取这些属性。 下面
    的例子中多个员工生产者模块从Employee Config Module获取
    Eureka注册的财产。
    如果假设GIT中的Eureka注册属性更改为指向另一台Eureka服
    务器,会发生什么情况。在这种情况下,我们将不得不重新启动服
    务以获取更新的属性。还有另一种使用执行器端点/刷新的方式。
    但是我们将不得不为每个模块单独调用这个url;
    Spring Cloud Bus提供了跨多个实例刷新配置的功能。

    如果我们刷新Employee Producer1,则会自动
    刷新所有其他必需的模块。如果我们有多个微服务启动并运行,这
    特别有用。这是通过将所有微服务连接到单个消息代理来实现的。
    无论何时刷新实例,此事件都会订阅到侦听此代理的所有微服务,
    并且它们也会刷新。可以通过使用端点/总线/刷新来实现对任何单
    个实例的刷新。

    ---------spring cloud 和dubbo区别?--------

    1.服务调用方式 dubbo是RPC springcloud Rest Api
    2.注册中心,dubbo 是zookeeper springcloud是eureka,也可以是zookeeper
    3.服务网关,dubbo本身没有实现,只能通过其他第三方技术整合,springcloud有Zuul路由网关,作为路由服务器,进行消费者的请求分发,springcloud支持断路器,与git完美集成配置文件支持版本控制,事物总线实现配置文件的更新与服务自动装配等等一系列的微服务架构要素。

     --------REST 和RPC对比---------

    1.RPC主要的缺陷是服务提供方和调用方式之间的依赖太强,需要对每一个微服务进行接口的定义,并通过持续继承发布,严格版本控制才不会出现冲突。
    2.REST是轻量级的接口,服务的提供和调用不存在代码之间的耦合,只需要一个约定进行规范。

    10.架构

    在微服务架构中,需要几个基础的服务治理组件,包括服务注册与发现、服务消费、负载均衡、断路器、智能路由、配置管理等,由这几个基础组件相互协作,共同组建了一个简单的微服务系统

    在Spring Cloud微服务系统中,一种常见的负载均衡方式是,客户端的请求首先经过负载均衡(zuul、Ngnix),再到达服务网关(zuul集群),然后再到具体的服。,服务统一注册到高可用的服务注册中心集群,服务的所有的配置文件由配置服务管理,配置服务的配置文件放在git仓库,方便开发人员随时改配置。

    ----------Eureka和Zookeeper区别--------

    https://www.cnblogs.com/weigy/p/12310362.html

    1.Eureka取CAP的AP,注重可用性,Zookeeper取CAP的CP注重
    一致性。
    2.Zookeeper在选举期间注册服务瘫痪,虽然服务最终会恢复,但选举期间不可用。
    3.eureka的自我保护机制,会导致一个结果就是不会再从注册列表移除因长时间没收到心跳而过期的服务。依然能接受新服务的注册和查询请求,但不会被同步到其他节点。不会服务瘫痪。
    4.Zookeeper有Leader和Follower角色,Eureka各个节点平等。
    5.Zookeeper采用过半数存活原则,Eureka采用自我保护机制解决分区问题。
    6.eureka本质是一个工程,Zookeeper只是一个进程。

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

    服务直接的调用,比如在高并发情况下出现进程阻塞,导致当前线程不可用,慢慢的全部线程阻塞,导致服务器雪崩。
    服务熔断:相当于保险丝,出现某个异常,直接熔断整个服务,而不是一直等到服务超时。通过维护一个自己的线程池,当线程到达阈值的时候就启动服务降级,如果其他请求继续访问就直接返回fallback的默认值。

  • 相关阅读:
    古典问题rabbit
    输入两个正整数m和n,求其最大公约数和最小公倍数
    水仙花数
    输入一行字符,分别统计出其中英文字母,空格,数字和其他字符的个数。
    mybatis中的#和$的区别
    SpringMVC 中整合JSON、XML视图
    Gson简要使用笔记
    Spring Framework Artifacts
    Quartz的cron表达式
    清除svn文件目录的bat脚本
  • 原文地址:https://www.cnblogs.com/weigy/p/12602525.html
Copyright © 2011-2022 走看看