分布式网关服务,集群容错杂谈

   

一。在分布式架构中,各个模块之间相互依赖调用,为了降低由于网络波动带来的不确定性因素并提升系统安全性,生产环境中所有模板一般都运行在内网环境中,并单独提供一个工程作为网关服务,开放固定的端口代理所有模块提供的服务,并通过拦截器验证所有外部请求以达到权限管理的目的。外部引用有可能是App,网站或者其他的桌面客户端,为了达到通用性,网关服务一般为web服务,通过HTTP协议提供RESTFUL风格的API接口。

二。为了提供系统可用性,将服务提供方部署成多个组成服务集群,在消费方调用服务失败或超时,Dubbo可以配置多种策略重新调用集群中的其他服务提供方。

在提供方的@Service和消费方的@Reference注解中配置cluster参数,或者用application.properties中的spring.dubbo.service.cluster参数来指定容错策略.

Failover Cluster

失败自动切换,当出现失败时,重试其他服务器。(默认)

通常用于读操作,但重试会带来更长的延迟.

可以通过在服务提供方的@service或消费方@Reference注解中设置retries参数来指定重试次数(不含第一次)

Failfast Cluster

快速失败,只发起一次调用,失败立即报错

通常用于非幂等性的写操作,不如新增记录.

Failsafe Cluster

失败安全,出现异常时,直接忽略。

通常用于写入审计日志等操作

Failback Cluster

失败自动恢复,后台记录失败请求,定时重发

通常用于消息通知操作

Forking Cluster

并行调用多个服务器,只要一个成功即立即返回

通常用于实时性要求比较高的读操作,但需要浪费更多的服务资源。

Broadcast Cluster

广播调用所有提供者,逐个调用,任意一台报错则报错

通常用于通知所有提供者更新缓存或日志等本地资源信息.

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值