用apache的HttpClient做了http的代理
获取到响应后,将HttpClient的HttpResponse转换成netty的HttpResponse,
将这个response写到channel,然后在pipeline里添加HttpResponseDecoder即可
HttpClient和Netty的http codec中有很多重名的类,写起来比较麻烦,所以在转换时
用的都是类的全名。
然后简单测试了一下。局域网,100M带宽。后端是用squid搭建的缓存服务器
在/etc/hosts文件里边添加
127.0.0.1 somedomain.com
配置文件etc/jiliu.conf内容为
listen *:8000 hash_algo fnv balance roundrobin server 74_3128 192.168.1.74:3128 server 74_3129 192.168.1.74:3129 server 76_3128 192.168.1.76:3128 server 76_3129 192.168.1.76:3129
webbench -t 10 -c 100 http://somedomain.com:8000/
测试结果比较失望啊
Webbench - Simple Web Benchmark 1.5 Copyright (c) Radim Kolar 1997-2004, GPL Open Source Software. Benchmarking: GET http://somedomain:8000/ 100 clients, running 10 sec. Speed=1896 pages/min, 206063 bytes/sec. Requests: 316 susceed, 0 failed.
每分钟不到1900次(但是看到在74上运行的haproxy也只有2982次就稍感欣慰了),o(∩∩)o...哈哈。
可能是我笔记本配置比较差,而且webbench也在我本机跑的原因。
既然功能已经大概完成了,以后就是优化和重构了。