赞
踩
通常情况下,我们使用以下五大组件构成的框架:
但随着SpringCloudAlibba在国内兴起 , 我们逐渐使用以下五大组件构成的阿里巴巴框架:
eureka的上手使用具体可以见:http://t.csdnimg.cn/YYw3o
具体可见:http://t.csdnimg.cn/V6lJg
详情可以看:http://t.csdnimg.cn/SclNT
服务雪崩,即一个服务失败,导致该节点的请求以及其他依赖于它的整条链路的服务都失败或超时的情形。
服务降级是服务自我保护的一种方式,或者保护下游服务的一种方式。被降级的服务会返回一个简化的响应或者一个友好的错误提示,以保证整体系统的稳定性。一般在实际开发中与feign接口整合,编写具体的降级逻辑。
譬如现在有个服务leadnews-article,其发出的post请求article/save不可达。
那么我们代码如下:
@FeignClient(value="leadnews-article",fallback= IArticleClientFallback.class)
public interface IArtcleClient{
@PostMapping("/api/v1/article/save")
public ResponseResult saveArticle(@RequestBody ArticleDto dto);
}
@Component
public interface IArtcleClientFallback implements IArtcleClient{
@Override
public ResponseResult saveArticle(@RequestBody ArticleDto dto){
return ResponseResult.errorResult(AppHttpCodeEnum.SERVER_ERROR,"获取数据失败");
}
}
相当于请求正常时走上一段代码,但是失败时走下一段代码,获得并返回具体的错误通知。但是仅仅如此的话,就缺少了自动恢复机制。因此我们往往还需要配合熔断机制。
Hystrix 熔断机制,用于监控微服务调用情况, 默认是关闭的,如果需要开启需要在引导类上添加注解:@EnableCircuitBreaker
如果检测到 10 秒内请求的失败率超过 50%,就触发熔断机制。之后每隔 5 秒重新尝试请求微服务,如果微服务不能响应,继续走熔断机制。如果微服务可达,则关闭熔断机制,恢复正常请求。
skywalking,一个分布式系统的应用程序性能监控工具,提供了完善的链路追踪能力, apache的开源项目。可以用来实现服务监控。
具体可以看本人的其他博客。
回答:
早期我们一般认为的Spring Cloud五大组件是
随着SpringCloudAlibba在国内兴起 , 我们项目中使用了一些阿里巴巴的组件
注册中心/配置中心 Nacos
负载均衡 Ribbon
服务调用 Feign
服务保护 sentinel
服务网关 Gateway
回答:
springcloud一般用eureka或者nacos来实现服务注册和发现。
我们项目当时采用的是eureka。
服务注册就是服务提供者需要把自己的信息注册到eureka,由eureka来保存这些信息,比如服务名称、ip、端口等等
服务发现就是服务消费者向eureka拉取服务列表信息,如果服务提供者有集群,则消费者会利用负载均衡算法,选择一个发起调用。
回答:
Nacos与eureka都支持服务注册和拉取,以及心跳检查机制。
但第一,Nacos支持主动检测提供者状态,其中分为临时实例和非临时实例。临时实例采用心跳模式,非临时实例采用主动检测模式。临时实例心跳不正常会被剔除,非临时实例则不会被剔除。
第二,如果服务列表变更,Nacos支持主动推送,通知给服务消费者。
第三,Nacos还支持配置中心,但eureka则只有注册中心。
回答:
在服务调用过程中的负载均衡一般使用SpringCloud的Ribbon 组件实现 , Feign的底层已经自动集成了Ribbon , 使用起来非常简单。
当发起远程调用时,ribbon先从注册中心拉取服务地址列表,然后按照一定的路由策略选择一个发起远程调用,一般的调用策略是轮询。
回答:
我们项目使用的是skywalking。它可以监控接口、服务、物理实例的一些状态。特别是在压测的时候可以看到众多服务中哪些服务和接口比较慢,我们可以针对性的分析和优化。同时skywalking的告警页面可以自定义告警规则,且可以接入钉钉、企微等接口,使得项目上线以后报错可以第一时间给相关负责人发短信和发邮件。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。