- 什么服务熔断?什么是服务降级?
- 熔断机制是应对雪崩效应的一种微服务链路保护机制。当扇出链路的某个微服务不可用或者响应时间太长时,会进行服务降级,进而熔断该节点微服务的调用,快速返回“错误”的响应信息。当检测到该节点微服务调用响应正常后恢复调用链路。在SpringCloud框架里熔断机制通过Hystrix实现,Hystrix会监控微服务间调用的状况,当失败的调用到一定阈值,缺省是5秒内调用20次,如果失败,就会启动熔断机制。熔断机制的注解是@HystrixCommand
- 服务降级,一般是从整体负荷考虑。就是当某个服务熔断之后,服务器将不再被调用,此时客户端可以自己准备一个本地的fallback回调,返回一个缺省值。这样做,虽然水平下降,但好歹可用,比直接挂掉强。
-
SpringCloud提供那些功能?
配置管理、服务注册与发现、断路器、只能路由、选举机制、分布式会话、集群状态 -
Spring cloud核心成员?
Spring Cloud Netflix 核心
Netflix Eureka 作为注册中心
Netflix Hystrix 熔断器
Netflix Zuul 提供动态路由,用于API网关端
Spring Cloud Config 注册中心,支持本地,git,subversion -
分布式事务的实现原理?
主要基于三个方面:分段式事务(资源就绪和执行操作),可靠的消息服务,补偿机制 来实现分布式事务。
2分段事务:需要事务协调者,和资源欲占机制。
TCC-transaction事务框架
TCC的补偿机制:try confire cancel
比如在业务中,订单流程过程中需要对用户进行加积分和口库存操作,在try阶段,先把订单状态修改为修改中,积分表增加一个欲加减积分的字段,在库存表加一个欲占库存的字段,然后通过框架的感知,进行下一步是confirm 还是concel。 -
为什么要用微服务?
实现服务的自治,并给其他服务提供服务。并且由服务管理实现服务降级和服务熔断,防止服务雪崩。 -
微服务的网关设计?
微服务的网关主要借助于netfix Zuul实现,能够实现路由代理,需要使用@EnableZuulProxy注解。和其他服务端一样Zuul也会向Eureka注册服务。
常用注解:
@EnableWebSecurity 登陆认证
@EnableEurekaClient Zuul使用Eureka注册中心
@EnableEurekaServer 服务端使用Eureka注册中心
@HystrixCommand 熔断机制 默认值是5秒内 调用20次,如果调用失败,则启用熔断机制。