经过测试我发现,用dubbo的时候,如果A服务a方法调用B服务的b方法,
重试N次,
a方法得到的b方法的返回是第N次或者中间的某次
现在假如a方法调用b方法是插入一个数据,并返回插入成功true(或者返回总行数等其他结果)
或者失败false
由于超时,重试多次
其实第一次就成功了
但是第二次和之后的几次由于数据库唯一性检验抛异常
那么方法a得到的就是抛异常,而不是插入成功true
这种状况应该在微服务架构中蛮常见的吧?
一般实际中如何处理?
经过测试我发现,用dubbo的时候,如果A服务a方法调用B服务的b方法,
重试N次,
a方法得到的b方法的返回是第N次或者中间的某次
现在假如a方法调用b方法是插入一个数据,并返回插入成功true(或者返回总行数等其他结果)
或者失败false
由于超时,重试多次
其实第一次就成功了
但是第二次和之后的几次由于数据库唯一性检验抛异常
那么方法a得到的就是抛异常,而不是插入成功true
这种状况应该在微服务架构中蛮常见的吧?
一般实际中如何处理?
15 回答8.4k 阅读
8 回答6.2k 阅读
1 回答4.1k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
2 回答3.1k 阅读
2 回答3.8k 阅读
3 回答1.7k 阅读✓ 已解决