Java 接口调用速度限制一般是怎么实现的?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java 接口调用速度限制一般是怎么实现的?相关的知识,希望对你有一定的参考价值。
业务场景如下,有一个第三方的API接口,我的Java程序中是多线程调用的,而且调用速度很快,我想控制这个API的调用次数,在每秒30次的样子,我现在用的方法是通过获取当前系统时间,精确到秒做为Map的Key,Value就存这一秒的流速,每调用一次加1,有没有哪位大虾知道跟好的方法?或者更高效的方法!
参考技术A 1秒30次也是太快了,这个要看接口的更新速度而且你根本没必要多线程调用,因为多个线程同时调用,接口的数据还是那些,根本就不会变
你应该一个线程定时调用,把结果放入公共变量里,然后其它线程 都从这个公用的变量获取数据追问
这个必须要多线程,而且频率要非常快的,所以才会要限制调用次数的,而且每调用一次的结果是不一样的!
追答第三方接口基本上不需要调用的速度太快,你没有说出你想要什么东西,只是说你有多个线程调用第三方接口,也没说出第三方接口提供了什么,所以你现在的逻辑未必是正确的
追问我们的这个是发短信的,所以说每调用一次都是发送一条短信,肯定不能存公共变量的,所以需要限制频次!而且为了达到快速发出,必须使用多线程!
追答类似于网站那种发短信确认的吗,那就没有必要多线程,你说的是你测试吧,多个线程不停的循环发,实际上是不需要多线程的
本回答被提问者和网友采纳 参考技术B 你这个专业术语叫做频次限制。我之前做的是做了个接口能查询出来最近某个接口10分钟内调用的次数并把这个次数放在了mc里面,次数大概1分钟更新一次,做不到实时更新。追问我这个就是需要实时控制的,因为这个接口要开放给N多人,要针对每个人进行限制调用频次!
追答我的也是啊,但我们要求这个实时性并不是特别高,1分钟内就行
我用java怎么去实现支付宝接口,没有思路,求大神帮忙,谢谢,
http://open.alipay.com/platform/document.htm#down在下面找java demo
一般都是配置几个信息
按照支付方式不同 (担保交易啥的 我忘了 3个好像)
有不不同的传参,看看就行
代码里可以用httpClient做get、post请求 参考技术A 看文档啊,支付宝肯定有接口的说明啊 参考技术B 你想做黑客追问
你个逗比,
以上是关于Java 接口调用速度限制一般是怎么实现的?的主要内容,如果未能解决你的问题,请参考以下文章