免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2290 | 回复: 0
打印 上一主题 下一主题

使用nginx负载均衡lucene [复制链接]

论坛徽章:
2
丑牛
日期:2013-09-29 09:47:222015七夕节徽章
日期:2015-08-21 11:06:17
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-11-04 10:59 |只看该作者 |倒序浏览

server a是之前退役的,现存放着一些小些
php
站点和
lucene
搜索,
server a
cpu: Xeon(TM) CPU 2.80GHz (双核*2)
mem:1G*2
disk:scsi 74G *2 (
raid
0)
os:as4
app:nginx+php+fcgi+xcache+mysql+tomcat+postfix
server b为刚退役,没有站点。
server b
cpu: Xeon(TM) CPU 2.80GHz (双核*2)
mem:1G*2
disk: sata 80G *1 (7200)
os:as4
app:nginx+tomcat
—————————————
server a 的搜索每天有几十万PV,平均load 5,更新索引达30,高峰时tomcat会挂掉。
产品结构:
nginx
代理tomcat,jsp提供搜索结果,jsp+mysql记录搜索关键字,
crontab
定时生成索引。
方案一:server a 提供生成索引和
mysql
服务,server b 提供纯web搜索服务,用rsync同步索引
文件

方案二:server a 提供生成索引和mysql服务,server b 和server a使用
负载均衡
一起提供需web搜索服务,用rsync同步索引文件。
一。先设置两台服务器时间是同步的。
二。设置rsync时不需要登录。
用server b 去拉server a的索引
使用crontab+ssh每天自动完全备份mysql数据
三。写更新的
bash
和设置crontab
rsync在第一次是全部同步,以后就是只更新有异动的文件。
目前索引为1G左右,
cache使用三级目录分布小文件,占4G
在server b上
vi rsync_index.sh
#!/bin/bash
#获取lucene索引
/usr/bin/rsync -avlR –delete -e /usr/bin/ssh rsync@221.0.0.1:/lucene/index / >> /opt/shell/rsync_index.log
vi rsync_cache.sh
#!/bin/bash
#获取职位的cache和关键词
/usr/bin/rsync -avlR –delete -e /usr/bin/ssh
[email=rsync@221.0.0.1:/lucene/keyword]rsync@221.0.0.1:/lucene/keyword[/email]
/ >> /opt/shell/rsync_keyword.log
/usr/bin/rsync -avlR –delete -e /usr/bin/ssh
[email=rsync@221.0.0.1:/lucene/cache]rsync@221.0.0.1:/lucene/cache[/email]
/ >> /opt/shell/rsync_cache.log
crontab每小时更新一次。
50 * * * * /bin/sh /opt/shell/rsync_cache.sh > /dev/null 2>&1
52 * * * * /bin/sh /opt/shell/rsync_index.sh > /dev/null 2>&1
四。设置nginx
设置nginx的配置文件,使用方案一
      location / {
           proxy_pass
http://127.0.0.1:8080
;
       location ~* ^.+\.(jpg|jpeg|gif|png|css|js)$ {
   
root
/opt/tomcat/webapps/search;
    access_log   off;
    expires 3d;
    break;
       }
      }           
重启nginx,将域名指向server b.
server b平均load 为5,当rsync更新时load 会达到20,还是不可靠,使用方案二。
     upstream mysvr {
#ip_hash; (据说可以以C类IP将用户固定在某台server,开启后并发大降不能肯定是否有bug)
server 127.0.0.1:8080;
server 221.0.0.1:8080;
     }
server {
      …..
      location / {
           #proxy_pass
http://127.0.0.1:8080
;
    proxy_pass
http://mysvr
;
       location ~* ^.+\.(jpg|jpeg|gif|png|css|js)$ {
    root /opt/tomcat/webapps/search;
    access_log   off;
    expires 3d;
    break;
       }
      }           
      …….
}
重启nginx,将域名指向server b.
server b 和server 平均load 为1~2,更新会到5,还可以接受。


本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/4206/showart_1359089.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP