如非授权,禁止用于商业用途,转载请注明出处
作者:mynewworldyyl

接下来的内容都基于【2】JMicro微服务-Hello World做Demo

微服务中,超时和重试是一个最基本问题下面Demo JMicro如何实现。

  

@Service(maxSpeed=-1,baseTimeUnit=Constants.TIME_SECONDS)
@Component
public class SimpleRpcImpl implements ISimpleRpc {

    @Override
    @SMethod(
        timeout=3000,
        retryInterval=1000,
        retryCnt=3
    )
    public String hello(String name) {
        System.out.println("Server hello: " +name);
              try {
                    Thread.sleep(3000);//让服务超时,看看消费端是什么结果,可以分别设置1000,2000,3000,4000做测试
                        } catch (InterruptedException e) {
                        e.printStackTrace();
                 }

        return "Server say hello to: "+name;
    }

}

在服务提供者中配置SMethod的timeout,retryInterval,retryCnt三个属性即可。

timeout:表示超时时间,单位毫秒,小于或等于0表示不启用超时,大于0表示启用超时;

retryInterval:表示超时后,重试间隔,单位毫秒

retryCnt:表示重试次数,不包括第一次,如设置3,如果第一次超时,第2次成功,则总共请求了2次,同理,全部超时时,总共请求了4次,4次超时后,RPC失败,抛出TimeoutException异常。

注意:

1. 服务启用超时重试,必须确保服务是幂等的,所谓“幂等”就是RPC方法调用N次“效果”是一样的,不会造成系统不一致的问题出现,否则不能启用超时重试机制,即retryCnt只能等于或小时0;

2. 请思考)当服务熔断时,超时重试自动失效?

3. 请思考)服务限流时,如何处理超时重试?

【3】JMicro微服务-服务超时,重试,重试间隔的更多相关文章

  1. JMicro微服务之超时&重试

    JMicro是本人开发的基于Java实现的微服务框架,当前正式版本为0.0.3,并已发布到maven中央仓库.项目源码github:https://github.com/mynewworldyyl/j ...

  2. 5.如何基于 dubbo 进行服务治理、服务降级、失败重试以及超时重试?

    作者:中华石杉 面试题 如何基于 dubbo 进行服务治理.服务降级.失败重试以及超时重试? 面试官心理分析 服务治理,这个问题如果问你,其实就是看看你有没有服务治理的思想,因为这个是做过复杂微服务的 ...

  3. 【13】JMicro微服务-ID生成与Redis

    如非授权,禁止用于商业用途,转载请注明出处作者:mynewworldyyl 往下看前,建议完成前面1到12小节 1. 微服务中ID地位 如果说前面小节的功能点是微服务的大脑,那么全局唯一ID则是微服务 ...

  4. 【12】JMicro微服务-Zookeeper

    如非授权,禁止用于商业用途,转载请注明出处作者:mynewworldyyl 往下看前,建议完成前面1到11小节 1. CuratorFramework支持 JMicro目前基于Zookeeper实现统 ...

  5. 【11】JMicro微服务-配置管理

    如非授权,禁止用于商业用途,转载请注明出处作者:mynewworldyyl 往下看前,建议完成前面1到10小节 JMicro目前仅支持基于Zookeeper做配置管理,全部配置信息可以在ZK做增删改查 ...

  6. JMicro微服务Hello World

    概述 JMicro是本人开发的基于Java实现的微服务框架,前两天发布0.0.3正式版本,并已发布到maven中央仓库. 项目源码github:https://github.com/mynewworl ...

  7. 【5】JMicro微服务-熔断降级

    如非授权,禁止用于商业用途,转载请注明出处作者:mynewworldyyl   1. 使用服务熔断降级特性,必须先启动Pubsub服务,服务监听服务,熔断器服务3个服务 先启动Pubsub及服务监听两 ...

  8. Zuul超时问题,微服务响应超时,zuul进行熔断

    天碰到了微服务响应超时问题,而且超时时间特别短,2秒就超时,zuul就走熔断了. 我采用zuul作为网关,根据不同的访问路径进行微服务的路由,譬如有个服务是user,我访问user服务的某个接口时,该 ...

  9. 【10】JMicro微服务-API网关

    如非授权,禁止用于商业用途,转载请注明出处作者:mynewworldyyl 往下看前,建议完成前面1到9小节 1. Api网关基本特性: Api网关作为对外网提供服务的基本入口,地位类似于NGINX, ...

随机推荐

  1. [.NET] GC垃圾回收机制

    前言: 在.NET程序开发中,为了将开发人员从繁琐的内存管理中解脱出来,将更多的精力花费在业务逻辑上,CLR提供了自动执行垃圾回收的机制来进行内存管理.开发人员甚至感觉不到这一过程的存在.CLR执行垃 ...

  2. 13 Calculating Expected Offspring

    Problem For a random variable XX taking integer values between 1 and nn, the expected value of XX is ...

  3. nodename nor servname provided, or not known

    mac来使用redis然后产生上述错误,据说是用户名的问题 解决: 打开终端: cat /private/etc/hosts sudo vi /private/etc/hosts 将错误的那个名字加入 ...

  4. myeclispe2014启动后报错 Subclipse talks to Subversion via a Java API that requires access to native libraries.

    解决方案: Window -> Preferences -> Team -> SVN, 将SVN接口的Client修改为如图所示

  5. UVa 10537 The Toll! Revisited (最短路)

    题意:给定一个图,你要从 s 到达 t,当经过大写字母时,要交 ceil(x /20)的税,如果经过小写字母,那么交 1的税,问你到达 t 后还剩下 c 的,那么最少要带多少,并输出一个解,如果多个解 ...

  6. struct 和union的区别

    union ( 共用体):构造数据类型,也叫联合体  用途:使几个不同类型的变量共占一段内存(相互覆盖) struct ( 结构体 ):是一种构造类型 用途: 把不同的数据组合成一个整体——自定义数据 ...

  7. 如何计算服务器能够承受多大的pv?

    你想建设一个能承受500万PV/每天的网站吗? 500万PV是什么概念?服务器每秒要处理多少个请求才能应对?如果计算呢? PV是什么: PV是page view的简写.PV是指页面的访问次数,每打开或 ...

  8. POJ1269 Intersecting Lines 2017-04-16 19:43 50人阅读 评论(0) 收藏

    Intersecting Lines Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 15478   Accepted: 67 ...

  9. 有關更新Java 至UPDATE 45 後出現沒法進入ORACLE EBS

    近日部份使用者在更新Java 至UPDATE 45 後出現沒法進入ORACLE.  解決方法如下. 在開始 => 程式集 => JAVA => Configure Java中 (Ja ...

  10. CDI Event解析

    CDI(Contexts And Dependency Injection)是JavaEE 6标准中一个规范,将依赖注入IOC/DI上升到容器级别, 它提供了Java EE平台上服务注入的组件管理核心 ...