如非授权,禁止用于商业用途,转载请注明出处
作者: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. Sprint boot notes

    1. spring.io 官网 2. http://javainuse.com/spring/sprboot spring boot学习资源 3. spring boot websocketss视频  ...

  2. [z] How can we render CSS3 in a WebBrowser Control ?

    http://www.pedautreppe.com/post/How-can-we-render-CSS3-in-a-WebBrowser-Control-.aspx

  3. 视觉SLAM的数学基础 第一篇 3D空间的位置表示

    视觉SLAM中的数学基础 第一篇 3D空间的位置表示 前言 转眼间一个学期又将过去,距离我上次写<一起做RGBD SLAM>已经半年之久.<一起做>系列反响很不错,主要由于它为 ...

  4. 多个docker 挂载VOLUME的心得

    假如有一个mysql镜像 在Dockerfile中制定VOLUME /var/lib/mysql 那么当执行: docker run -d -e MYSQL_ROOT_PASSWORD=root -- ...

  5. polymer-developer guide-registration and lifecycle

    注册和声明周期 my = Polymer({ is: "proto-element", created: function() { this.innerHTML = 'create ...

  6. Asp.NetCore Razor 模式 Web 应用

    Razor 页面是 ASP.NET Core MVC 的一个新功能,它可以使基于页面的编码方式更简单高效. Razor 页面是 ASP.NET Core 2.0 中的一个新选择,它是基于页面的编程模型 ...

  7. 关于数组以及c#学习问题

    第二次作业我没注意看群通告,看到都3月8号,开始着手想用c#试着写写,才发现一些问题. a.鞠老的要求中必须原数据需要csv文件,csv文件不是太了解,网上简单查阅了一下------csv意思是逗号分 ...

  8. IDEA 配置SSH2

    系统换成了mac os,因为喜欢它的界面体验,同时受不了win下面系统对硬盘的疯狂访问.发现在mac下面,IDEA真的不错,速度上快,并且它的智能提示真的很厉害.但是导入一个myeclipse的ssh ...

  9. WPF XamlObjectWriterException:无法创建未知类型"Grid"

    using (FileStream fs = new FileStream("UnitFile/Report2.xaml", FileMode.Open)) { rootEleme ...

  10. 如何让你的项目同时支持go vendor和go module

    目录 如何让你的项目同时支持go vendor和go module 1. go module简介 2. 使用go mod命令管理项目 2.1 初始化环境 2.2 构建 3. 保持兼容性 4. 使用go ...