amursana0302 2021-12-02 11:46 采纳率: 0%
浏览 10
已结题

resttemplate+ribbon频繁调用导致的错误

使用resttemplate+ribbon取其他微服务的数时,如果调用resttemplate过于频繁,报如下错误,
I/O error on GET request for "http://SCENE/get_features": SCENE; nested exception is java.net.UnknownHostException: SCENE

相关代码如下:

@Configuration
public class RestConfig {
    @Bean
    @LoadBalanced
    public RestTemplate restTemplate() {
        return new RestTemplate();
    }
}


@RestController
public class outward_contact{
    @Autowired
    private RestTemplate restTemplate;

    public outward_contact(){
        Thread t=new Thread(new Request_Thread());
/*        try {
            TimeUnit.SECONDS.sleep(5);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }*/
        t.start();
    }


    @RequestMapping("/hi")
    public Vector<Feature> Get_Features() {
        Vector<Feature> features = null;
        //features=restTemplate.getForObject("http://localhost:9001/get_features", Vector.class);
        if(restTemplate!=null){
            System.out.println("restTemplate is not null");
            features=restTemplate.getForObject("http://SCENE/get_features", Vector.class);
            //features=restTemplate.getForEntity("http://SCENE/get_features", Vector.class).getBody();
            System.out.println("features: "+features);
        }
        return features;
    }

    class Request_Thread implements Runnable{
        @Override
        public void run() {
            while(true){
                Get_Features();
                try {
                    TimeUnit.MILLISECONDS.sleep(300);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }
        }
    }
}

如果TimeUnit.MILLISECONDS.sleep(300);的时间改为2000或以上,程序就不会报错,能够正常取数并计算。
是ribbon或resttemplate设置错了吗?求指教。

  • 写回答

1条回答 默认 最新

    报告相同问题?

    相关推荐 更多相似问题

    问题事件

    • 系统已结题 12月10日
    • 创建了问题 12月2日

    悬赏问题

    • ¥15 逆向基础题 第一次做 有很多不懂需要请教
    • ¥16 基于Python的数据库系统开发
    • ¥15 某企业对员工采用计件工资管理制度。通过编写程序,要达到以下目的
    • ¥15 关于C# 英文打字练习器程序设计
    • ¥15 wfp应用层设计规则如何能传递到内核层
    • ¥15 关于机器学习创新点几个问题
    • ¥15 python程序编写
    • ¥15 Type-C扩展坞的RTL8153地址硬改
    • ¥15 uniapp websocket 发送 sub 监听后,代码自动发送了 unsub ,解除了监听
    • ¥15 nativefier封装electron的应用遇到alert弹窗后input栏获取不到焦点,confirm不弹出的问题。