
举个例子,如果业务需求是对一个( https)api 接口,进行密集型请求,例如每秒请求一次,该用什么技术栈比较好?( Twisted? Nodejs? Go?)
1 kslr 2017-11-09 16:09:56 +08:00 每秒一次一天也只有 86400 次.....随便都好啦,瓶颈还是在其他地方。 |
4 coderfox 2017-11-09 16:13:28 +08:00 via Android 选哪个都无所谓的。Node 和 Go 没多大差距,Twisted 没写过。绝大多数代码都不会因为运行时影响性能,而且你这三个选型还都有 GC,差距不大。 不过既然这样设计,是轮询吗?轮询的话可以改成 WebSocket。 如果是数据变动不频繁的,可以加缓存降低一下数据库压力。 |
6 wellsc 2017-11-09 16:15:15 +08:00 Elixir |
7 zhs227 一秒钟一次,是你请求对方,只要对方不爆掉,好像你说的三种都可以做到,而且不会存在多大区别 |
8 xoxoj OP @coderfox 数据库的话,这个没问题,我们用了 kafka。我问这个问题是初衷是: 1、更快的能得到 https 的响应。(相对而言) 2、能请求的地址更多,例如: api.xxx.com/public/timeline.json api.xxx.com/public/friends.json api.xxx.com/public/news.json .................... ............. ...... |
9 eastpiger 2017-11-09 16:18:55 +08:00 变动不多上缓存, 实时性能用的话用 socket, 读写差距大的话做读写分离,然后读就可以上缓存了, 钱多当然直接堆机器用负载均衡 |
13 hcymk2 2017-11-09 16:23:01 +08:00 这不就是个爬虫问题了么? 记得设计合理的超时时间。 |
14 xoxoj OP 我有个思路,但是不知道可不可行,在传统 c++领域的话,有个复用的概念。 所以我想 https 请求也是基于 tcp 的啊,那么既然是 tcp,是不是可以复用请求链接呢? 那这样的话,就不需要每次请求都去握几次手了。。。 然后这样的情况下,会不会快很多?! |
16 momocraft 2017-11-09 16:28:44 +08:00 一般就是有复用的,tcp 和 tls session 都有 |
18 fuxkcsdn 2017-11-09 21:17:30 +08:00 via iPhone 撸别人的话,你应该考虑的是 ip 代理池,除非对方允许你撸(即使允许你撸,应该也会做流量限制) |
19 ryd994 2017-11-09 22:36:25 +08:00 via Android 你为什么不和对方商量好呢? |