springcloud-test02
感谢您能抽出几分钟时间来参加本次答题,现在我们就马上开始吧!
Q1:关于Eureka 服务治理体系中有三个核心要素描述错误的是?
服务提供者:提供服务的应用,可以是任何应用。将自己提供的服务注册到 Eureka,以供其他应用发现。
服务注册中心:Eureka 提供的服务端,提供服务注册与发现的功能。
"服务消费者:消费者应用从服务注册中心获取服务列表,从而使消费者可以知道去何处调用其所需要的服务。"
客户端既是服务提供者也是服务消费者。
Q2:下面那一项是服务注册中心的行为?
服务注册
自我保护
服务下线
调取服务
Q3:以下哪项不属于微服务架构的特性
eureka.client.fetch-registry作用是获取注册中心的服务列表,默认值是true
eureka.instance.lease-renewal-interval-in-seconds作用是指定客户端向服务端发送心跳的时间间隔
eureka.client.register-with-eureka作用是注册到eureka中心,默认值false
eureka.instance.lease-expire-duration-in-seconds作用是指定服务端收到最后一次心跳后等待的时间上限
Q4:下面哪一个可以实现springcloud的负载均衡?
Spring Boot
Spring cloud
Eureka
Ribbon
Q5:关于Ribbon描述错误的是?
客户端负载均衡和服务端负载均衡最大的不同点在于服务清单所存储的位置。
"Spring Cloud Ribbon 是一个基于UDP 的客户端负载均衡工具,它基于 Netflix Ribbon 实现。"
"Spring Cloud Ribbon 虽然只是一个工具类框架,它不像服务注册中心、配置中心、API 网关那样需要独立部署,但是它几乎存在于每一个 Spring Cloud 构建的微服务和基础设施中。"
"服务消费者直接通过调用被@LoadBalanced 注解修饰过的RestTemplate 来实现面向服务的接口调用。"
Q6:关于RestTemplate 方法错误的是?
getForEntity (String url, Class responseType, Object…urlVariables)
"putForEntity(String url, Object request, Object… urlVariables)"
"postForEntity(String urlf Object request, Class responseType, MapuriVariables)
delete(String url, Object… urlVariables)
Q7:RestTemplate的以下哪种DELETE方法无法正确删除结果?
delete(String url, Object… urlVariables)
delete(String url, Map urlVariables)
delete(URI url, Class deleteType)
delete(URI url)
Q8:哪个类是 Ribbon 负载均衡器的基础实现类?
AbstractLoadBalancer
DynamicServerListLoadBalancer
BaseLoadBalancer
ZoneAwareLoadBalancer
Q9:以下哪个类不属于Ribbon负载均衡器?
AbstractLoadBalancer
DynamicServerListLoadBalancer
StaticServerListLoadBalancer
ZoneAwareLoadBalancer
Q10:关于负载均衡策略描述错误的是?
"RandomRule该策略实现了从服务实例清单中随机选择一个服务实例的功能。"
"WeightedResponseTimeRule该策略是负载均衡策略的抽象类,在该抽象类中定义了负载均衡器 ILoadBalancer 对象"
"RoundRobinRule该策略实现了按照线性轮询的方式依次选择每个服务实例的功能。"
"RetryRule该策略实现了一个具备重试机制的实例选择功能。"
Q11:以下哪项不属于Spring Cloud Ribbon的自动化配置?
IServer
IRule
IPing
ILoadBalancer
Q12:以下哪项是ribbon指定客户端的配置?
ribbon.<client>.<key>=<value>
<client>.ribbon.<key>=<value
ribbon.<key>=<value>
<client>.<key>=<value>
Q13:关于ribbon重试机制的参数,哪项是错误的?
ribbon.ConnectTimeout作用是指定请求连接的超时时间
ribbon.ReadTimeout作用是指定请求处理的超时时间
ribbon.MaxAutoRetriesNextServer作用是设定对当前实例的重试次数
ribbon.OkToRetryOnAllOperations作用是设定对所有操作请求都进行重试
Q14:下面那种操作不会触发服务降级处理
当前命令处于“熔断/短路”状态,断路器是打开的时候。
当前命令的线程池、请求队列或者信号量被占满的时候。
当前命令的请求缓存功能是被启用的,且存在缓存的情况。
HystrixObservableCommand.construct() HystrixCommand.run() 抛出异常的时候。
Q15:以下哪个选项可实现断路器的异常传播?
" @HystrixCommand(fallbackMethod=""Exception.class"")public User getUser(Long id){ return userService.getUser(id);}"
" @HystrixCommand(catchExceptions = {Exception.class})public User getUser(Long id){ return userService.getUser(id);}"
" @HystrixCommand(ignoreExceptions = {Exception.class})public User getUser(Long id){ return userService.getUser(id);}"
" @HystrixCommandpublic User getUser(Long id){ return userService.getUser(id);}"
Q16:以下哪个选项可实现断路器的异常捕获?
" @HystrixCommand(fallbackMethod = “fallback1”,ignoreExceptions = {RuntimeException.class})User getUserByld(String id) {throw new RuntimeException(""getUserByld command failed"");}User fallback1(String id, Throwable e) {assert “getUserByld command failed”.equals(e. getMessage());}"
" @HystrixCommand(fallbackMethod = “fallback1”,,catchExceptions = {RuntimeException.class})User getUserByld(String id) {throw new RuntimeException(""getUserByld command failed"");}User fallback1(String id, Throwable e) {assert “getUserByld command failed”.equals(e. getMessage());}"
" @HystrixCommandUser getUserByld(String id) {throw new RuntimeException(""getUserByld command failed"");}User fallback1(String id, Throwable e) {assert “getUserByld command failed”.equals(e. getMessage());}"
" @HystrixCommand(fallbackMethod = “fallback1”)User getUserByld(String id) {throw new RuntimeException(""getUserByld command failed"");}User fallback1(String id, Throwable e) {assert “getUserByld command failed”.equals(e. getMessage());}"
Q17:关于Hystrix使用详解描述错误的?
fallback 是 Hystrix 命令执行失败时使用的后备方法,用来实现服务的降级处理逻辑。 注解使用参数为defaultFallbackMethod
以通过@HystrixCommand 注解来更为优雅地实现 Hystrix 命令的定义
"使用注册配置实现 Hystrix 命令时,它还支持忽略指定异常类型功能,只需要通过设置@HystrixCommand 注解的 ignoreExceptions 参数,比如:"
"注解配置方式也同样可以实现异常的获取。它的实现也非 常简单,只需要在 fallback 实现方法的参数中增加 Throwable e 对象的定义,这样在方法内部就可以获取触发服务降级的具体异常内容了"
Q18:关于请求缓存注解描述错误的是
"@CacheResult 该注解用来标记请求命令返回的结果应该被缓存,它必须与 @HystrixCommand 注解结合使用"
"@CacheRemove 该注解用来让请求命令的缓存失效,失效的缓存根据定义的 Key 决定"
"如果同时还使用了 @CacheResult 和@CacheRemove 注解的 cacheKeyMethod 方法指定缓存 Key 的生成,那么该注解@CacheKey将仍起作用
"使用注册配置实现 Hystrix 命令时,它还支持忽略指定异常类型功能,只需要通过设置@HystrixCommand 注解的 ignoreExceptions 参数,比如:"
Q19:关于Figin描述错误的是?
服务名区分大小写,所以只能使用 HELLO-SERVICE,而不能使用hello-service
"•创建应用主类 ConsumerApplication,并通过@EnableFeignClients 注解开启 Spring CloudFeign 的支持功能。"
"定义 HelloService 接口,通过@FeignClient 注解指定服务名来绑定服务,然后再使用 SpringMVC 的注解来绑定具体该服务提供的 REST 接口。"
"在 Brixton.SR5 版本中,原有的 serviceld 属性已经被废弃,若 要写属性名,可以使用 name 或 value。"
Q20:关于Feign 的 Logger 级别描述错误的是?
NONE:仅记录错误信息。
HEADERS:除了记录 BASIC 级别的信息之外,还会记录请求和响应的头信息。"
HEADERS:除了记录 BASIC 级别的信息之外,还会记录请求和响应的头信息。
BASIC:仅记录请求方法、URL 以及响应状态码和执行时间。