SpringCloud面试题

一.微服务的优点缺点?说下开发项目中遇到的坑?

  • 优点:
  1. 每个服务直接足够内聚,代码容易理解
  2. 开发效率高,一个服务只做一件事,适合小团队开发
  3. 松耦合,有功能意义的服务。
  • 缺点:
  1. 多服务运维难度加大。
  2. 系统部署依赖,服务间通信成本,数据一致性,系统集成测试,性能监控。

二.什么是微服务?

1.微服务是一种架构模式或是一种架构风格,它提倡的是将单一的应用程序划分成若干个小的服务,每个服务都有独立的进程,服务之间相互协调,相互配合,最终完成目的。

三. 什么是Ribbon负载均衡?

  1. Spring Cloud Ribbon是基于Netflix Ribbon实现的一套客户端 负载均衡的工具。
  2. Ribbon客户端组件提供一系列完善的配置项如连接超时,重试等。简单的说,就是在配置文件中列出Load Balancer(简称LB)后面所有的机器,Ribbon会自动的帮助你基于某种规则(如简单轮询,随机连接等)去连接这些机器。

四.什么是springcloud?

  • Spring Cloud是一个微服务框架的规范
  • Spring cloud流应用程序启动器是基于Spring Boot的Spring集成应用程序,提供与外部系统的集成。

五.spring cloud 和dubbo区别?

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

六.REST 和RPC对比

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

七.你所知道的springcloud微服务技术栈?

  • 维度(springcloud)

服务开发:springboot spring
服务注册与发现:Eureka,Zookeeper
服务调用:Rest RPC gRpc
服务熔断器:Hystrix
服务负载均衡:Ribbon Nginx
服务接口调用:Fegin
消息队列:Kafka Rabbitmq activemq
服务配置中心管理:SpringCloudConfig
服务路由(API网关)Zuul
事件消息总线:SpringCloud Bus

八.springcloud如何实现服务的注册?

  1. 服务发布时,指定对应的服务名,将服务注册到 注册中心(eureka zookeeper)
  2. 注册中心加@EnableEurekaServer,服务用@EnableDiscoveryClient,然后用ribbon或feign进行服务直接的调用发现。

九.Eureka和Zookeeper区别

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

十.什么是Hystrix?

  • 防雪崩利器,具备服务降级,服务熔断,依赖隔离,监控(Hystrix Dashboard)
  • 服务降级:
    双十一 提示 哎哟喂,被挤爆了。 app秒杀 网络开小差了,请稍后再试。
    优先核心服务,非核心服务不可用或弱可用。通过HystrixCommand注解指定。
    fallbackMethod(回退函数)中具体实现降级逻辑。

十一.什么是服务熔断?什么是服务降级?

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

十二.springcloud断路器作用?

  • 当一个服务调用另一个服务由于网络原因或自身原因出现问题,调用者就会等待被调用者的响应 当更多的服务请求到这些资源导致更多的请求等待,发生连锁效应(雪崩效应)
  • 断路器有完全打开状态:一段时间内 达到一定的次数无法调用 并且多次监测没有恢复的迹象 断路器完全打开 那么下次请求就不会请求到该服务
  • 半开:短时间内 有恢复迹象 断路器会将部分请求发给该服务,正常调用时 断路器关闭
  • 关闭:当服务一直处于正常状态 能正常调用

十三.什么是Ribbon?

ribbon是一个负载均衡客户端。feign默认集成了ribbon。

十四.什么是feigin?它的优点是什么?

  1. feign采用的是基于接口的注解
  2. feign整合了ribbon,具有负载均衡的能力
  3. 整合了Hystrix,具有熔断的能力
  • 使用:
  1. 添加pom依赖。
  2. 启动类添加@EnableFeignClients
  3. 定义一个接口@FeignClient(name=“xxx”)指定调用哪个服务

十五.Spring Cloud Gateway?

  • Spring Cloud Gateway是Spring Cloud官方推出的第二代网关框架,取代Zuul网关。网关作为流量的,在微服务系统中有着非常作用,网关常见的功能有路由转发、权限校验、限流控制等作用。

  • 使用了一个RouteLocatorBuilder的bean去创建路由,除了创建路由RouteLocatorBuilder可以让你添加各种predicates和filters,predicates断言的意思,顾名思义就是根据具体的请求的规则,由具体的route去处理,filters是各种过滤器,用来对请求做各种判断和修改。

十六.架构?

  • 在微服务架构中,需要几个基础的服务治理组件,包括服务注册与发现、服务消费、负载均衡、断路器、智能路由、配置管理等,由这几个基础组件相互协作,共同组建了一个简单的微服务系统
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SpringCloud面试题是指涉及SpringCloud框架的一系列问题。面试题的主题包括了SpringCloud的基本概念、特性、优势、微服务架构、服务注册与发现、负载均衡、熔断与降级、配置管理、消息队列、分布式事务等方面的知识。这些面试题旨在评估面试者对SpringCloud的理解和实践经验。根据引用和引用,可以找到一套包含大量经典的SpringCloud面试题及答案的参考资料。这套资料汇总了SpringCloud的常见面试题、工程师高级面试题以及一些大厂开发面试宝典。可以参考这些面试题来准备SpringCloud的面试。而引用提到的DRY原则(Don't Repeat Yourself)也是编程中的一个重要原则,它鼓励代码的重用,促进开发和共享库的使用。这也是在SpringCloud开发中需要注意的一个原则。 所以,SpringCloud面试题是一系列涉及SpringCloud框架的问题,包括基本概念、特性、优势、微服务架构、服务注册与发现、负载均衡、熔断与降级、配置管理、消息队列、分布式事务等方面的知识。可以通过参考引用和引用提供的面试题资料来准备相关面试。另外,DRY原则也是在SpringCloud开发中需要遵循的重要原则。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [SpringCloud面试题及答案 300道,springcloud面试题总结 (持续更新)](https://blog.csdn.net/u012889902/article/details/121994645)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值