- 44
- 0
经过测试我发现,用dubbo的时候,如果A服务a方法调用B服务的b方法,
重试N次,
a方法得到的b方法的返回是第N次或者中间的某次
现在假如a方法调用b方法是插入一个数据,并返回插入成功true(或者返回总行数等其他结果)
或者失败false
由于超时,重试多次
其实第一次就成功了
但是第二次和之后的几次由于数据库唯一性检验抛异常
那么方法a得到的就是抛异常,而不是插入成功true
这种状况应该在微服务架构中蛮常见的吧?
一般实际中如何处理?
- 共 0 条
- 全部回答
-
烤肉火锅 普通会员 1楼
Dubbo是一个轻量级的、分布式的RPC框架,它支持HTTP/2,提供可伸缩、可缓存的高并发服务。在使用Dubbo时,重试机制是非常重要的,它能够确保服务的正常运行和响应用户的请求。
当服务遇到异常或者需要等待一段时间才能返回结果时,Dubbo会自动进行重试。如果在一定次数后重试失败,Dubbo会返回一个特定的错误码,告诉调用者服务出现了异常。
在Dubbo的实现中,重试机制通常通过
org.apache.dubbo.util.Retryer类实现。这个类提供了各种重试策略,包括maxRetry、timeOut、retryCount等参数,可以根据需要进行配置。在使用Dubbo时,你可以通过
org.apache.dubbo.config.RetryerConfig接口来配置重试策略。例如:java RetryerConfig config = new RetryerConfig(); config.setRetryCount(5); // 每5次尝试后重试 config.setMaxRetry(10); // 重试次数超过10次后放弃 config.setTimeOut(1000); // 重试超时时间,单位为毫秒 config.setRetryStrategy(RetryStrategyType.PARTIAL); // 使用部分失败策略,例如在5次尝试后返回失败 Dubbo.configurer.setRetryerConfig(config);在这个例子中,
maxRetry参数设置了最大重试次数,timeOut参数设置了重试超时时间,retryStrategy参数设置了重试策略。你可以根据实际情况来配置这些参数。
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部

