golang 一秒能完成多少次 http 探测

2020-01-03 11:31:32 +08:00
 holinhot
用 python 写了个,一秒几百而一。
最近有个任务,要一秒探测上万网址的 http 状态。这里只获取状态码,暂时没检测内容。

如果用 golang 一秒能完成多少次 http 探测?如果设置 10 秒超时。这样是不是最大的问题在于阻塞?如果很多 url 都超时了,这样就有 n 个 10 秒被阻塞。有没有什么好办法能高效探测成千上网 url.
如果排除超时阻塞一秒能完成多少次探测?

cpu 打算配置个双 E5,宽带 1gbps.
6651 次点击
所在节点    Go 编程语言
37 条回复
tourist2018
2020-01-03 17:28:26 +08:00
@tourist2018 golang 本身 client 可以限制超时时间 那就不用 timer 了
sagaxu
2020-01-03 18:11:57 +08:00
@monkeyWie 不管你 nat 之后有几个虚拟 IP,对方服务器看到的 IP 只有出口 IP 这一个
monkeyWie
2020-01-03 18:17:23 +08:00
@sagaxu 服务器对出口 IP 又没有限制,只要 fd 够用就行了
superrichman
2020-01-03 18:22:47 +08:00
劝你别这么做,qps 太高分分钟被运营商屏蔽,第二天就上新闻:xxx 涉嫌对 xxx xxx 台服务器进行大规模攻击,已被拘留。 /狗头🐶
sagaxu
2020-01-03 18:23:10 +08:00
@monkeyWie 那是 tcpip 四元组的限制,跟服务器没有关系
sagaxu
2020-01-03 18:23:47 +08:00
@monkeyWie 你的公网地址只有一个,无论你怎么开 docker,也变不出两个地址来
monkeyWie
2020-01-03 18:31:02 +08:00
@sagaxu 懂了😅,又看了那个 C1000K 测试也是本地一台机器做的,所以可以适用
holinhot
2020-01-03 18:58:24 +08:00
@monkeyWie 端口问题可以用分配多个 ip 地址来解决
liuxu
2020-01-03 19:03:31 +08:00
@superrichman 10K CC,不是买的发包机不封才怪
holinhot
2020-01-03 19:11:24 +08:00
@phantomzz 还有 https://github.com/yanc0/beeping 这个我也看了,这两个如果任务量不大还行,任务量大了 call 自己的接口又浪费就个数量级的性能吧
holinhot
2020-01-03 19:12:47 +08:00
@superrichman 自己的服务器,不是构建 cc 攻击器哦。
0x1d12er
2020-01-04 07:27:56 +08:00
@monkeyWie 我刚刚看了下 Docker 的文档好像每个 container 的 port 是映射到 host 的 port 上面的,所以可用的 port 的数量还是一样的吧
https://docs.docker.com/config/containers/container-networking/
https://github.com/mesosphere/marathon/issues/647
0x000007b
2020-01-04 09:16:04 +08:00
@est 哈哈哈哈老哥我也想问
monkeyWie
2020-01-04 12:02:43 +08:00
b00tyhunt3r
2020-01-04 12:13:02 +08:00
@veike 从你们头像分析应该相差不大
xvrzhao
2020-01-05 17:49:42 +08:00
正好前些天用 Go 写了你这个需求,正好可以体现 goroutine 的优势,你可以看下: https://github.com/xvrzhao/site-monitor
xvrzhao
2020-01-05 17:52:19 +08:00
哦 对了 我是单个 url,没有使用 channel,你可以用 channel 做 url 队列供给下面的 goroutine task 消费。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/634706

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX