LVS
hz
接入层 nginx
upstream:ip1,ip2
tc
代码层
nj
一般轮询
不同域名实现负载均衡
<h6>upstream backend{<br><span> </span>server 192.168.1.2:80 weight=5;<br><span> </span>server 192.168.1.3:80 weight=2;<br><span> </span>server 192.168.1.4:80; #默认weight=1<br>}</h6>
URL重写的负载均衡
<h6>upstream searchbox_searchbox-po_server_name {<br> keepalive 8;<br> server 10.23.240.136:8210;<br><span></span> server 10.23.240.149:8210;<br>}<br>server {<br> listen 8080;<br> server_name baijiahao.baidu.com;<br> location / {<br> <span> </span>proxy_pass http://searchbox_searchbox-po_server_name;<br> <span> </span>break;<br> }<br>}</h6>
<h6>server {<br> listen 8080;<br> server_name m.baidu.com mbd.baidu.com;<br> location ~ "/searchbox$" {<br> <span> </span>proxy_pass http://searchbox_searchbox_server_name;<br> }<br>}</h6>
mbd.baidu.com
BGW
BFE
<div>app层nginx</div><div>rewrite</div>
hhvm
ral
1.ral程序配置
配置文件:orp/hhvm/conf/hhvm.hdf
2.local配置
配置目录:orp/conf/ral/services/*
3.接入层ral配置
get_instance_by_service group.redis3-mbubsweb-boxlib.osp.cn -c
<h6>{<br> "services": {<br> "group.redis3-mbubsweb-boxlib.osp.cn": {<br> ...<br> "<font color="#f15a23">idc_map</font>": {<br> "default": {<br> "backup": "gz",<br> "prefer": "tc"<br> },<br> "gz": {<br> "backup": "nj03",<br> "prefer": "gz"<br> },<br> ....<br> },<br> "service_conn_type": 0,<br> <font color="#f15a23">"service_ctimeout": 50,<br> "service_enable_connect_retry": "On",<br> "service_retry": 0,<br> "service_rtimeout": 100,<br> "service_wtimeout": 100</font><br> }<br> }<br>}</h6>
<h6>[...@Service]</h6><h6><font color="#f15a23">Name: group.redis3-mbubsweb-boxlib.osp.cn</font></h6><h6><font color="#f15a23">Rename: Redis_mbubsweb_boxlib</font></h6><h6>Timeout: 500</h6><h6>DefaultConnectTimeOut : 200//ral默认连接超时</h6><h6>DefaultConnectType : SHORT</h6><h6>DefaultPort : 8291</h6><h6>DefaultReadTimeOut : 200</h6><h6>DefaultRetry : 1</h6><h6>DefaultWriteTimeOut : 200</h6>
<h6>ral {<br> <font color="#f15a23">conf_dir = /home/work/orp/conf/ral/</font><br> conf_file = ral.conf<br> passwd_file = ral-passwd.conf<br> <font color="#f15a23">log_dir = /home/work/orp/log/ral/</font><br> log_level = NOTICE<br> ral_log_name = ral.log<br> <font color="#f15a23">worker_log_name = ral-worker.log</font><br> <font color="#f15a23">current_idc = sz</font><br> autoreload_interval = 5<br> max_service_num = 512<br> max_server_num = 4096<br> }</h6>
<h6><span>$req </span><span>= Box_Util_RalRequest::</span><span>simpleHTTP</span><span>(</span><span>'</span>Redis_mbubsweb_boxlib', <span>'get'</span><span>, </span><span>$path</span><span>, </span><span>$params</span><span>);</span></h6><h6><span>$objArrs </span><span>= Box_Util_RalClient::</span><span>callSync</span><span>(</span><span>$req</span><span>);</span></h6>
发送ral请求