spring cloud alibaba
是网飞在停止运营,开源一些组件之后,我们可以用阿里开源的这一套代替之前的cloud。
Netflix | Alibaba | |
---|---|---|
注册中心 | eureka | nacos |
服务提供调用 | feign+ribbon | dubbo |
限流降级 | hystrix | sentinel |
网关 | zuul | gateway |
中间件 | rocketmq | |
分布式事务 | seata |
dubbo
-
大致分层:
-
接口提供配置(服务的接口暴露,以及一些配置,其他层都可以spi替换实现的)
service+config -
集群协调(动态代理+注册中心交互+负载均衡)
代理+注册层+集群层 -
调用(具体调用,网络的建立,监控,异步同步切换,序列化处理)
监控+协议+exchange+网络+序列化
-
接口提供配置(服务的接口暴露,以及一些配置,其他层都可以spi替换实现的)
-
降级限流熔断:
- 降级是为保护服务的一种策略,直接指定处理流程,或者返回指定信息等。
- 限流是已并发数为依据,进行降级。
-
熔断是动态根据实时的服务提供是否正常,进行判断降级。
模式阶段有正常-熔断-半开放-恢复。
-
dubbo降级
配置文件里可以指定mock方法,进行降级,会在调用超时,或者异常时走降级逻辑。不具备限流和熔断的机制。可以用组件sentinel来实现。 -
traceId
可以利用javaAgent机制来实现无入侵式实现。
是jvmit提供出的一些可以接口,用户可以对其进行扩展,在调用接口时会执行用户实现的业务逻辑。
利用rpc的filter来实现traceId的传递。
网友评论