文件名称:statsd-proxy:用于etsystatsd的快速一致哈希代理
文件大小:31KB
文件格式:ZIP
更新时间:2024-06-12 07:55:00
C
统计代理 代理。 为什么 在nodejs中带有一个代理,我们正在单台服务器上运行它,并通过udp端口生成statsd集群。 但是我们发现此nodejs代理丢失数据包,有时高达30%到40%! CPU处于空闲状态,但数据包丢失。 在我们的例子中,一个api调用发出一个statsd请求,也许单个udp套接字太忙了。 我们尝试在原始的nodejs代理上使用SO_REUSEPORT ,这使我们能够在单个端口上绑定多个udp套接字,但是nodejs(或libuv)已禁用此选项,而golang则没有方法setsockopt() 。 因此,我们在C语言中做到了。 特征 零依赖性。 非常非常快。 多线程。 重用端口支持。 数据包聚合。 局限性 仅在Linux 3.9+(选项SO_REUSEPORT )上可用 仅支持udp服务器和udp后端。 要求 Linux 3.9以上版本。 建造 $ .
【文件预览】:
statsd-proxy-master
----package.json(535B)
----Dockerfile(214B)
----autogen.sh(27B)
----Makefile.am(332B)
----example.cfg(263B)
----src()
--------md5.h(732B)
--------config.h(806B)
--------proxy.h(1KB)
--------event_epoll.c(4KB)
--------ctx.c(5KB)
--------buf.h(1KB)
--------ketama.h(1KB)
--------cfg.c(2KB)
--------parser.h(751B)
--------ctx.h(2KB)
--------proxy.c(4KB)
--------log.c(4KB)
--------statsd-proxy.c(3KB)
--------md5.c(9KB)
--------event_timer.c(5KB)
--------config.c(6KB)
--------log.h(2KB)
--------cfg.h(1KB)
--------buf.c(4KB)
--------event.c(5KB)
--------ketama.c(4KB)
--------event.h(3KB)
--------parser.c(1KB)
----.clang-format(2KB)
----lint.py(2KB)
----.gitignore(212B)
----README.md(1KB)
----configure.ac(802B)