测试了hello world输出的最简程序,启动一个http worker的端口监听后,tps能达到1W左右,觉得很满意。 但是把简单的echo换成一个第三方网络接口的调用之后,并发量下降到几十。4核8G的机器,我使用其它rpc框架还能实现横向扩展,总体tps能保证在300左右。但使用workerman之后,请问如何才能保证业务代码中有请求第三方接口的情况,还能维持一定高效的并发表现呢?
workerman也可以横向扩展啊。 不过,如果瓶颈在第三方接口,你这边怎么扩展都没用。
你好。当然,这个例子中,整理扩展并发能力上限是在第三方接口的处理能力。只是现在的情况是,至少我可以确人该外部接口并发在300以上。目前突然从1W掉到了几十,是不太能够理解的。
调用rpc 和 直接 操作数据库,并发差距也是 几十倍呢,rpc 是有什么瓶颈吗
1w掉到几十很好理解,比如你开了10个进程,没有调用第三方接口tps可以达到1w。每个进程每秒可以处理1000个请求。但是调用了第三方接口后,假设第三方接口请求响应耗时0.2秒,那么每个进程每秒tps只有5,总tps 瞬间掉到50,这是很好理解的事情。
这种情况下应该多开进程或者加服务器才能提高tps。
但是话说会来,如果第三方接口最高tps只有300的话,那么再怎么扩展服务器也没用。
增加进程,开10000个进程!因为你的问题是网络堵塞。
workerman也可以横向扩展啊。
不过,如果瓶颈在第三方接口,你这边怎么扩展都没用。
你好。当然,这个例子中,整理扩展并发能力上限是在第三方接口的处理能力。只是现在的情况是,至少我可以确人该外部接口并发在300以上。目前突然从1W掉到了几十,是不太能够理解的。
调用rpc 和 直接 操作数据库,并发差距也是 几十倍呢,rpc 是有什么瓶颈吗
1w掉到几十很好理解,比如你开了10个进程,没有调用第三方接口tps可以达到1w。每个进程每秒可以处理1000个请求。但是调用了第三方接口后,假设第三方接口请求响应耗时0.2秒,那么每个进程每秒tps只有5,总tps 瞬间掉到50,这是很好理解的事情。
这种情况下应该多开进程或者加服务器才能提高tps。
但是话说会来,如果第三方接口最高tps只有300的话,那么再怎么扩展服务器也没用。
增加进程,开10000个进程!因为你的问题是网络堵塞。