Repcached 用来实现 Memcached 复制功能的一个工具。它所构建的主从方案是一个单主单从的方案,不支持多主多从。 但是,它的特点是,主从两个节点可以互相读写,从而可以达到互相同步的效果。
CATALINA_BASE=/usr/local/tomcat CATALINA_HOME=/usr/local/tomcat export CATALINA_BASE CATALINA_HOME
# ./startup.sh
cp /usr/local/tomcat /usr/local/tomcat2
gedit /etc/profile
#tomcat CATALINA_BASE=/usr/local/tomcat CATALINA_HOME=/usr/local/tomcat export CATALINA_BASE CATALINA_HOME #tomcat2 CATALINA_2_BASE=/usr/local/tomcat2 CATALINA_2_HOME=/usr/local/tomcat2 export CATALINA_2_BASE CATALINA_2_HOME
TOMCAT_HOME=/usr/local/tomcat export TOMCAT_HOME TOMCAT_2_HOME=/usr/local/tomcat2 export TOMCAT_2_HOME1.8最后一步我们需要修改tomcat2里面的配置文件。首先我们修改tomcat2/bin下面的startup.sh和shutdown.sh 添加以下内容
export JAVA_HOME=/usr/local/jdk export PATH=.:$HADOOP_HOME/bin:$ZOOKEEPER_HOME/bin:$HBASE_HOME/bin:$JAVA_HOME/bin:$PATH export CATALINA_HOME=$CATALINA_2_HOME export CATALINA_BASE=$CATALINA_2_BASE1.9然后进去tomcat2/server.xml中修改以下几个地方
<Server port="8005" shutdown="SHUTDOWN"> <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" /> <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
<Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat2">把8005->8006,8080->8081,8009->8010就好了(具体端口由自己定就行了),增加: jvmRoute="tomcat2",对tomcat/server.xml只需要增加以下jvmRoute="tomcat"
1.10然后进入tomcat1/bin,tomcat2/bin下面执行
./startup.sh
好了,nice1.11用浏览器进去localhost:8080和localhost:8081看看把,两个tomcat就已经搭建成功了
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
NGINX负载的几种方式
nginx 的 upstream目前支持 4 种方式的分配
1)、轮询(默认)
每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。
2)、weight
指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。
2)、ip_hash
每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。
3)、fair(第三方)
按后端服务器的响应时间来分配请求,响应时间短的优先分配。
4)、url_hash(第三方)'
#运行nginx所在的用户名和用户组 #user www www; #启动进程数 worker_processes 8; #全局错误日志及PID文件 error_log /usr/local/nginx/logs/nginx_error.log crit; pid /usr/local/nginx/nginx.pid; #Specifies the value for maximum file descriptors that can be opened by this process. worker_rlimit_nofile 65535; #工作模式及连接数上限 events { use epoll; worker_connections 65535; } #设定http服务器,利用它的反向代理功能提供负载均衡支持 http { #设定mime类型 include mime.types; default_type application/octet-stream; include /usr/local/nginx/conf/proxy.conf; #charset gb2312; #设定请求缓冲 server_names_hash_bucket_size 128; client_header_buffer_size 32k; large_client_header_buffers 4 32k; #client_max_body_size 8m; sendfile on; tcp_nopush on; keepalive_timeout 60; tcp_nodelay on; # fastcgi_connect_timeout 300; # fastcgi_send_timeout 300; # fastcgi_read_timeout 300; # fastcgi_buffer_size 64k; # fastcgi_buffers 4 64k; # fastcgi_busy_buffers_size 128k; # fastcgi_temp_file_write_size 128k; # gzip on; # gzip_min_length 1k; # gzip_buffers 4 16k; # gzip_http_version 1.0; # gzip_comp_level 2; # gzip_types text/plain application/x-javascript text/css application/xml; # gzip_vary on; #limit_zone crawler $binary_remote_addr 10m; upstream tomcat{ # 负载均衡站点的名称为tomcat,可以自己取 # ip_hash; # 可选,根据来源IP方式选择web服务器,省略的话按默认的轮循方式选择web服务器 server 127.0.0.1:8080; # web服务器的IP地址及tomcat发布端口 server 127.0.0.1:8081; } server { listen 80; # 站点侦听端口80 server_name localhost; # 站点名称 location / { root html; index index.html index.htm; proxy_pass http://tomcat; # 负载均衡指向的发布服务tomcat } } }
2) javolution-5.5.1.jar
3) kryo-1.03.jar
4) kryo-serializers-0.10.jar
5) memcached-session-manager-1.6.5.jar
6) memcached-session-manager-tc7-1.6.5
7) minlog-1.2.jar
8) msm-kryo-serializer-1.6.3.jar
9) reflectasm-1.01.jar
10)spymemcached-2.10.2.jar
2)Tomcat6和Tomcat7使用不同msm支持包:memcached-session-manager-tc6-1.6.5.jar和memcached-session-manager-tc7-1.6.5.jar,只可选一,否则启动报错。
3)msm源码中的lib包版本太低:spymemcached需要使用2.10.2,否则启动tomcat报错:java.lang.NoSuchMethodError:net.spy.memcached.MemcachedClient.set(Ljava/lang/String;ILjava/lang/Object;)Lnet/spy/memcached/internal/OperationFuture;atde.javakaffee.web.msm.BackupSessionTask.storeSessionInMemcached(BackupSessionTask.java:227)
4)kryo-serializers需要使用0.10版本,否则报错:
Caused by:java.lang.ClassNotFoundException: de.javakaffee.kryoserializers.DateSerializer
打开配置文件,在<Context>...</Context>节点中添加如下内容:
<Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager" memcachedNodes="n1:127.0.0.1:11211" requestUriIgnorePattern=".*\.(png|gif|jpg|css|js|ico|jpeg|htm|html)$" sessionBackupAsync="false" sessionBackupTimeout="100" copyCollectionsForSerialization="false" transcoderFactoryClass="de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory"/>