因为项目需要,需要从本地提交数据到远程服务器上,然后远程服务器对提交的数据对比后,再返回数据给本地,本地再存储到数据库中。
本地环境是 Linux + Nginx 1.6 + MySQL 5.6 + PHP 7.3 。 本地每次提交的数据有几百条数据,远程服务器对请求的数据长度有要求,本地需要提交的数据每一条数据都超过了远程的数据长度要求,所以目前只能一条条的发送请求,一旦请求的次数过多( 5 条),本地服务器就会报 502 错误。
请教下,怎么优化这个数据提交的流程呢?远程服务器因为有其他项目在运行,不能修改其配置,只能本地去配合远程进行优化。
|  |      1luckyrayyy      2020-04-23 01:48:42 +08:00 做这么一个限制还不让改也太睿智了..... 首先,先确定你的方向没有问题,有其他项目在运行也不等于不能动吧。 另外,如果确定只能用现在的方案,那没很大优化空间,你试出来最大长度,然后一次一次来呗。要是只对单次长度做了限制而服务器负载压力很小,就在前端做个异步,直接几十个请求过去。 | 
|  |      2tanranran      2020-04-23 01:50:10 +08:00 压缩数据,然后 POST 上传给服务器 | 
|  |      3mingl0280      2020-04-23 04:41:26 +08:00 via Android 手写个 websocket 传呗…… | 
|  |      4xuanbg      2020-04-23 06:09:30 +08:00 这不是 hash 算法大干快上的时候么?客户端算一个哈希上传,服务端也算一个哈希出来比对就行了呀。只是需要注意双方计算哈希的时候,对象序列化后属性的顺序可能不一致的问题。 | 
|  |      5kaiki      2020-04-23 06:36:12 +08:00 服务端不能动只能客户端用队列了 | 
|      6MrMike OP @luckyrayyy 目前已经是以最大的值进行请求了的 | 
|      8brader      2020-04-23 10:33:25 +08:00 如果服务端完全不能动的话,那你客户端可以做 2 个事情: | 
|      9brader      2020-04-23 10:34:57 +08:00 1:限制请求频率(通过定时器) 2:单次请求利用最大化,每次打包请求的时候,尽可能多的打包几条数据,比如:服务端上限是 1000 字符,那你客户端,看下在 1000 字符以内,尽量装多几条数据,可以提高效率 | 
|      10dongisking      2020-04-23 13:17:28 +08:00 via Android 定时器一秒请求一次咯? | 
|  |      11tabris17      2020-04-23 13:21:29 +08:00 异步处理啊 | 
|      12MrMike OP 问题解决了,用异步处理了。谢谢各位大佬的帮助,结贴。 |