1.发送请求的数据量大概有多大?
述职答辩的时候被问到这样一个问题,虽然知道怎么算,但不得不承认对这一块的原理、周边的配置了解得并不深刻。
数据量的计算:取mysql命令show table status返回的Avg_row_length的字节数(我发送的数据是运力数据,每次请求发送的数据量和数据表中对应的记录基本一致,即:商圈,日期,每个时段下的运力计划人数)
延时的问题:1.对方接收的数据量有多大?2.能处理的qps是多少?
对方接收的数据量有多大?
首先,接收的数据量与协议无关,HTTP 协议从未规定 GET/POST 的请求长度限制是多少。
其次,请求长度限制是由浏览器和 web 服务器决定和设置的,各种浏览器和 web 服务器的设定均不一样,这依赖于各个浏览器厂家的规定或者可以根据 web 服务器的处理能力来设定。
我们采用的web服务器是nginx,可查看nginx.conf的配置文件,对header、body的大小进行了设置,线上如下:
server_names_hash_bucket_size 128;
client_header_buffer_size 4k;
large_client_header_buffers 4 32k;
client_max_body_size 32m;
client_body_buffer_size 512k;
2.能处理的qps是多少?
首先,qps指标通过压测得出比较科学,如果是新系统,没有经过压测,可以通过接口的响应时间大概估算一下(比如接口响应时间是200ms,那么1s内能处理5个请求,qps是5)。
在与别人对接时,询问一下接口的qps和响应时间,以便于判断自身系统设计。比如应该设计成同步还是异步,当第三方不稳定时如何采取降级措施,比如加开关等。