对接高德接口心得,本篇不涉及具体接口

本文分享了对接高德接口过程中遇到的延迟、异常和超时问题,探讨了重试策略、多线程调用、数据库缓存优化等解决方案,并建议使用MySQL存储。

对接高德接口心得

本篇不涉及具体接口,接口均为高德定制开发,只是总结其中遇到的问题。
通过一段时间调用高德接口总结如下:
1.接口延迟比较严重
2.经常返回接口内部异常
3.接口经常超时

针对上述问题总结:

针对报错

调用高德接口必须做好重试准备
由于调用的接口比较多
可以使用函数式编程方式进行重试

private String doPoiRetry(Function<Object, String> function, int time) {

        try {
            return function.apply(null);
        } catch (Exception e) {
            if (time == 3) {
                throw new BizException("高德接口重试三次后仍报错");
            }
            time++;
            try {
                Thread.sleep(200);
            } catch (InterruptedException ex) {
                ex.printStackTrace();
            }
            return doPoiRetry(function, time);
        }
    }

递归执行接口方法并且由于接口tpc有限因此需要sleep一下。

针对于速度

当一个月免需要使用多个高德接口时使用多线程多个接口异步调用,全部返回结果后返回前端。可节省等待单个接口的时间。但是总体还是挺慢的。接口获取到数据后可以保存到本地数据库中,项目中使用了mongo,总体使用感觉不是很好,还是推荐mysql,mysql也支持json格式字段,使用上很方便,可以把关键通用查询条件作为单独字段保存方便维护查询。再次使用相同接口切参数相同时从数据库获取可明显提升效率但也要多线程去访问。

望大家提出宝贵意见。拱手抱拳~!

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值