tomcat集群

合集下载

负载均衡与集群

负载均衡与集群

负载均衡与集群一:软件集群1:WebLogic集群首先要对Weblogic的内部有一个大概的了解,什么是 Domain,Server,Machine,Cluster。

DomainDomain 是WebLogic Server 实例的基本管理单元。

所谓Domain就是,由配置为Admin Server 的WebLogic Server 实例管理的逻辑单元,这个单元是有所有相关资源的集合。

ServerServer 是一个相对独立的,为实现某些特定功能而结合在一起的单元。

Machine Machine 是可以对应到服务器所在的物理硬件,可以是Unix 或non-Unix 类型,可以用来远程管理和监控,用于加强fail over 管理。

ClusterCluster 也是一个逻辑概念,用来分组用途相同的服务器实例,一个域中可以有多个集群。

集群用来实现负载均衡和容错。

Domain and Server 的关系一个Domain 可以包含一个或多个WebLogic Server 实例,甚至是Server 集群。

一个 Domain 中有一个且只能有一个Server 担任管理Server 的功能,其它的Server 具体实现一个特定的逻辑功能。

配置集群应用的必要条件a) 集群中的所有Server 必须位于同一网段,并且必须是IP 广播(UDP)可到达的 b) 集群中的所有Server 必须使用相同的版本,包括Service Packc) 集群中的Server 必须使用永久的静态IP 地址。

动态IP 地址分配不能用于集群环境。

如果服务器位于防火墙后面,而客户机位于防火墙外面,那么服务器必须有公共的静态IP 地址,只有这样,客户端才能访问服务器d) 要以CLUSTER 方式运行,必须有包含CLUSTER 许可的LICENSE 才行(从Oracle 网站上下载的最新版本已经包含了此许可,可进行Cluster 配置)1.1 WebLogic 单机集群 1.1.1 简介单机集群这种架构将所有的 Web 应用以及相关的服务应用全部置于集群中的单一WLS(WebLogic Server)实例中,这种架构的优势在于:易于管理灵活的负载平衡机制更强的安全控制1.1.2 配置安装 WebLogic 11g(10.3.2)在实施集群之前都必须有个规划,比如以下例子:上述具体的安装方法见手册:Microsoft Word 文档WebLogic集群安装.docx单服务器版本。

LVS+NGINX+TOMCAT 集群实施操作记录

LVS+NGINX+TOMCAT 集群实施操作记录

IP:Eth0:192.168.100.115Eth1:192.168.100.215Vi /etc/init.d./lvs#!/bin/sh## lvs Start lvs## chkconfig: 2345 08 92# description: Starts, stops and saves lvs#SNS_VIP=192.168.100.215SNS_RIP1=192.168.100.114SNS_RIP2=192.168.100.113. /etc/rc.d/init.d/functions#logger $0 called with $1retval=0start(){#set squid vip/sbin/ipvsadm --set 30 5 60#/sbin/ifconfig eth0:0 $SNS_VIP broadcast $SNS_VIP netmask 255.255.255.255 broadcast $SNS_VIP up#/sbin/route add -host $SNS_VIP dev eth0:0/sbin/ipvsadm -A -t $SNS_VIP:80 -s rr/sbin/ipvsadm -a -t $SNS_VIP:80 -r $SNS_RIP1 -g/sbin/ipvsadm -a -t $SNS_VIP:80 -r $SNS_RIP2 -gtouch /var/lock/subsys/ipvsadm > /dev/null 2 >&1echo "ipvsadm started"}stop(){/sbin/ipvsadm -C/sbin/ipvsadm -Z#ifconfig eth0:0 down#route del $SNS_VIPrm -rf /var/lock/subsys/ipvsadm > /dev/null 2 >&1echo "ipvsadm stoped"}status(){if [ ! -e /var/lock/subsys/ipvsadm ];thenecho "ipvsadm stoped"exit 1elseecho "ipvsadm OK"fi}case "$1" instart)start;;stop)stop;;status)status;;restart)stopstart;;*)echo $"Usage: $0 {start|stop|status}"retval=1esacexit $retvalkeepalvivedtar xf keepalived-1.2.7.tar.gzcd keepalived-1.2.7./configure --prefix=/ --mandir=/usr/local/share/man/ --with-kernel-dir=/usr/src/kernels/2.6.32-279.el6.x86_64Makemake installcd /etc/keepalived/mv keepalived.conf keepalived.conf.default chkconfig --add keepalivedchkconfig keepalived onvim /etc/keepalived/keepalived.conf! Configuration File for keepalivedglobal_defs {notification_email {root@localhost}notification_email_from root@localhost smtp_server 127.0.0.1smtp_connect_timeout 30router_id Director1}#VRRP(虚拟路由冗余协议)实例配置vrrp_instance VI_1 {state MASTERinterface eth0virtual_router_id 51priority 150advert_int 1authentication {auth_type PASSauth_pass 1111}virtual_ipaddress {192.168.122.254/24 eth1}}#LVS配置virtual_server 192.168.100.215 80 {delay_loop 3lb_algo rrlb_kind DRnat_mask 255.255.255.0# persistence_timeout 50protocol TCPreal_server 192.168.100.113 80 {weight 1TCP_CHECK {connect_port 80connect_timeout 10nb_get_retry 3delay_before_retry 3}}real_server 192.168.100.114 80 {weight 1TCP_CHECK {connect_port 80connect_timeout 10nb_get_retry 3delay_before_retry 3}}}}LVS-realserverIp 192.168.100.113Ip 192.168.100.114Vi /etc/init.d/rsup#!/bin/bashVIP=192.168.100.215ifconfig lo:0 $VIP broadcast $VIP netmask 255.255.255.255 up #route add –host $VIP dev lo:0echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignoreecho "2" >/proc/sys/net/ipv4/conf/lo/arp_announceecho "1" >/proc/sys/net/ipv4/conf/all/arp_ignoreecho "2" >/proc/sys/net/ipv4/conf/all/arp_announce#sysctl –pIp 192.168.100.122(nfs)Ip 192.168.100.113Ip 192.168.100.114#安装zlibtar xzvf zlib-1.2.3.tar.gzcd zlib-1.2.3./configuremake && make install#安装pcretar zxvf pcre-7.9.tar.gzcd pcre-7.9./configure --prefix=/usr/local/pcremake && make installwget /download/nginx_mod_h264_streaming-2.2.7.tar.gztar -zxvf nginx_mod_h264_streaming-2.2.7.tar.gzunzip nginx_upstream_check_module-master.zipmv ./nginx_upstream_check_module-master /root/healthtar -xvf nginx-1.4.1.tar.gz -C /usr/src/useradd nginxcd /usr/src/nginx-1.4.1patch -p1 < /root/health/check_1.2.6+.patch./configure --user=nginx --group=nginx --with-http_stub_status_module --with-http_ssl_module --with-http_gzip_static_module --with-http_flv_module --add-module=../nginx_mod_h264_streaming-2.2.7 --with-pcre=/softw are/pcre-7.9 --with-zlib=/software/zlib-1.2.3 --prefix=/usr/local/nginx --add-module=/root/healthmake && make install/usr/local/nginx/sbin/nginx开机自动启动vi /etc/init.d/nginx#!/bin/bash## nginx - this script starts and stops the nginx daemin# chkconfig: - 85 15# description: Nginx is an HTTP(S) server, HTTP(S) reverse \ # proxy and IMAP/POP3 proxy server# processname: nginx# config: /usr/local/nginx/conf/nginx.conf# pidfile: /usr/local/nginx/logs/nginx.pid# Source function library.. /etc/rc.d/init.d/functions# Source networking configuration.. /etc/sysconfig/network# Check that networking is up.[ "$NETWORKING" = "no" ] && exit 0nginx="/usr/local/nginx/sbin/nginx"prog=$(basename $nginx)NGINX_CONF_FILE="/usr/local/nginx/conf/nginx.conf"lockfile=/var/lock/subsys/nginxstart() {[ -x $nginx ] || exit 5[ -f $NGINX_CONF_FILE ] || exit 6echo -n $"Starting $prog: "daemon $nginx -c $NGINX_CONF_FILEretval=$?echo[ $retval -eq 0 ] && touch $lockfilereturn $retval}stop() {echo -n $"Stopping $prog: "killproc $prog -QUITretval=$?echo[ $retval -eq 0 ] && rm -f $lockfilereturn $retval}restart() {configtest || return $?stopstart}reload() {configtest || return $?echo -n $"Reloading $prog: "killproc $nginx -HUPRETVAL=$?echo}force_reload() {restart}configtest() {$nginx -t -c $NGINX_CONF_FILE }rh_status() {status $prog}rh_status_q() {rh_status >/dev/null 2>&1 }case "$1" instart)rh_status_q && exit 0$1;;stop)rh_status_q || exit 0$1;;restart|configtest)$1;;reload)rh_status_q || exit 7$1;;force-reload)force_reload;;status)rh_status;;condrestart|try-restart)rh_status_q || exit 0;;*)echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest}"exit 2esac############################################################################## 改权限chmod 755 /etc/init.d/nginxchkconfig nginx onchkconfig --list nginxnginx 0:off 1:off 2:on 3:on 4:on 5:on 6:offservice nginx startservice nginx stopservice nginx restartservice nginx reload/etc/init.d/nginx start/etc/init.d/nginx stop/etc/init.d/nginx restart/etc/init.d/nginx reloadNginx 配置文件vi /usr/local/nginx/conf/nginx.conf#user nginx nginx;worker_processes 12;error_log /usr/local/nginx/logs/error.log crit;pid /usr/local/nginx/logs/nginx.pid;worker_rlimit_nofile 65535;events{use epoll;worker_connections 204800;}http{include mime.types;default_type application/octet-stream;charset utf-8;server_names_hash_bucket_size 128;client_header_buffer_size 2k;large_client_header_buffers 4 4k;client_max_body_size 8m;sendfile on;tcp_nopush on;keepalive_timeout 60;fastcgi_cache_path /usr/local/nginx/fastcgi_temp levels=1:2keys_zone=TEST:10minactive=5m;fastcgi_connect_timeout 300;fastcgi_send_timeout 300;fastcgi_read_timeout 300;fastcgi_buffer_size 1638;fastcgi_buffers 16 16k;fastcgi_busy_buffers_size 16k;fastcgi_temp_file_write_size 16k;fastcgi_cache TEST;fastcgi_cache_valid 200 302 1h;fastcgi_cache_valid 301 1d;fastcgi_cache_valid any 1m;fastcgi_cache_min_uses 1;fastcgi_cache_use_stale error timeout invalid_header http_500;open_file_cache max=204800 inactive=20s;open_file_cache_min_uses 1;open_file_cache_valid 30s;tcp_nodelay on;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;upstream nginx_server {ip_hash;server 192.168.100.122:80;}upstream web_server {ip_hash;server 192.168.100.131:9001;server 192.168.100.132:9001;server 192.168.100.133:9001;server 192.168.100.134:9001;check interval=3000 rise=2 fall=5 timeout=1000;}upstream napi_server {ip_hash;server 192.168.100.131:9002;server 192.168.100.132:9002;server 192.168.100.133:9002;server 192.168.100.134:9002;server 192.168.100.131:9003;server 192.168.100.132:9003;server 192.168.100.133:9003;server 192.168.100.134:9003;server 192.168.100.131:9004;server 192.168.100.132:9004;server 192.168.100.133:9004;server 192.168.100.134:9004;check interval=3000 rise=2 fall=5 timeout=1000;}upstream oapi_server {ip_hash;server 192.168.100.131:9005;server 192.168.100.132:9005;server 192.168.100.133:9005;server 192.168.100.134:9005;server 192.168.100.131:9006;server 192.168.100.132:9006;server 192.168.100.133:9006;server 192.168.100.134:9006;check interval=3000 rise=2 fall=5 timeout=1000;}server {listen 80;server_name localhost;location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|html|mp3|wma|wmv)${root /usr/wodm/;proxy_pass http://nginx_server;}location ~ .*\.(js|css)?${expires 1h;}location /NginxStatus{stub_status on;access_log on;auth_basic "NginxStatus";#auth_basic_user_file conf/htpasswd;}location /nstatus {check_status;access_log off;}error_page 500 502 503 504 /50x.html;location = /50x.html {root html;}}log_format access '$remote_addr - $remote_user [$time_local] "$request" ''$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" $http_x_forwarded_for';access_log /usr/local/nginx/logs/access.log access;include /usr/local/nginx/conf/vhost/*.conf;}Nginx(nfs)Nginx.conf#user nginx nginx;worker_processes 16;#worker_cpu_affinity 00000001 00000010 00000100 00001000 00010000 00100000 01000000 10000000;error_log /usr/local/nginx/logs/error.log crit;pid /usr/local/nginx/logs/nginx.pid;worker_rlimit_nofile 204800;events{use epoll;worker_connections 204800;}http{include mime.types;default_type application/octet-stream;charset utf-8;server_names_hash_bucket_size 128;client_header_buffer_size 2k;large_client_header_buffers 4 4k;client_max_body_size 8m;sendfile on;tcp_nopush on;keepalive_timeout 60;fastcgi_cache_path /usr/local/nginx/fastcgi_cache levels=1:2keys_zone=TEST:10minactive=5m;fastcgi_connect_timeout 300;fastcgi_send_timeout 300;fastcgi_read_timeout 300;fastcgi_buffer_size 1638;fastcgi_buffers 16 16k;fastcgi_busy_buffers_size 16k;fastcgi_temp_file_write_size 16k;fastcgi_cache TEST;fastcgi_cache_valid 200 302 1h;fastcgi_cache_valid 301 1d;fastcgi_cache_valid any 1m;fastcgi_cache_min_uses 1;fastcgi_cache_use_stale error timeout invalid_header http_500;open_file_cache max=204800 inactive=20s;open_file_cache_min_uses 1;open_file_cache_valid 30s;tcp_nodelay on;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;server{listen 80;server_name localhost;index index.php index.htm;root /usr/wodm/;location /status{stub_status on;}location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|html|mp3|wma|wmv)${expires 30d;}}log_format access '$remote_addr - $remote_user [$time_local] "$request" ''$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" $http_x_forwarded_for';access_log /usr/local/nginx/logs/access.log access;标准字符集vi /etc/sysconfig/i18nLANG="zh_CN.UTF-8" SYSFONT="latarcyrheb-sun16" SUPPORTED="zh_CN.UTF-8:zh_CN:zh"LANG="zh_CN.GB18030"SUPPORTED="zh_CN.GB18030:zh_CN:zh:en_US.UTF-8:en_US:en"打开文件数vi /etc/security/limits.conf* soft nofile 65535* hard nofile 65535vi /etc/pam.d/loginsession required /lib/security/pam_limits.songinx 日志按天分割vi nginx_log.sh#!/bin/bashlogs_path="/usr/local/nginx/logs/"pid_path="/usr/local/nginx/nginx.pid"mv ${logs_path}access.log ${logs_path}access_$(date -d "yesterday" +"%Y%m%d").logkill -USR1 `cat ${pid_path}`chmod 755 nginx_log.shcrontab –e0 0 * * * bash /usr/local/nginx/nginx_log.shTomcat memcachetar xf libevent-1.4.11-stable.tar.gzcd libevent-1.4.11-stable./configuremakemake installcd ../tar xf memcached-1.4.5.tar.gzcd memcached-1.4.5./configuremakemake install/usr/local/bin/memcached -d -m 10 -u root -l 192.168.1.113 -p 11211 -c 1024 -P /tmp/memcached.pidMemcache+tomcat 共享session后续计划尚未配置。

tomcat面试题

tomcat面试题

tomcat面试题Tomcat是一个开源的Servlet容器,用于实现Java Servlet和JavaServer Pages(JSP)的运行环境。

它是应用服务器中最受欢迎的选择之一,广泛应用于企业级web应用的开发与部署。

对于准备面试Tomcat相关职位的求职者来说,掌握Tomcat的原理、架构以及常见问题的解决方法是至关重要的。

本文将介绍一些常见的Tomcat面试题,并对其进行详细解答。

1. 请简要介绍一下Tomcat的架构。

Tomcat的架构可以分为三个主要的组件:Connector、Container和Servlet。

Connector组件负责处理网络连接,对客户端的请求进行接收和回应。

它通过使用协议(如HTTP、HTTPS等)来与客户端进行通信。

Container组件是Servlet容器,负责管理和执行Servlet的生命周期。

它包含了Servlet的加载、实例化、初始化、调用以及销毁等操作。

Tomcat中最重要的容器是Engine、Host和Context。

Servlet是Java编写的服务器端组件,用于处理客户端的请求。

Tomcat通过Servlet实现了动态的网页生成和处理。

2. 如何在Tomcat中配置SSL证书以实现HTTPS连接?要在Tomcat中实现HTTPS连接,需要进行以下配置:第一步,生成自签名SSL证书。

可以使用Java提供的keytool工具来生成证书文件。

第二步,将生成的证书文件配置到Tomcat的server.xml文件中。

找到Connector标签,增加以下属性:keystoreFile、keystorePass、protocol和SSLEnabled。

第三步,修改web.xml文件,将待保护的资源设置为需要HTTPS连接访问。

找到安全约束(security-constraint)标签,在其中设置<transport-guarantee>标签为CONFIDENTIAL。

Tomcat集群与负载均衡

Tomcat集群与负载均衡

Tomcat集群与负载均衡(转载)在单一的服务器上执行WEB应用程序有一些重大的问题,当网站成功建成并开始接受大量请求时,单一服务器终究无法满足需要处理的负荷量,所以就有点显得有点力不从心了。

另外一个常见的问题是会产生单点故障,如果该服务器坏掉,那么网站就立刻无法运作了。

不论是因为要有较佳的扩充性还是容错能力,我们都会想在一台以上的服务器计算机上执行WEB应用程序。

所以,这时候我们就需要用到集群这一门技术了。

在进入集群系统架构探讨之前,先定义一些专门术语:1. 集群(Cluster):是一组独立的计算机系统构成一个松耦合的多处理器系统,它们之间通过网络实现进程间的通信。

应用程序可以通过网络共享内存进行消息传送,实现分布式计算机。

2. 负载均衡(Load Balance):先得从集群讲起,集群就是一组连在一起的计算机,从外部看它是一个系统,各节点可以是不同的操作系统或不同硬件构成的计算机。

如一个提供Web服务的集群,对外界来看是一个大Web服务器。

不过集群的节点也可以单独提供服务。

3. 特点:在现有网络结构之上,负载均衡提供了一种廉价有效的方法扩展服务器带宽和增加吞吐量,加强网络数据处理能力,提高网络的灵活性和可用性。

集群系统(Cluster)主要解决下面几个问题:高可靠性(HA):利用集群管理软件,当主服务器故障时,备份服务器能够自动接管主服务器的工作,并及时切换过去,以实现对用户的不间断服务。

高性能计算(HP):即充分利用集群中的每一台计算机的资源,实现复杂运算的并行处理,通常用于科学计算领域,比如基因分析,化学分析等。

负载平衡:即把负载压力根据某种算法合理分配到集群中的每一台计算机上,以减轻主服务器的压力,降低对主服务器的硬件和软件要求。

目前比较常用的负载均衡技术主要有:1. 基于DNS的负载均衡通过DNS服务中的随机名字解析来实现负载均衡,在DNS服务器中,可以为多个不同的地址配置同一个名字,而最终查询这个名字的客户机将在解析这个名字时得到其中一个地址。

计算机面试题

计算机面试题

计算机面试题计算机面试题(精选3篇)在学习、工作中,我们都离不开试题,试题是命题者根据测试目标和测试事项编写出来的。

你所了解的试题是什么样的呢?下面是帮大家整理的计算机面试题大全,仅供参考,大家一起来看看吧。

计算机面试题篇1一、什么是Tomcat?Tomcat简单的说就是一个运行JAVA的网络服务器,底层是Socket的一个程序,它也是JSP和Serlvet的一个容器。

二、tomcat结构目录有哪些?①bin:启动和关闭tomcat的bat文件。

②conf:配置文件。

③server.xml该文件用于配置server相关的信息,比如tomcat启动的端口号,配置主机(Host)。

④web.xml文件配置与web应用(web应用相当于一个web站点)⑤tomcat—user。

xml配置用户名密码和相关权限。

⑥lib:该目录放置运行tomcat运行需要的jar包。

⑦logs:存放日志,当我们需要查看日志的时候,可以查询信息。

⑧webapps:放置我们的web应用。

⑨work工作目录:该目录用于存放jsp被访问后生成对应的server文件和.class文件。

三、如何配置Tomcat虚拟目录?1、在server.xml中的节点下添加如下代码。

path表示的是访问时输入的web项目名,docBase表示的是站点目录的绝对路径。

2、进入到confCatalinalocalhost文件下,创建一个xml文件,该文件的名字就是站点的名字。

四、Tomcat体系结构是怎样的?浏览器—tomcat server—service—connector—engine(引擎)—host(主机)—web应用。

五、Web请求在Tomcat请求中的请求流程是怎么样的?①浏览器输入URL地址;②查询本机hosts文件寻找IP;③查询DNS服务器寻找IP;④向该IP发送Http请求;⑤Tomcat容器解析主机名;⑥Tomcat容器解析Web应用;⑦Tomcat容器解析资源名称;⑧Tomcat容器获取资源;⑨Tomcat响应浏览器。

apache2.2.16+mod_jk.1.2.30+tomcat7.0.2集群session复制

apache2.2.16+mod_jk.1.2.30+tomcat7.0.2集群session复制

Apache+tomcat集群+session复制作者:吴钢奇时间:2010/09/23MSN:w7374520@目标:在服务器上搭建1个apache+4个tomcat应用,tomcat之间实现session复制。

Tomcat解析所有的网页,apache此刻的作用就是做代理。

参考了很多网上好文档,非常感谢前人无私奉献,谢谢!1、环境硬件:一个四核3.0CPU,4G内存,200GSATA硬盘系统:Redhat AS 5.3源码包下载:1、Httpd下载/apache//httpd/httpd-2.2.16.tar.gz2、Tomcat下载//tomcat/tomcat-7/v7.0.2-beta/bin/apache-tomcat-7.0.2.tar.gz3、mod_jk 下载地址:/dist/tomcat/tomcat-connectors/jk/source/jk-1.2.30/tomcat-connectors-1.2.30-src.tar.gz2、安装apache[root@adman ~]# cd /usr/local/src/ #进入源码包下载目录,这个可以随便定[root@adman src]# tar zxvf httpd-2.2.16.tar.gz #解压缩[root@adman src]# cd httpd-2.2.16 #进入解压目录[root@adman httpd-2.2.16]# ./configure --prefix=/usr/local/apache2 \> --enable-cache \ #configure参数根据自己的需要添加> --enable-mem-cache \ —可以使用help获得相关参数> --with-mpm=prefork \> --enable-so \> --enable-rewrite \> --enable-ssl[root@adman httpd-2.2.16]# make #编译[root@adman httpd-2.2.16]# make install #安装[root@adman httpd-2.2.16]# cd /usr/local/apache2[root@adman apache2]# vim conf/httpd.conf52 # LoadModule foo_module modules/mod_foo.so53 LoadModule jk_module modules/mod_jk.so #添加jk模块,模块是编译jk1.2.30得到106 DocumentRoot "/usr/local/webapps" #修改文档主目录133 <Directory "/usr/local /webapps"> #修改文档主目录146 Options Indexes FollowSymLinks158 Order allow,deny159 Allow from all160161 </Directory>416 Include conf/mod_jk.conf #添加jk配置文件,在末尾直接添加如果apache日志出现: session cache no configuration 警告信息请添加下面两行。

tomcat 源码解读

tomcat 源码解读

tomcat 源码解读Tomcat 是一款流行的开源 Web 服务器和应用服务器,它基于Java 技术开发,支持多种 Web 应用程序和框架。

本文将带您深入解读 Tomcat 的源码,帮助您更好地理解 Tomcat 的工作原理和实现细节。

一、Tomcat 架构概述Tomcat 是一个基于 Java 的开源 Web 服务器和应用服务器,它由多个组件组成,包括 Web 容器、Servlet 容器、连接器、过滤器等。

其中 Web 容器和 Servlet 容器是 Tomcat 的核心组件,它们负责管理 Web 应用程序的部署和运行。

Tomcat 通过多线程技术实现了高效的处理请求和响应,同时还支持集群和负载均衡等高级功能。

二、源码解析1. Web 容器源码解析Web 容器是 Tomcat 的核心组件之一,它负责管理 Web 应用程序的部署和运行。

在 Tomcat 中,Web 容器使用 Servlet 技术实现,通过 Servlet API 和相关类库来处理 HTTP 请求和响应。

在源码中,Web 容器实现了 Servlet API 中的核心接口,如HttpServletRequest、HttpSession、ServletContext 等,同时还提供了 Web 应用程序所需的配置和部署功能。

2. Servlet 容器源码解析Servlet 容器是 Tomcat 中另一个核心组件,它负责管理Servlet 的部署和运行。

在源码中,Servlet 容器实现了 Servlet API 中的核心接口和类库,提供了对 Servlet 的管理和控制功能。

同时,Servlet 容器还实现了多线程技术,通过线程池来处理请求和响应,提高了系统的处理效率。

3. Tomcat 连接器源码解析Tomcat 的连接器负责与客户端进行通信,它包括 HTTP 连接器和AJP 连接器等。

在源码中,连接器实现了基于 TCP/IP 的通信协议,通过 socket 通信来接收和发送请求和响应数据。

Linux平台Apache高可用双机集群Tomcat负载均衡集群配置手册

Linux平台Apache高可用双机集群Tomcat负载均衡集群配置手册

Linux平台Apache双机高可用集群+ Tomcat负载均衡集群配置手册在这个配置手册中,使用的操作系统和软件清单如下:操作系统:RedHat Enterprise Linux AS4 U4 64bit(安装时最好选择完全安装)软件:jdk-1_5_0_15-linux-amd64.binTomcat5.5.26httpd-2.0.63.tar.gzjakarta-tomcat-connectors-jk2-src-current.tar.gzipvsadm-1.24.tar.gzlibnet.tar.gzheartbeat-2.1.3-3.el4.centos.x86_64.rpmheartbeat-pils-2.1.3-3.el4.centos.x86_64.rpmheartbeat-stonith-2.1.3-3.el4.centos.x86_64.rpm因为是linux操作系统,所以在安装软件时请使用对应自己操作系统内核的软件,这是整个集群成功的第一步。

本配置手册中的软件都是对应RedHat Enterprise Linux AS4 U4 64bit 这个版本的软件。

jdk-1_5_0_15-linux-amd64.binJAVA环境包使用的是64位1.5版Tomcat版本为公司指定的5.5版本Apache为2.0.63版jakarta-tomcat-connectors-jk2-src-current.tar.gz是连接Apache和Tomcat的连接插件,具体可以去Tomcat网站上查找下载ipvsadm-1.24.tar.gzlibnet.tar.gz这两个是用于2台Apache服务器虚拟一个IP地址使用heartbeat-2.1.3-3.el4.centos.x86_64.rpmheartbeat-pils-2.1.3-3.el4.centos.x86_64.rpmheartbeat-stonith-2.1.3-3.el4.centos.x86_64.rpm这3个软件是用于2台Apache服务器之间的心跳检测结构图Apache1以以以以以Tomcat1Tomcat2Apache22台Tomcat服务器使用Tomcat软件可以自己做集群,2台Apache服务器需要其他的软件实现虚拟服务器功能,工作站访问虚拟IP地址访问2台Apache服务器,再通过Apache服务器访问Tomcat服务器第3 页总13 页1.安装JAVA环境包1)输入命令:./ jdk-1_5_0_15-linux-amd64.bin执行完毕后,会在当前目录下生成一个JDK-1.5.0_15的文件夹2)在 /usr/local/下新建一个名字为JAVA文件夹,将个JDK-1.5.0_15的文件夹拷入到该文件夹下3)设置环境变量。

Tomcat集群搭建

Tomcat集群搭建

本文Apache+Tomcat集群配置基于apache tomcat6.0.35 和apache http server 2.2实现均衡负载准备环境ApacheApache是http服务器,我们利用其对Tomcat进行负载均衡。

目前最新版本为2.2.?,下载地址为/download.cgi#apache22。

如下图:目前已经出现Apache2.3.11,但是为beta版本,所以没有使用。

下载后直接安装msi即可,如果没有其他的http服务器(如iis)则应该可以成功安装,端口即为80,能够访问http://localhost/说明安装成功。

建议不要监听80端口,因为有时候80端口已经被IIS服务器给占或者其他软件被占的话,apache server是安装不成功的(这样会报错:Address already in use: make_sock: could not bind to port 80/443…)。

如果想改监听的端口,请修改httpd.conf,找到:listen 80 改成 listen 8080即可监听8080端口TomcatTocmat7目前已经出现稳定版本的7.0.12,Tomcat6则为6.0.32。

经我测试,这2个版本的Apache负载均衡配置过程都是一样的,因此下面的配置在Tomcat6或7集群是通用的。

但是按照下面的配置,集群中Tomcat不能既有Tomcat6又有Tomcat7,否则虽能够负载均衡,但不能进行session复制,不知其他方式配置的集群是否可以。

Tomcat就不用怎么介绍了。

既然在本地需要多个节点,那么需要下载ZIP 版本的Tomcat。

JKJK是Tomcat提供给http服务器的插件(个人理解的),下载地址为/apache/tomcat/tomcat-connectors/jk/binaries /windows/。

如下图:(请下版本号能对应的so)这里选择的是mod_jk-1.2.31-httpd-2.2.3.so,如果http服务器是Apache2.0.X版本,则必须选择mod_jk-1.2.31-httpd-2.0.52.so,页面下方有英文的说明,大家可以看下。

Tomcat集群及负载均衡配置

Tomcat集群及负载均衡配置

Tomcat集群及负载均衡配置在单一的服务器上执行Web应用程序有一些重大问题,当网站的请求量越来越大,单一服务器终究无法满足需要处理的负荷量,所以就显得有点力不从心;而且还存在的问题是会产生单点故障,如果该服务器宕掉,那么网站就无法运作。

不论是因为要有较佳的扩充性还是容错能力,我们都会想在一台以上的服务器上执行Web应用程序。

所以,这时候我们就需要用到集群这一门技术。

1术语介绍1.1 集群集群是一组协同工作的服务实体,用以提供比单一服务实体更具扩展性与可用性的服务平台。

在客户端看来,一个集群就像是一个服务实体,但事实上集群由一组服务实体组成。

与单一服务实体相比较,集群提供了以下两个关键特性: 可扩展性--集群的性能不限于单一的服务实体,新的服务实体可以动态地加入到集群,从而增强集群的性能。

高可用性--集群通过服务实体冗余使客户端免于轻易遇到out of service 的警告。

在集群中,同样的服务可以由多个服务实体提供。

如果一个服务实体失败了,另一个服务实体会接管失败的服务实体。

集群提供的从一个出错的服务实体恢复到另一个服务实体的功能增强了应用的可用性。

1.2 负载均衡负载的基础是集群,集群就是一组连在一起的计算机,从外部看它是一个系统,各节点可以是不同的操作系统或不同的硬件构成的计算机。

如一个提供Web 服务的集群,对外界看来是一个大Web服务器。

负载均即把负载压力根据某种算法合理分配到集群中的每一台计算机上,以减轻主服务器的压力,降低对主服务器的硬件和软件要求。

2常用负载均衡技术常用手负载均衡技术有以下几种HTTP重定向DNS负载均衡反向代理负载均衡IP负载均衡(NAT)直接路由IP隧道本文介绍的是第三种使用apahce+tomcat的反向代理的负载均衡,使用代理服务器可以将请求转发全内部的Web服务器,让代理服务器均匀地转发给多台内部web服务器之一上,从而达到负载均衡目的。

这种代理方式与普通的代理方式有所不同,标准代理方式是客户使用代理访问多个外部Web服务器,而这种代理方式是多个客户使用它访问内部Web服务器,因此也被称为反向代理模式。

tomcat通俗易懂的说法

tomcat通俗易懂的说法

tomcat通俗易懂的说法Tomcat是Apache软件基金会开发的一款免费开放源代码的Web应用服务器,它可以运行大多数的JSP和Servlet容器。

Tomcat有不同版本,但是其主要功能都是相同的,即在一个Web服务器上运行Java应用程序。

Tomcat是一款用于支持Java Servlet和JavaServer Pages (JSP)的开源Web服务器,它是Apache Software Foundation的一部分。

因此,它通常称为Apache Tomcat。

Apache Tomcat也可以作为HTTP代理服务器或反向代理服务器使用,但它主要是作为Web应用服务器而被广泛使用。

Tomcat的基本功能是提供一个Servlet容器来支持Java Web应用程序,包括JavaServer Pages(JSPs)和Web服务。

它可以被看作是一个Web应用服务器的运行时环境,它提供了用于运行Web应用程序的所有工具和类库。

Tomcat有两种部署方式,即独立和集成模式。

在独立模式下,Tomcat服务器是一个单独的应用程序,它可以运行在任何Java Web容器上。

在集成模式下,Tomcat服务器将与另一个Web服务器,如Apache HTTP服务器,一起运行,以使用Tomcat容器处理Servlet和JSP请求。

Tomcat支持多种流行的Java应用程序技术,包括Servlet、JavaServer Pages、Java Expression Language 和WebSocket。

它还支持多个Web应用程序框架,如Struts、Spring MVC和JSF,以及其他一些功能强大的Web 应用程序技术。

Tomcat的特性和功能特别强大,它可以实现应用程序的负载均衡、安全性控制和容错性,并且可以被部署在多个平台上,包括Windows、Linux和Mac OS X。

总的来说,Tomcat是一款用于支持Java Servlet和JSP的开源Web服务器,它可以提供许多强大的功能,支持多个平台,提供应用程序的负载均衡、安全性控制和容错性,是一款非常实用的Web服务器。

TOMCAT5.5集群与负载均衡部署配置文档

TOMCAT5.5集群与负载均衡部署配置文档

TOMCAT5.5集群与负载均衡部署配置文档版本V1.0目录1 负载均衡原理和基本特点 (2)1.1 负载技术 (2)1.2 技术特点简介 (2)1.2.1 集群原理 (2)1.2.2 负载均衡与故障复原 (3)1.2.3 SESSION复制方式 (3)2 集群操作说明 (4)2.1 环境说明 (4)2.2 安装tomcat (4)2.3 负载均衡配置 (6)2.4 集群配置 (9)2.5 应用配置 (12)2.6测试结果 (13)2.6.1 负载均衡测试 (13)2.6.2 集群容错测试 (16)2.7 备注 (17)2.7.1 1同台部署 (17)2.7.2 开放相关端口 (18)1负载均衡原理和基本特点1.1 负载技术本方案采用反向代理负载均衡(如Apache+JK2+Tomcat这种组合),就是使用代理服务器可以将请求转发给内部的Web服务器,让代理服务器将请求均匀地转发给多台内部Web 服务器之一上,从而达到负载均衡的目的。

这种代理方式与普通的代理方式有所不同,标准代理方式是客户使用代理访问多个外部Web服务器,而这种代理方式是多个客户使用它访问内部Web服务器,因此也被称为反向代理模式。

1.2 技术特点简介1.2.1集群原理Tomcat中的集群原理是通过组播的方式进行节点的查找并使用TCP连接进行会话的复制。

1、集群地址:集群由多个服务实体组成,集群客户端通过访问集群的集群地址获取集群内部各服务实体的功能。

具有单一集群地址(也叫单一影像)是集群的一个基本特征。

维护集群地址的设置被称为负载均衡器。

负载均衡器内部负责管理各个服务实体的加入和退出,外部负责集群地址向内部服务实体地址的转换。

有的负载均衡器实现真正的负载均衡算法,有的只支持任务的转换。

只实现任务转换的负载均衡器适用于支持ACTIVE-STANDBY的集群环境,在那里,集群中只有一个服务实体工作,当正在工作的服务实体发生故障时,负载均衡器把后来的任务转向另外一个服务实体。

Apache2.2+tomcat-6.0.18集群部署手册

Apache2.2+tomcat-6.0.18集群部署手册

一、软件准备Apache 2.2Tomcat-6.0.18:mod_jk-1.2.31-httpd-2.2.3.sojdk-1_5_0_06-windows-i586-p.exe注意:由于Apache和Tomcat项目与集群相关的模块均处于持续发展和优化过程中,因此笔者不保证本文配置方法对所有Apache和Tomcat版本均适用。

二、Apache安装1、先准备好软件:2、安装Apache,配置成功一个普通网站服务器3、运行下载好的“httpd-2.2.19-win32-x86-openssl-0.9.8r.msi”,出现如下界面:4、出现Apache HTTP Server 2.0.55的安装向导界面,点“Next”继续5、确认同意软件安装使用许可条例,选择“I accept the terms in the license agreement”,点“Next”继续6、将Apache安装到Windows上的使用须知,请阅读完毕后,按“Next”继续7、设置系统信息,在Network Domain下填入您的域名(比如:),在Server Name下填入您的服务器名称(比如:,也就是主机名加上域名),在Administrator's Email Address下填入系统管理员的联系电子邮件地址(比如:yinpeng@),上述三条信息仅供参考,其中联系电子邮件地址会在当系统故障时提供给访问者,三条信息均可任意填写,无效的也行。

下面有两个选择,图片上选择的是为系统所有用户安装,使用默认的80端口,并作为系统服务自动启动;另外一个是仅为当前用户安装,使用端口8080,手动启动。

一般选择如图所示。

按“Next”继续。

]8、选择安装类型,Typical为默认安装,Custom为用户自定义安装,我们这里选择Custom,有更多可选项。

按“Next”继续9、出现选择安装选项界面,如图所示,左键点选“Apache HTTP Server 2.0.55”,选择“This feature, and all subfeatures, will be installed on local hard drive.”,即“此部分,及下属子部分内容,全部安装在本地硬盘上”。

tomcat 面试题

tomcat 面试题

tomcat 面试题Tomcat面试题Tomcat是一个广泛使用的Java服务器容器,用于执行Java Servlet 和JavaServer Pages(JSP)等Web应用程序。

它被广泛应用于Java Web开发中,并且在面试中也是一个常见的话题。

以下是一些关于Tomcat的常见面试题及其答案:1. 什么是Tomcat?它的主要功能是什么?Tomcat是一个开源的Web服务器和Servlet容器,它实现了Java Servlet和JavaServer Pages(JSP)规范。

它的主要功能是接收来自客户端的HTTP请求,并将请求映射到相应的Servlet或JSP进行处理。

2. Tomcat的架构是什么样的?Tomcat的架构基于模块化设计,它包含了多个组件,包括连接器、容器、Servlet引擎等。

连接器负责接受和处理HTTP请求,容器负责管理Servlet的生命周期,Servlet引擎负责调度和执行Servlet。

3. Tomcat的端口号有哪些?Tomcat的端口号包括:- 8080端口:用于HTTP请求的默认连接器- 8443端口:用于HTTPS请求的默认连接器- 8005端口:用于接收关闭命令的默认端口4. Tomcat的配置文件有哪些?它们的作用是什么?Tomcat的配置文件包括:- server.xml:主要用于配置Tomcat的整体设置,如连接器的端口、虚拟主机等。

- web.xml:用于配置Web应用程序的部署描述符,如Servlet、Listener和Filter等。

- context.xml:用于配置Web应用程序的上下文环境,如数据库连接池等。

5. Tomcat的类加载器是怎样工作的?Tomcat使用了一个层次化的类加载器体系。

它包括Bootstrap类加载器、系统类加载器、Web应用程序类加载器和共享类加载器。

每个类加载器都负责加载特定的类,并且按照一定的顺序进行类的查找和加载。

浅析Tomcat Web服务器基于Apache的集群与负载均衡

浅析Tomcat Web服务器基于Apache的集群与负载均衡

浅析Tomcat Web服务器基于Apache的集群与负载均衡摘要:目前海南电网公司有很多接口应用程序在运行,其中大部分是基于WEBSERVICE方式的接口,而WEBSERVICE接口绝大多数都是采用的Tomcat这一开源软件,电网运维部门如何保证接口的正常运行是个工作量大而且让人头痛的问题,因为很多接口是系统与系统之间的关键接点,是否正常运行影响海南电网的生产、经营分析等方面,基于这一现状,我们摸索出了WEBSERVICE接口基于Apache的集群与负载均衡的具体实现方法,本文从实际例子出发,详细阐述了Tomcat Web服务器实现基于Apache集群与负载均衡的过程。

关键词:WEB服务器Tomcat 集群负载均衡Session 云计算1 背景与发展本文的集群指WEB服务器集群,只是集群技术中很小的分支。

随着业务与需求的增长WEB服务器访问量不断的增加,客户对产品的负载能力与稳定性随之提高,在单一WEB服务器的架构中已经难以达到用户的需求,在进一步提高产品的质量外,需要寻求更可靠的技术支持。

系统在实际应用中需要我们回答以下问题。

(1)在产品稳定的情况下,如何面对不断增长的访问量?(2)在现有硬件的基础下,如何更进一步发挥硬件的性能?(3)WEB应用突发停止后,如何保证继续为电网生产经营提供服务?(4)在更换新版本系统时,如果保证不间断的提供服务?上面的问题是在所有WEB系统开发、运行、维护过程中都会碰到的问题。

如果要解决这个问题则首先要采用:WEB服务器系统集群技术。

采用集群技术之后解决WEB服务器容量带来的巨大挑战,服务器资源终究是有限的,大容量服务器对用户来说是一笔巨大的开支,也无法保障原来的投入,同时也解决不了根本问题。

WEB系统集群技术为系统容量、扩展问题提供了良好的途径,同时又能保护用户的投资,它能把一组服务器通过一定形式组织起来,对外提供强大的服务能力,也能在同一服务器上部署多个相同系统集群充分挖掘服务器的潜力。

Tomcat与Apache集成的研究

Tomcat与Apache集成的研究

nt a — n es t ab指令查看 8 t 0端 口号是 否已经被 占用 ,并将有关进 程关闭。若 安装成功 ,输入 ht:l a ot 以看到 A ah t /ol s可 p/c h p ce的
测试 页 面 。
()在 A ah 4 pc e服务器 的 m d l oue s目录下 放人 J K插 件文
电脑 编 程 技 巧 与 维 护

T m a 与 A ah 集成 的研 究 o Ct p ce
孙 仁鹏
( 南京信息职业技术学院计 算机 与软件学院 ,南京 204) 10 6

要 : 为 了提 升 网站 的访 问速 度和 提 高稳 定 性 ,提 出 了将 T m a 与 A ah o ct p ce集成 和 集群 的 解 决 方 案 。详 细 分析 了
软件开发与设计
到不 同性 能的服务器上 ,减 轻了单个 服务器 的压力 。
() 高 可 靠 性 :当 一 台 服 务 器 发 生 故 障 ,集 群 系统 会 自 5 动 把 作 任 务 转 交 给 别 的 服 务 器 ,对 用 户 提 供 透 明不 间 断 的 【
服务。
分发控制器等通信的参数 ,存放 在 cn of目录下 ,内容如下 : w re. tw rel舟指定连接 的 T m a 名单 ,多个 用逗 okri= okr 1 s o ct
d ti . eal s
Ke r s o a ; a h y wo d :T mc t Ap c e; ne r t n;C u tr I tg a i o ls e
既然 T m a 本 身 已经提供 了 H F o ct T P服务 ,为什 么还要 引 人与 A ah pc e或者其 他的一些专 门的 HI’ , P服务器集成 呢?原 ’ I

cluster

cluster

打开omcat的监听端口改成由8005改为8105
即把
<Server port="8005" shutdown="SHUTDOWN">
改为
<Server port="8105" shutdown="SHUTDOWN">
如果把不同版本的Tomcat进行集群,目录就可用Tomcat4_3(版本为4.x的第三个tomcat服务器),Tomcat6_4(版本为6.x的第三个tomcat服务器),这是Unmi本人的习惯。
2.修改Apache配置文件http.conf
在apache安装目录下conf目录中找到http.conf,在文件最后加上下面一句话就可以了
8. JkMount /*.jsp controller
如果还要指定*.do也进行分流就再加一行
JkMount /*.do controller
如果你想对所有的请求进行分流只需要写成
JkMount /* controller
4. 在http.conf同目录下新建 workers.properties文件,内容如下
本文基本参考自网络
轻松实现Apache,Tomcat集群和负载均衡,经由实操经历记录而成,碰到些出入,以及个别地方依据个人的习惯,所以在一定程度上未能保持原文的完整性,还望原著者海涵。
因原文中有较多的贴图,如若各位读者一时不想亲自动手而直想看到配置效果,可查看原文。
一:软件环境
1. Apache: apache 2.0.55 (由/进入下载)(点击下载apache 2.0.55)
配置时请视实际情况而取舍。

tomcat高并发配置与优化

tomcat高并发配置与优化

tomcat⾼并发配置与优化公司的⼀个服务器使⽤Tomcat6默认配置,在后台⼀阵全点击服务器就报废了,查了⼀下就要是PERMSIZE默认值过⼩造成(16-64)TOMCAT_HOME/bin/catalina.sh添加⼀⾏:JAVA_OPTS=" -XX:PermSize=64M -XX:MaxPermSize=128m"问题解决(可能为调⽤JAR包过多原因)下⾯是⽹上看到⼀些设置JAVA_OPTS="-server -Xms800m -Xmx800m -XX:PermSize=64M -XX:MaxNewSize=256m -XX:MaxPermSize=128m -Djava.awt.headless=true "当在对其进⾏并发测试时,基本上30个USER上去就当机了,还要修改默认连接数设置:以下红⾊四⾏TOMCAT6中好相没有,⼿⼯加上就可以了,基本上可以解决连接数过⼤引起的死机。

具体数值可跟据实际情况设置<Connector port="80" protocol="HTTP/1.1"maxThreads="600"minSpareThreads="100"maxSpareThreads="500"acceptCount="700"connectionTimeout="20000"redirectPort="8443" />这样设置以后,基本上没有再当机过。

maxThreads="600" ///最⼤线程数minSpareThreads="100"///初始化时创建的线程数maxSpareThreads="500"///⼀旦创建的线程超过这个值,Tomcat就会关闭不再需要的socket线程。

部署高可用 Tomcat 集群

部署高可用 Tomcat 集群

部署高可用 Tomcat 集群随着互联网应用的不断增多,单个服务器往往难以承受高并发访问的压力,因此采用集群的方式进行部署成为一种常见的解决方案。

Tomcat作为JAVA的应用服务器,也适用于集群的部署。

本文将介绍如何部署高可用Tomcat集群。

一、负载均衡器的选择在部署Tomcat集群之前,我们需要选择一款负载均衡器。

负载均衡器可以将客户端的请求分发到不同的服务器上,从而实现负载均衡。

目前比较常见的负载均衡器有Nginx、HAProxy和Apache等。

在选择负载均衡器时,需要考虑以下因素:1. 功能和性能:负载均衡器需要支持HTTP和HTTPS协议,并能够处理高并发请求。

2. 配置的难易程度:负载均衡器的配置文件需要考虑到性能和使用方便之间的平衡。

3. 社区支持和文档资料:负载均衡器的使用需要有足够的社区支持和文档资料。

综合考虑,我们选择Nginx作为负载均衡器。

二、Tomcat集群节点的设置在设置Tomcat集群节点之前,需要先确定采用的集群方式。

Tomcat集群可以采用共享存储方式或互相同步的方式。

共享存储方式:采用共享存储方式的Tomcat集群将共享同一份资源,包括代码、配置文件和缓存等。

当其中一个节点收到请求时,它将先查询本地缓存,如果不存在则从共享文件系统中读取数据。

互相同步的方式:采用互相同步的方式的Tomcat集群则每个节点都保留一份相同的资源,当其中一个节点更新相应的资源时,其他节点也会同步更新。

在本文中,我们将采用互相同步的方式。

为了实现互相同步,我们需要进行如下配置:1. 安装rsync在每个节点上都需要安装rsync,可以使用yum或apt-get等包管理器安装。

2. 创建Tomcat用户创建一个以Tomcat命名的用户,并赋予其Tomcat所在目录的读写执行权限。

3. 配置rsync在每个节点上都需要配置rsync,使其能够同步Tomcat的配置文件、程序文件和文件夹等。

nginx_+tomcat集群配置

nginx_+tomcat集群配置

Nginx+Tomcat 集群配置Nginx对处理静态文件(如html、jpg等)的性能十分优异,具有高并发、占用资源低、扩展性强的特点。

Nginx的这个特点,对于专注于处理java的tomcat来说,可以说是个完美的搭档。

生产环境下,已经取代早期的apache+tomcat,并且还可以使用Nginx结合jvm_router这个国人开发的扩展,做下tomcat的集群。

配置环境两台服务器:192.168.0.239 192.168.0.240操作系统:CentOS 6.3Jdk:jdk-6u35-linux-x64.binTomcat :6.0.35Nginx :nginx-1.2.4安装jdk在第一台机器,192.168.0.239(以后称为A)安装JDK1.使用命令chmod +x jdk-6u35-linux-x64.bin 赋予jdk执行权限。

2.安装jdk,使用命令:./jdk-6u35-linux-x64.bin3.配置环境变量,拷贝jdk的目录到/usr下,/etc/profile文件的末尾添加如下:export JAVA_HOME=/usr/jdkexport PATH=$PATH:$JAVA_HOME/binexportCLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/ tools.jar4.使用命令:source /etc/profile ,使配置即刻生效。

然后测试jdk是否成功:java -version5.第二台服务器同上安装jdk安装Tomcat1.下载apache-tomcat-6.0.35.tar.gz,解压到/usr目录下,并重命名为tomcat2.进入/usr/tomcat的bin目录下,使用命令chmod +x ./* 给bin目录下的文件,赋予可执行权利。

3.进入/usr/tomcat/conf目录下,编辑tomcat-users.xml文件,增加admin管理员,并加入manager组。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

用apache和tomcat搭建集群,实现负载均衡一、集群和负载均衡的概念(一)集群的概念集群(Cluster)是由两台或多台节点机(服务器)构成的一种松散耦合的计算节点集合,为用户提供网络服务或应用程序(包括数据库、Web服务和文件服务等)的单一客户视图,同时提供接近容错机的故障恢复能力。

集群系统一般通过两台或多台节点服务器系统通过相应的硬件及软件互连,每个群集节点都是运行其自己进程的独立服务器。

这些进程可以彼此通信,对网络客户机来说就像是形成了一个单一系统,协同起来向用户提供应用程序、系统资源和数据。

除了作为单一系统提供服务,集群系统还具有恢复服务器级故障的能力。

集群系统还可通过在集群中继续增加服务器的方式,从内部增加服务器的处理能力,并通过系统级的冗余提供固有的可靠性和可用性。

(二)集群的分类1、高性能计算科学集群:以解决复杂的科学计算问题为目的的IA集群系统。

是并行计算的基础,它可以不使用专门的由十至上万个独立处理器组成的并行超级计算机,而是采用通过高速连接来链接的一组1/2/4 CPU的IA服务器,并且在公共消息传递层上进行通信以运行并行应用程序。

这样的计算集群,其处理能力与真正超级并行机相等,并且具有优良的性价比。

2、负载均衡集群:负载均衡集群为企业需求提供更实用的系统。

该系统使各节点的负载流量可以在服务器集群中尽可能平均合理地分摊处理。

该负载需要均衡计算的应用程序处理端口负载或网络流量负载。

这样的系统非常适合于运行同一组应用程序的大量用户。

每个节点都可以处理一部分负载,并且可以在节点之间动态分配负载,以实现平衡。

对于网络流量也如此。

通常,网络服务器应用程序接受了大量入网流量,无法迅速处理,这就需要将流量发送给在其它节点。

负载均衡算法还可以根据每个节点不同的可用资源或网络的特殊环境来进行优化。

3、高可用性集群:为保证集群整体服务的高可用,考虑计算硬件和软件的容错性。

如果高可用性群集中的某个节点发生了故障,那么将由另外的节点代替它。

整个系统环境对于用户是一致的。

实际应用的集群系统中,这三种基本类型经常会发生混合与交杂。

(三)典型集群科学计算集群:1、Beowulf当谈到Linux 集群时,许多人的第一反映是Beowulf。

那是最著名的Linux科学软件集群系统。

实际上,它是一组适用于在Linux 内核上运行的公共软件包的通称。

其中包括流行的软件消息传递API,如“消息传送接口”(MPI) 或“并行虚拟机”(PVM),对Linux 内核的修改,以允许结合几个以太网接口、高性能网络驱动器,对虚拟内存管理器的更改,以及分布式进程间通信(DIPC) 服务。

公共全局进程标识空间允许使用DIPC 机制从任何节点访问任何进程。

2、MOSIXBeowulf类似于给系统安装的一个支持集群的外挂软件,提供了应用级的集群能力。

而MOSIX 是彻底修改Linux的内核,从系统级提供了集群能力,它对应用而言是完全透明的,原有的应用程序,可以不经改动,就能正常运行在MOSIX系统之上。

集群中的任何节点都可以自由地加入和移除,来接替其它节点的工作,或是扩充系统。

MOSIX 使用自适应进程负载均衡和内存引导算法使整体性能最大化。

应用程序进程可以在节点之间实现迁移,以利用最好的资源,这类似于对称多处理器系统可以在各个处理器之间切换应用程序。

由于MOSIX通过修改内核来实现集群功能,所以存在兼容性问题,部分系统级应用程序将无法正常运行。

负载均衡/高可用性集群3、LVS(Linux Virtual Server)这是一个由国人主持的项目。

它是一个负载均衡/高可用性集群,主要针对大业务量的网络应用(如新闻服务、网上银行、电子商务等)。

LVS是建立在一个主控服务器(通常为双机)(director)及若干真实服务器(real-server)所组成的集群之上。

real-server 负责实际提供服务,主控服务器根据指定的调度算法对real-server 进行控制。

而集群的结构对于用户来说是透明的,客户端只与单个的IP(集群系统的虚拟IP)进行通信,也就是说从客户端的视角来看,这里只存在单个服务器。

N54537Real-server可以提供众多服务,如ftp, http, dns, telnet, nntp, smtp 等。

主控服务器负责对Real-Server进行控制。

客户端在向LVS发出服务请求时,Director会通过特定的调度算法来指定由某个Real- Server来应答请求,而客户端只与Load Balancer的IP(即虚拟IP,VIP)进行通信。

其他集群:现在集群系统可谓五花八门,绝大部分的OS开发商,服务器开发商都提供了系统级的集群产品,最典型的是各类双机系统,还有各类科研院校提供的集群系统。

以及各类软件开发商提供的应用级别的集群系统,如数据库集群,Application Server 集群,Web Server集群,邮件集群等等。

(四)负载均衡1、概念由于目前现有网络的各个核心部分随着业务量的提高,访问量和数据流量的快速增长,其处理能力和计算强度也相应地增大,使得单一的服务器设备根本无法承担。

在此情况下,如果扔掉现有设备去做大量的硬件升级,这样将造成现有资源的浪费,而且如果再面临下一次业务量的提升时,这又将导致再一次硬件升级的高额成本投入,甚至性能再卓越的设备也不能满足当前业务量增长的需求。

针对此情况而衍生出来的一种廉价有效透明的方法以扩展现有网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性的技术就是负载均衡(Load Balance)。

2、特点和分类负载均衡(Server Load Balance)一般用于提高服务器的整体处理能力,并提高可靠性,可用性,可维护性,最终目的是加快服务器的响应速度,从而提高用户的体验度。

负载均衡从结构上分为本地负载均衡(Local Server Load Balance)和地域负载均衡(Global Server Load Balance)(全局负载均衡),一是指对本地的服务器群做负载均衡,另一是指对分别放置在不同的地理位置、有不同的网络及服务器群之间作负载均衡。

地域负载均衡有以下的特点:(1)解决网络拥塞问题,服务就近提供,实现地理位置无关性(2)对用户提供更好的访问质量(3)提高服务器响应速度(4)提高服务器及其他资源的利用效率(5)避免了数据中心单点失效3、负载均衡技术主要应用(1)DNS负载均衡最早的负载均衡技术是通过DNS来实现的,在DNS中为多个地址配置同一个名字,因而查询这个名字的客户机将得到其中一个地址,从而使得不同的客户访问不同的服务器,达到负载均衡的目的。

DNS负载均衡是一种简单而有效的方法,但是它不能区分服务器的差异,也不能反映服务器的当前运行状态。

(2)代理服务器负载均衡使用代理服务器,可以将请求转发给内部的服务器,使用这种加速模式显然可以提升静态网页的访问速度。

然而,也可以考虑这样一种技术,使用代理服务器将请求均匀转发给多台服务器,从而达到负载均衡的目的。

(3)地址转换网关负载均衡支持负载均衡的地址转换网关,可以将一个外部IP地址映射为多个内部IP地址,对每次TCP连接请求动态使用其中一个内部地址,达到负载均衡的目的。

(4)协议内部支持负载均衡除了这三种负载均衡方式之外,有的协议内部支持与负载均衡相关的功能,例如HTTP协议中的重定向能力等,HTTP运行于TCP连接的最高层。

(5)NAT负载均衡NAT(Network Address Translation 网络地址转换)简单地说就是将一个IP地址转换为另一个IP地址,一般用于未经注册的内部地址与合法的、已获注册的Internet IP地址间进行转换。

适用于解决Internet IP地址紧张、不想让网络外部知道内部网络结构等的场合下。

(6)反向代理负载均衡普通代理方式是代理内部网络用户访问internet上服务器的连接请求,客户端必须指定代理服务器,并将本来要直接发送到internet上服务器的连接请求发送给代理服务器处理。

反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个服务器。

反向代理负载均衡技术是把将来自internet上的连接请求以反向代理的方式动态地转发给内部网络上的多台服务器进行处理,从而达到负载均衡的目的。

(7)混合型负载均衡在有些大型网络,由于多个服务器群内硬件设备、各自的规模、提供的服务等的差异,我们可以考虑给每个服务器群采用最合适的负载均衡方式,然后又在这多个服务器群间再一次负载均衡或群集起来以一个整体向外界提供服务(即把这多个服务器群当做一个新的服务器群),从而达到最佳的性能。

我们将这种方式称之为混合型负载均衡。

此种方式有时也用于单台均衡设备的性能不能满足大量连接请求的情况下。

二、搭建集群和实现负载平衡(一)前期准备我的系统用的是windowsXP专业版,我要做的是,用一个apache和多个(这里以两个作为示例)tomcat,通过jk方式,构造一个集群。

以下是要首先准备的东西:1、jdk,我用的版本是jdk1.5.0_06,下载地址是http://192.18.108.216/ECom/EComTicketServlet/BEGIND597A309654D73D910E051D73D539D5F /-2147483648/2438196255/1/852050/851882/2438196255/2ts+/westCoastFSEND/jdk-1.5.0_13-oth-JPR/jdk-1.5.0_13-oth-JPR:3/jdk-1_5_0_13-windows-i586-p.exe2、apache,我用的版本是2.2.4,下载地址是/httpd/binaries/win32/apache_2.2.4-win32-x86-openssl-0.9.8d.msi3、tomcat,我用的版本是5.5的解压版本,这里要注意:不能用安装的版本,因为一台机器上装两个一样的tomcat,是会出错误的。

下载地址是/tomcat/tomcat-5/v5.5.25/bin/apache-tomcat-5.5.25.zip4、jk,这个jk的版本,本来有两个的,但是版本2已经被废弃掉了,目前可用的jk版本是1.2.25。

每个apache的版本,都会有一个特定的jk与之对应,所以这里要用的jk也必须是为apache-2.2.4开发的那个才行。

它的下载地址是/dist/tomcat/tomcat-connectors/jk/binaries/win32/jk-1.2.25/mod_jk-apache-2.2.4.so有了这四样东西,我们就可以开始做集群了。

相关文档
最新文档