zk的负载均衡策略 负载均衡ucmp_memcached


添添呼呼叫中心系统crm采用tomcat容器部署,在高并发的情况下,使用nginx作为负载均衡。具体方案如下:


zk的负载均衡策略 负载均衡ucmp_zk的负载均衡策略_02


1. 安装nginx

yum -y install nginx

修改nginx配置文件 vim /etc/nginx/nginx.cnf


zk的负载均衡策略 负载均衡ucmp_memcached_03


Upstream 模块 配置负载均衡服务器的信息。

upstream依照轮询(默认)方式进行负载,每一个请求按时间顺序逐一分配到不同的后端服务器。假设后端服务器down掉。能自己主动剔除。尽管这样的方式简便、成本低廉。但缺点是:可靠性低和负载分配不均衡。 ip_hash: 每一个请求按訪问ip的hash结果分配。这样每一个訪客固定訪问一个后端服务器,能够解决session的问题。 fair: 按后端服务器的响应时间来分配请求。响应时间短的优先分配。upstream还能够为每一个设备设置状态值,这些状态值的含义分别例如以下:down 表示单前的server临时不參与负载.weight 默觉得1.weight越大,负载的权重就越大。max_fails :同意请求失败的次数默觉得1.当超过最大次数时,返回proxy_next_upstream 模块定义的错误.fail_timeout : max_fails次失败后。暂停的时间。backup: 其他全部的非backup机器down或者忙的时候,请求backup机器。所以这台机器压力会最轻。

在server下配置所有请求信息都转到负载均衡的服务器列表


zk的负载均衡策略 负载均衡ucmp_tomcat_04


Nginx配置缓存静态文件,将项目下的静态文件可以拷贝到nginx的目录下,这样这些静态文件就无需转到后台tomcat服务器下,有效减小后台服务器的请求压力,同时加快前台页面的响应速度。我们配置如下静态文件直接访问下面的目录。检查配置是否成功,打开浏览器,F12 查看静态文件响应的文件头即可。


zk的负载均衡策略 负载均衡ucmp_nginx_05


zk的负载均衡策略 负载均衡ucmp_memcached_06


2. 安装 memcached

安装 : yum -y install memcached

查看配置文件: cat /etc/sysconfig/memcached

启动: /usr/bin/memcached -b -l 127.0.0.1 -p 11211 -m 150 -u root -d

启动参数说明:      -d 选项是启动一个守护进程。      -u root 表示启动memcached的用户为root。      -m 是分配给Memcache使用的内存数量,单位是MB,默认64MB。      -M return error on memory exhausted (rather than removing items)。      -u 是运行Memcache的用户,如果当前为root 的话,需要使用此参数指定用户。      -p 是设置Memcache的TCP监听的端口,最好是1024以上的端口。      -c 选项是最大运行的并发连接数,默认是1024。      -P 是设置保存Memcache的pid文件

3. 修改tomcat配置文件

将需要的jar包拷贝到tomcat的lib下

在tomcat安装目录下的context.xml文件中加入

<Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager" memcachedNodes="n1:47.101.172.108:11211" sticky="false" sessionBackupAsync="false" requestUriIgnorePattern=".*.(ico|png|gif|jpg|jpeg|bmp|css|js|html|htm)$" transcoderFactoryClass="de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory" />

在tomcat安装目录下的server.xml文件中加入:

<Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat1">

不同的tomcat jvmRoute路由不一样,例如tomcat2,tomcat3