|  |      1shoaly      2020-01-03 11:57:12 +08:00 golang 协程做这个玩意 好像正好合适, 没毛病 状态即可 | 
|      3watsy0007      2020-01-03 12:32:05 +08:00 python 异步吗? | 
|  |      4hitsmaxft      2020-01-03 13:30:45 +08:00 取决于你能开多少个 tcp 链接。 用纯异步执行模式 go routine,利用 channel,按 cpu 核数开几个队列异步消费,只检查 headline 不访问 body。 剩下的,就取决于你的网卡和 cpu 瓶颈了。 想高并发,首先一点是去阻塞 | 
|  |      5hitsmaxft      2020-01-03 13:32:47 +08:00 身边有 go 的简单代理服务,8core 的生产机器, 单机 1 万 qps,只检查头部应该更高。 | 
|  |      6encro      2020-01-03 14:00:15 +08:00 Python httpx 库 https://github.com/encode/httpx | 
|  |      7holinhot OP @encro python 真能在这个场景中发挥长处吗? 好像 python 多线程是伪的吧。。压榨 cpu python 好像不行。 | 
|  |      10monkeyWie      2020-01-03 16:32:28 +08:00 考虑到客户端每个 tcp 连接要占用一个端口,所以单机同时最大应该在几 W 左右,当然前提是带宽够用,go 启几万个协程还是没什么压力的 | 
|  |      11monkeyWie      2020-01-03 16:36:56 +08:00 不过单机下用 docker 多跑几个容器,可以突破端口使用量的限制 | 
|  |      12encro      2020-01-03 16:45:43 +08:00 | 
|  |      13opengps      2020-01-03 16:49:05 +08:00 考虑这个问题更多因素在于网络延迟,程序只要做好并发控制就可以了 | 
|  |      14encro      2020-01-03 16:49:23 +08:00 fastapi 这 python 库, 因为用了不同的异步模型, 性能比 flask 原来提升了一个数量级。 https://www.techempower.com/benchmarks/#section=test&runid=7464e520-0dc2-473d-bd34-dbdfd7e85911&hw=ph&test=query&l=zijzen-7 | 
|  |      15veike      2020-01-03 16:55:25 +08:00 很好奇你要做什么,难道要和我的想法一样吗? | 
|  |      16tourist2018      2020-01-03 16:57:09 +08:00 goroutine 并发去请求你说的那些网址就行了 至于能开多少 限制的应该不是语言这边 限制的应该是 tcp 连接你的机器一次能建立多少 如果只完成你说的任务 一秒探测网址的 status 最简单的 开你说的网址个 goroutine select 限制一秒时间 能返回正常值得说明就是符合的网址 超时的就是有问题的。。。 | 
|  |      18est      2020-01-03 17:05:18 +08:00  2 就没有一个人哪怕是提一下 gevent ? | 
|      200NF09LJPS51k57uH      2020-01-03 17:21:55 +08:00 blackbox_exporter 了解一下。。。现成的东西。。[]( https://github.com/prometheus/blackbox_exporter) | 
|  |      21tourist2018      2020-01-03 17:28:26 +08:00 @tourist2018 golang 本身 client 可以限制超时时间 那就不用 timer 了 | 
|  |      22sagaxu      2020-01-03 18:11:57 +08:00 via Android @monkeyWie 不管你 nat 之后有几个虚拟 IP,对方服务器看到的 IP 只有出口 IP 这一个 | 
|      24superrichman      2020-01-03 18:22:47 +08:00 via iPhone  1 劝你别这么做,qps 太高分分钟被运营商屏蔽,第二天就上新闻:xxx 涉嫌对 xxx xxx 台服务器进行大规模攻击,已被拘留。 /狗头🐶 | 
|  |      29liuxu      2020-01-03 19:03:31 +08:00 @superrichman 10K CC,不是买的发包机不封才怪 | 
|  |      30holinhot OP @phantomzz 还有 https://github.com/yanc0/beeping 这个我也看了,这两个如果任务量不大还行,任务量大了 call 自己的接口又浪费就个数量级的性能吧 | 
|  |      31holinhot OP @superrichman 自己的服务器,不是构建 cc 攻击器哦。 | 
|      320x1d12er      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 | 
|  |      34monkeyWie      2020-01-04 12:02:43 +08:00 | 
|      35b00tyhunt3r      2020-01-04 12:13:02 +08:00 via iPhone @veike 从你们头像分析应该相差不大 | 
|  |      36xvrzhao      2020-01-05 17:49:42 +08:00 正好前些天用 Go 写了你这个需求,正好可以体现 goroutine 的优势,你可以看下: https://github.com/xvrzhao/site-monitor | 
|  |      37xvrzhao      2020-01-05 17:52:19 +08:00 哦 对了 我是单个 url,没有使用 channel,你可以用 channel 做 url 队列供给下面的 goroutine task 消费。 |