PHP-怎样提高php网络请求的稳定性?
在php程序里,经常会需要通过file_get_contents或curl或fopen等方法请求远程(非同机房)网络接口,但有时网络不太稳定,或者出现dns出错等情况,通过什么方法能提高php远程网络请求的稳定性?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
在php程序里,经常会需要通过file_get_contents或curl或fopen等方法请求远程(非同机房)网络接口,但有时网络不太稳定,或者出现dns出错等情况,通过什么方法能提高php远程网络请求的稳定性?
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(3)
1.file_get_contents里面的url应该是一个特定的域名,这样可以将域名对应的ip写入host文件,这样就不需要进行dns请求了,就会加快响应速度。
我想到的下面三点:
1.对接口请求情况进行判断;即判断网络是否畅通,失效即先通过获取本地存储上一次的结果。
2.设置合理的超时时间,根据远程站点响应速度,大约2-5s肯定会返回数据。如果接口请求不超时,获取数据后直接进行最新的数据处理,并删除有关的最后一次查询结果,并将最新的查询结果写入数据库或memcache。
3.本地存储结果数据,将最后一次成功查询结果写入数据表或存储到memcache里,接口失效的时候调用最后一次成功查询记录。
1,请求之前先判断一下连通性。
2,设定一个重试机制
3,如果条件允许,把多次请求合并在一起,减少请求次数
4,对于实时性要求比较强的话,就要从硬件层面解决,如果对实时性要求不强,异步来就可以了
对于获取数据
做冗余请求
对于提交数据
在本地做cache,假装你已经成功了,然后在后台向对方异步提交。最终保持数据的一致性