Spring Cloud 思考

1. 搭建eureka-server时,无法下载spring-cloud-starter-eureka-server依赖。

    答: 这是因为spring-cloud-starter-eureka-server已经deprecated了,官方推荐使用spring-cloud-starter-netflix-eureka-server。

2. 启动eureka-server时,报错java.lang.NoSuchMethodError。

    答: 这是因为我们选择的Spring Cloud版本与Spring boot starter parent版本不一致。具体可以查阅官网: Spring Cloud 比如Greenwich.SR2对应2.1.5.RELEASE的Spring Boot。

3. 消费者如何方便的调用服务提供者的服务呢?由于Spring Cloud服务之间的调用使用的是Http协议Rest请求,因此一旦传递对象,consumer需要构造一个与provider一样的类型来接收,非常麻烦。反观dubbo,通过maven引入provider依赖,直接可以使用provider中的类型。

    答: 目前学习了Feign的声明式服务调用,给出一套规则(标准),让application Client和application Service共同遵守,client只需要使用@FeignClient注解,便可以轻松调用服务端接口,像之前使用ribbon写的LoadBalancerClient,ServiceInstance以及RestTemplate之类的代码都无需再写。

4. 灾难性雪崩效应中,"缓存"与"请求缓存"的区别是什么?

    答:  "缓存"与"请求缓存都是将请求得到的结果存入某一个仓库中保存,且都不用再次发起服务调用的请求。但不同的是,后者对请求进行了缓存,当接收到相同路径、参数的请求时,服务端会根据请求的名称从缓存中取结果(这套逻辑在spring cloud中由hystrix控制),而前者则仍然需要通过编写代码的方式,手动的从仓库(缓存)中取数据。

5. 灾难性雪崩效应中,使用熔断机制时,服务端(provider)突然出现故障,那么在10毫秒内客户端发起请求,会收到什么结果呢?(也就是说没有来得及开启熔断) 这里的"10毫秒"时间能手动调整吗?

   答: 猜测是会返回托底数据,虽然熔断没来得及开启,但"服务降级"的功能还存在,因此会直接返回托底数据。"10毫秒"的阈值可以调整,暂不清楚如何设置。

6. turbine的配置文件中,turbine.aggregator.clusterConfig有什么用?明明通过配置turbine.appConfig就能够指明待监控的应用(application client),为什么还要配置集群名称?难道说turbine能够把一大群application client的dashboard数据分组,按照组(集群)为单位进行整合展示?

发布了45 篇原创文章 · 获赞 13 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/miaomiao19971215/article/details/99643790