我需要从一台机器(端口)发送(复制)流量到两台不同的机器(端口)。我还需要处理TCP会话。
一开始我使用的是em-proxy,但它的开销似乎相当大(超过50%的cpu)。然后,我安装了haproxy,并设法重定向流量(而不是复制)。开销是合理的(小于5%)。
问题是我不能在haproxy配置文件中说出以下内容:
Em-proxy的代码非常简单,但在我看来,EventMachine会产生很多开销。
在我深入研究haproxy代码并尝试更改(复制流量)之前,我想知道有没有类似的东西?
谢谢。
发布于 2013-09-26 02:50:08
我专门为此目的创建了一个代理。
https://github.com/chrislusf/teeproxy
使用
./teeProxy -l :8888 -a localhost:9000 -b localhost:9001tee-proxy是反向代理。对于每个传入的请求,它将请求克隆成2个,然后将它们转发到2个服务器。服务器a的结果照常返回,但是服务器b的结果被忽略。
tee-proxy同时处理GET、POST和其他HTTP方法。
发布于 2015-05-08 17:17:03
试试https://github.com/agnoster/duplicator。
我尝试了teeproxy,但在GET之外的其他一些请求中得到了奇怪的结果。
发布于 2018-07-23 18:02:19
我还写了一个反向代理/负载均衡器,用于与Node.js类似的目的(它只是为了好玩,目前还没有准备好生产)。
https://github.com/losnir/ampel
它非常固执己见,目前支持:
使用轮询选择(1:1)
POST的GET使用请求拆分。没有“主”和“影子”的概念--响应的第一个后端将为客户端请求提供服务,然后所有其他响应都将被丢弃。如果有人发现它很有用,那么我可以将其改进为更灵活。
https://stackoverflow.com/questions/7247668
复制相似问题