为客户开拓的一个绩效系统,回收了java web的开拓方法,利用了一些spring mvc, mybatis之类的框架。对比于oracle ebs的二次开拓,这种开拓越发机动,固然和ebs集成的时候碰着一些问题,可是最后也都办理了。
在陈设的时候,客户要求要能同事遭受一两千人在线,相对付客户公司的总人数(七八万人),应该足够了。ebs的二次都是直接陈设在oracle ebs的application server上面,之前也没怎么存眷过措施的陈设。这次回收tomcat陈设,思量到单个tomcat的最大也就能遭受500阁下的在耳目数,这次回收了一个小的集群陈设,利用了5个tomcat,反向署理利用的nginx。
此刻措施根基不变,压力测试也都能没什么大的问题,趁着有时间,把陈设和设置都整理一下。
筹备
apache tomcat 7.0.55
nginx 1.7.2
redis 2.8.9
设置情况利用三个tomcat, 三台tomcat、redis和nginx都在一台呆板上,为了利便测试和陈设。
大抵的整个设置的架构:
在这个图中,nginx做为反向署理,将客户请求按照权重随机分派给三台tomcat处事器,redis做为三台tomcat的共享session数据处事器。
筹划
redis
localhost:6379
nginx
localhost:80
tomcat
localhost:8081
localhost:8082
localhost:8083
设置
tomcat
修改tomcat文件夹中conf/context.xml文件,在context节点下添加如下设置:
<Valve className="com.radiadesign.catalina.session.RedisSessionHandlerValve" />
<Manager className="com.radiadesign.catalina.session.RedisSessionManager"
host="localhost"
port="6379"
database="0"
maxInactiveInterval="60" />
conf/server.xml文件中的端口按照筹划依次修改。
别的要在tomcat的lib文件夹下别离添加三个jar文件,这个处所jar文件的版本有大概会有斗嘴,设置的时候需要多实验。我这里的版本如下,是验证过可以利用的,通过maven的库都可以下载到。
tomcat-redis-session-manager-1.2-tomcat-7.jar
jedis-2.2.0.jar
commons-pool-1.6.jar
nginx
修改nginx文件目中的conf/nginx.conf文件为:
#user nobody;
worker_processes 1;
error_log logs/error.log;
pid logs/nginx.pid;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log logs/access.log main;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
#gzip on;
upstream localhost {
server localhost:8081 weight=1;
server localhost:8082 weight=2;
server localhost:8083 weight=3;
}
server {
listen 80;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root html;
index index.html index.htm;
proxy_pass http://localhost;
proxy_set_header X-Real-IP $remote_addr;
client_max_body_size 100m;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
redis的设置就直接利用默认设置,因为只是测试用,和tomcat一样没有做参数优化设置。
运行
别离启动redis、nginx和三台tomcat。
测试
在三个tomcat的webapps/ROOT目次下,,别离添加session.jsp