SpringCloud面试题解析:服务注册、发现、熔断器等

需积分: 0 0 下载量 54 浏览量 更新于2024-08-03 收藏 18KB DOCX 举报
SpringCloud面试题精讲 春云(SpringCloud)是一组框架的有序集合,利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用Spring Boot的开发风格做到一键启动和部署。 **什么是SpringCloud?** SpringCloud是一系列框架的有序集合,利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用Spring Boot的开发风格做到一键启动和部署。 **使用SpringCloud有什么优势?** 使用Spring Boot开发分布式微服务时,我们面临以下问题: 1. 与分布式系统相关的复杂性,如网络问题、延迟开销、带宽问题、安全问题。 2. 服务发现:服务发现工具管理群集中的流程和服务如何查找和互相交谈。它涉及一个服务目录,在该目录中注册服务,然后能够查找并连接到该目录中的服务。 3. 冗余:分布式系统中的冗余问题。 4. 负载平衡:负载平衡改善跨多个计算资源的工作负荷,诸如计算机、计算机集群、网络链路、中央处理单元,或磁盘驱动器的分布。 5. 性能:问题由于各种运营开销导致的性能问题。 6. 部署复杂性:Devops技能的要求。 **SpringCloud实现服务注册和发现的原理是什么?** SpringCloud实现服务注册和发现的原理是: 1. 服务在发布时指定对应的服务名(服务名包括了IP地址和端口)将服务注册到注册中心(Eureka或者Zookeeper),这一过程是SpringCloud自动实现的,只需要在main方法添加@EnableDisscoveryClient即可,同一个服务修改端口就可以启动多个实例。 2. 调用方法:传递服务名称通过注册中心获取所有的可用实例,通过负载均衡策略调用(Ribbon和Feign)对应的服务。 **为什么要使用SpringCloud熔断器?** 当一个服务调用另一个服务,由于网络原因或者自身原因出现问题时,调用者就会等待被调者的响应,当更多的服务请求到这些资源时,导致更多的请求等待,这样就会发生连锁效应,断路器就是解决这一问题的。 断路器的状态有以下几种: 1. 完全打开:一定时间内,达到一定的次数无法调用,并且多次检测没有恢复的迹象,断路器完全打开,那么下次的请求不会请求到该服务。 2. 半开:短时间内有恢复迹象,断路器会将部分请求发送给服务,当能正常调用时,断路器关闭。 3. 关闭:服务一直处于正常状态,能正常调用,断路器关闭。 **服务注册和发现是什么意思?SpringCloud如何实现?** 服务注册和发现是指在分布式系统中,服务如何注册到注册中心,并且如何被其他服务发现和调用。SpringCloud实现服务注册和发现的原理是: 1. 服务在发布时指定对应的服务名(服务名包括了IP地址和端口)将服务注册到注册中心(Eureka或者Zookeeper),这一过程是SpringCloud自动实现的,只需要在main方法添加@EnableDisscoveryClient即可,同一个服务修改端口就可以启动多个实例。 2. 调用方法:传递服务名称通过注册中心获取所有的可用实例,通过负载均衡策略调用(Ribbon和Feign)对应的服务。 在SpringCloud中,我们通常在属性文件中进行所有的配置随着越来越多的服务开发和部署,服务注册和发现变得越来越重要。