多台服务器tomcat集群

多台服务器tomcat集群
多台服务器tomcat集群

多台服务器tomcat集群

集群背景介绍

1.1 术语定义

服务软体是b/s或c/s结构的s部分,是为b或c提供服务的服务性软件系统。服务硬体指提供计算服务的硬件、比如pc机、pc服务器。服务实体通指服务软体和服务硬体。客户端指接受服务实体服务的软件或硬件。

1.2 两大关键特性

集群是一组协同工作的服务实体,用以提供比单一服务实体更具扩展性与可用性的服务平台。在客户端看来,一个集群就象是一个服务实体,但事实上集群由一组服务实体组成。与单一服务实体相比较,集群提供了以下两个关键特性:

可扩展性--集群的性能不限于单一的服务实体,新的服务实体可以动态地加入到集群,从而增强集群的性能。

高可用性--集群通过服务实体冗余使客户端免于轻易遇到out of service的警告。在集群中,同样的服务可以由多个服务实体提供。如果一个服务实体失败了,另一个服务实体会接管失败的服务实体。集群提供的从一个出错的服务实体恢复到另一个服务实体的功能增

强了应用的可用性。

1.3 两大能力

为了具有可扩展性和高可用性特点,集群的必须具备以下两大能力:负载均衡--负载均衡能把任务比较均衡地分布到集群环境下的计算和网络资源。

错误恢复--由于某种原因,执行某个任务的资源出现故障,另一服务实体中执行同一任务的资源接着完成任务。这种由于一个实体中的资源不能工作,另一个实体中的资源透明的继续完成任务的过程叫错误恢复。

负载均衡和错误恢复都要求各服务实体中有执行同一任务的资源存在,而且对于同一任务的各个资源来说,执行任务所需的信息视图(信息上下文)必须是一样的。

1.4 两大技术

实现集群务必要有以下两大技术:

集群地址--集群由多个服务实体组成,集群客户端通过访问集群的集群地址获取集群内部各服务实体的功能。具有单一集群地址(也叫单一影像)是集群的一个基本特征。维护集群地址的设置被称为负载均衡器。负载均衡器内部负责管理各个服务实体的加入和退出,外部负责集群地址向内部服务实体地址的转换。有的负载均衡器实现真正的负载均衡算法,有的只支持任务的转换。只实现任务转换的负载均

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

内部通信--为了能协同工作、实现负载均衡和错误恢复,集群各实体间必须时常通信,比如负载均衡器对服务实体心跳测试信息、服务实体间任务执行上下文信息的通信。

具有同一个集群地址使得客户端能访问集群提供的计算服务,一个集群地址下隐藏了各个服务实体的内部地址,使得客户要求的计算服务能在各个服务实体之间分布。内部通信是集群能正常运转的基础,它使得集群具有均衡负载和错误恢复的能力。

(一)环境说明

(1)服务器有4台,一台安装apache,三台安装tomcat

(2)apache2.0.55、tomcat5.5.15、jk2.0.4、jdk1.5.6或jdk1.4.2

(3)ip配置,一台安装apache的ip为192.168.0.88,三台安装tomcat的服务器ip分别为

192.168.0.1/2/4

(二)安装过程

(1)在三台要安装tomcat的服务器上先安装jdk

(2)配置jdk的安装路径,在环境变量path中加入jdk的bin路径,新建环境变量JAVA_HOME指向jdk 的安装路径

(3)在三台要安装tomcat的服务器上分别安装tomcat,调试三个tomcat到能够正常启动

(4)tomcat的默认WEB服务端口是8080,默认的模式是单独服务,我的三个tomcat的WEB服务端口修改为7080/8888/9999

修改位置为tomcat的安装目录下的conf/server.xml

修改前的配置为

修改后的配置为

依次修改每个tomcat的监听端口(7080/8888/9999)

(5)分别测试每个tomcat的启动是否正常

http://192.168.0.1:7080

http://192.168.0.2:8888

http://192.168.0.4:9999/

(三)负载均衡配置过程

(1)在那台要安装apache的服务器上安装apache2.0.55,我的安装路径为默认C:\Program

Files\Apache Group\Apache2

(2)安装后测试apache能否正常启动,调试到能够正常启动http://192.168.0.88

(3)下载jk2.0.4后解压缩文件

(4)将解压缩后的目录中的modules目录中的mod_jk2.so文件复制到apache的安装目录下的modules目录中,我的为C:\Program Files\Apache Group\Apache2\modules

(5)修改apache的安装目录中的conf目录的配置文件httpd.conf,在文件中加LoadModule模块配置信息的最后加上一句LoadModule jk2_module modules/mod_jk2.so

(6)分别修改三个tomcat的配置文件conf/server.xml,修改内容如下

修改前

修改后

将其中的jvmRoute="jvm1"分别修改为jvmRoute="tomcat1"和jvmRoute="tomcat2"和jvmRoute="tomcat3"

(7)然后重启三个tomcat,调试能够正常启动。

(8)在apache的安装目录中的conf目录下创建文件workers2.propertie,写入文件内容如下

#配置第一个服务器

tomcatId=tomcat1 #要和tomcat的配置文件server.xml中的jvmRoute="tomcat1"名称一致debug=0

lb_factor=1 #负载平衡因子,数字越大请求被分配的几率越高

(9)在三个tomcat的安装目录中的webapps建立相同的应用,我和应用目录名为TomcatDemo,在三个应用目录中建立相同WEB-INF目录和页面index.jsp,index.jsp的页面内容如下

(10)重启apache服务器和三个tomcat服务器,到此负载均衡已配置完成。测试负载均衡先测试apache,访问http://192.168.0.88/jkstatus.jsp

能否正常访问,并查询其中的内容,有三个tomcat的相关配置信息和负载说明,访问

http://192.168.0.88/TomcatDemo/index.jsp看能够运行,

能运行,则已建立负载均衡。

(四)tomcat集群配置

(1)负载均衡配置的条件下配置tomcat集群

(2)分别修改三个tomcat的配置文件conf/server.xml,修改内容如下

修改前

修改后

将集群配置选项的注释放开即可,如上。

(3)在Conf目录下建立jk2.properties文件,写入下面一行,其中端口为相应的Tomcat对应的AJP端口。

channelSocket.port=8009

(4)重启三个tomcat。到此tomcat的集群已配置完成。

(五)应用配置

对于要进行负载和集群的的tomcat目录下的webapps中的应用中的WEB-INF中的web.xml文件要添加如下一句配置

配置前

配置后

源地址

https://www.360docs.net/doc/2e5925597.html,/injava/blog/item/c8df882f136f21391e30896d.html

对上面方法的改进:

一、安装apachea、下载最新源文件httpd-2.2.3.tar.gz。wget

https://www.360docs.net/doc/2e5925597.html,/httpd/httpd-2.2.3.tar.gzb、编译

一、安装apache

a、下载最新源文件httpd-2.2.3.tar.gz。

wget

https://www.360docs.net/doc/2e5925597.html,/httpd/httpd-2.2.3.tar.gz b、编译apache

gunzip httpd-2.2.3.tar.gz

tar xvf httpd-2.2.3.tar

cd httpd-2.2.3

./configure --prefix=/home/apache --enable-so

--with-mpm=worker

make

make install

c、简单配置:编辑httpd.conf,

把#ServerName https://www.360docs.net/doc/2e5925597.html,:80项中ServerName前的#号去掉,把xxxxx改成自己的机器全名,212中修改如下

#ServerName https://www.360docs.net/doc/2e5925597.html,:80改成ServerName 127.0.0.1

d、启动Apache:#cd /home/apache/bin

#./apachectl start

e、测试Apache是否已经正确运行:http://202.202.202.15

二、安装tomcat

把主体资源的tomcat拷为/home/tomcat/tomcat11目录

cd /home/tomcat

tar cvf ../tool/tomcat.tar tomcat5 --exclude

tomcat5/webapps --exclude tomcat5/work

cd /home/tool

tar xvf tomcat.tar

mv tomcat5 ../tomcat/tomcat11

修改tomcat的文件目录,将

/home/tomcat/tomcat11/conf/server.xml

appBase="webapps"修改为

appBase="/home/tomcat/tomcat5/webapps"

修改tomcat的端口

tomcat1/conf/server.xml

改为

shutdown="SHUTDOWN">

改为

改为

cp -fR /home/tomcat/tomcat11 /home/tomcat/tomcat12 cp -fR /home/tomcat/tomcat11 /home/tomcat/tomcat13 cp -fR /home/tomcat/tomcat11 /home/tomcat/tomcat14 将相关端口修改为12001、12002和12003,13001、13002和13003,14001、14002和14003;将标识修改为

tomcat12,tomcat13,tomcat14

f、启动tomcat:

#cd /home/tomcat/tomcat11/bin

#./startup.sh

#cd /home/tomcat/tomcat12/bin

#./startup.sh

#cd /home/tomcat/tomcat13/bin

#./startup.sh

#cd /home/tomcat/tomcat14/bin

#./startup.sh

g、测试tomcat是否已经正确运行:

http://202.202.202.15:11002

http://202.202.202.15:12002

http://202.202.202.15:13002

http://202.202.202.15:14002

三、apache + 2tomcat的负载均衡

a、下载tomcat-connectors的源代码,编译,生成

/home/apache/modules/mod_jk.so文件

wget

https://www.360docs.net/doc/2e5925597.html,/Apache/dist/tomcat/tomcat-conn ectors/jk/source/jk-1.2.19/tomcat-connectors-1.2.19-src.tar .gz

gzip -d tomcat-connectors-1.2.19-src.tar.gz

tar xvf tomcat-connectors-1.2.19-src.tar

cd tomcat-connectors-1.2.19-src

cd native

./configure --with-apxs=/home/apache/bin/apxs

make

make install

b、修改httpd.conf配置

编辑Apache的配置文件Apache安装目录的conf/httpd.conf

把DocumentRoot

"/mnt/sdd1/yanfa/vcmresource/apache/htdocs"改成DocumentRoot "/home/tomcat/tomcat5/webapps/ROOT"

"/mnt/sdd1/yanfa/vcmresource/apache/htdocs">改成

DirectoryIndex index.html

改为

DirectoryIndex index.jsp index.html

取消以下注释

#EnableMMAP off

#EnableSendfile off

改为

EnableMMAP off

EnableSendfile off

#Include conf/extra/httpd-mpm.conf 改为

Include conf/extra/httpd-mpm.conf

#Include conf/extra/httpd-default.conf 改为

Include conf/extra/httpd-default.conf

加入以下内容

# Jk connectors

Include conf/mod_jk.conf

修改conf/extra/httpd-mpm.conf配置# worker MPM

StartServers 2

MaxClients 150

MinSpareThreads 25

MaxSpareThreads 75

ThreadsPerChild 25

MaxRequestsPerChild 0

改为

# worker MPM

StartServers 5

ServerLimit 60

MaxClients 3000

MinSpareThreads 25

MaxSpareThreads 75

ThreadsPerChild 50

MaxRequestsPerChild 0

d、在conf目录下创建mod_jk.conf文件,内容如下:

--------------------------------------mod_jk.conf------------------------------------------

# Load mod_jk module

LoadModule jk_module modules/mod_jk.so

# Where to find workers.properties

JkWorkersFile conf/workers.properties

# Where to put jk logs

JkLogFile logs/mod_jk.log

# Set the jk log level [debug/error/info]

JkLogLevel warn

# Select the log format

# JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "

# JkOptions indicate to send SSL KEY SIZE,

# JkOptions +ForwardKeySize +ForwardURICompat

-ForwardDirectories

# JkRequestLogFormat set the request format

# JkRequestLogFormat "%w %V %T"

# Send JSPs for context / to worker named loadBalancer

#JkMount /*.jsp loadBalancer

#JkMount /*.do* loadBalancer

JkMountFile conf/urimap.properties

--------------------------------------------mod_jk.conf------------------------------------

在conf目录下创建urimap.properties文件,内容如下:

/*=loadBalancer

!/*.gif=loadBalancer

!/*.jpg=loadBalancer

!/*.png=loadBalancer

!/*.css=loadBalancer

!/*.js=loadBalancer

!/*.htm=loadBalancer

!/*.html=loadBalancer

!/*.mid=loadBalancer

!/*.jpeg=loadBalancer

!/*.txt=loadBalancer

!/*.mp3=loadBalancer

!/*.swf=loadBalancer

!/*.wmv=loadBalancer

!/*.zip=loadBalancer

!/*.rar=loadBalancer

!/*.pl=loadBalancer

e、在conf目录下创建workers.properties文件,该文件将告诉apache 每个负载均衡的tomcat

服务的运行参数,如机器名和端口号等。

-----------------------------------------workers.properties-------------------------------

#

# workers.properties

#

# list the workers by name

worker.list=loadBalancer

# ------------------------

# First tomcat server

# ------------------------

worker.tomcat11.port=11003

worker.tomcat11.host=202.202.202.15

worker.tomcat11.type=ajp13

# Specify the size of the open connection cache.

# worker.tomcat11.cachesize=1000

#

# Specifies the load balance factor when used with

# a load balancing worker.

# Note:

# ----> lbfactor must be > 0

# ----> Low lbfactor means less work done by the worker. worker.tomcat11.lbfactor=10

# ------------------------

# Second tomcat server

# ------------------------

worker.tomcat12.port=12003

worker.tomcat12.host=202.202.202.15

worker.tomcat12.type=ajp13

# Specify the size of the open connection cache.

# worker.tomcat12.cachesize=1000

#

# Specifies the load balance factor when used with

# a load balancing worker.

# Note:

# ----> lbfactor must be > 0

tomcat手动配置部署

Tomcat手动配置部署 刘晓涛讲授,孙娟总结 手动创建JSP项目 1.将外置Tomcat解压出来后,在Tomcat里面的webapps文件夹创建一个放JSP项目的文 件夹“MyWeb”,如图: 2.在“MyWeb”JSP项目中创建必须的WEB-INF文件夹,如图: 3.在WEB-INF文件夹中也要必须创建lib文件夹,classes文件夹与web.xml文件, 如图:

4.当我们创建好JSP项目必须的WEB-INF文件夹后,我们开始创建我们在项目中所需要 的静态文件,现在我们只创建一个jsp文件夹(此文件夹跟WEB-INF在同一目录下),用来存放jsp文件,如图: 5.在jsp文件夹中创建一个jsp文件,如图: 现在我们手动创建的JSP项目就创建成功了 如何将Tomcat中的文件进行修改 1.为了保护资源的安全,我们需要有用户通过验证才可以进入我们的程序,所以我们要将 Tomcat中的conf文件夹中的tomcat-users.xml文件进行修改,如图: 说明: Rolename:是角色 Username:用户名 Password:用户名的密码 整体讲:在XXX角色下,用户可以通过用户名及密码可以访问程序中的资源

修改完后,我们就有一个用户“shmily”可以进入程序了,密码是”shmily” 2.当我们设置了用户登陆后,我们还要返回到我们的JSP项目中去,修改我们的web.xml 文件,与我们刚刚设计好的用户登陆设置相关联,如图: 注意:有注释的地方都是需要修改的地方,也就是我们刚才在tomcat-users.xml中设置的角色名

现在我们就修改完成了,那么现在我们就开始运行我们的JSP项目了 如何运行JSP项目 1.在运行JSP项目之前我们要启动tomcat(在tomcat中的bin文件夹中的startup.bat),如 图: 2.启动完后,我们开始浏览器,输入http://localhose:8080/如图:

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

IP: Eth0:192.168.100.115 Eth1:192.168.100.215 Vi /etc/init.d./lvs #!/bin/sh # # lvs Start lvs # # chkconfig: 2345 08 92 # description: Starts, stops and saves lvs # SNS_VIP=192.168.100.215 SNS_RIP1=192.168.100.114 SNS_RIP2=192.168.100.113 . /etc/rc.d/init.d/functions #logger $0 called with $1 retval=0 start() { #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 -g touch /var/lock/subsys/ipvsadm > /dev/null 2 >&1 echo "ipvsadm started" } stop() { /sbin/ipvsadm -C /sbin/ipvsadm -Z #ifconfig eth0:0 down #route del $SNS_VIP rm -rf /var/lock/subsys/ipvsadm > /dev/null 2 >&1

tomcat集群

用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、MOSIX Beowulf类似于给系统安装的一个支持集群的外挂软件,提供了应用级的集群能力。而MOSIX 是彻底修改Linux的内核,从系统级提供了集群能力,它对应用而言是完全透明的,原有的应用程序,可以不经改动,就能正常运行在MOSIX系统之上。集群中的任何节点都可以自由地加入和移除,来接替其它节点的工作,或是扩充系统。MOSIX 使用自适应进程负载均衡和内存引导算法使整体性能最大化。应用程序进程可以在节点之间实现迁移,以利用最好

linux下tomcat的配置及项目的部署流程

Java的安装配置 1.在/etc/profile文件中配置相应的信息(如下) export JAVA_HOME=/usr/java/jdk1.6.0_20 export JRE_HOME=/usr/java/jdk1.6.0_20/jre export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH export PATH=$JAVA_HOME/bin:$PATH 2.是配置文件生效命令:Source /etc/profile 3.输入javac –version查看配置是否成功 TOMCAT安装配置 1.修改tomcat/bin文件夹下的catalina.sh文件,增加如下的内容: export JAVA_HOME=/usr/java/jdk1.5.0_08 export CLASSPATH=.:$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib export PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin export CATALINA_HOME=/usr/local/tomcat (红色可选部分) usr/local/tomcat/bin/catalina.sh start 在/etc/rc.d/rc.local中加入: /usr/local/tomcat/bin/startup.sh(实现自动启动) 2.修改tomcat/conf文件夹下的tomcat-users.xml文件,添加相应的用户角色(manager)及用户信息(用户名及密码),具体的添加详见文件中的模板:

Tomcat集群与负载均衡

Tomcat集群与负载均衡(转载) 在单一的服务器上执行WEB应用程序有一些重大的问题,当网站成功建成并开始接受大量请求时,单一服务器终究无法满足需要处理的负荷量,所以就有点显得有点力不从心了。另外一个常见的问题是会产生单点故障,如果该服务器坏掉,那么网站就立刻无法运作了。不论是因为要有较佳的扩充性还是容错能力,我们都会想在一台以上的服务器计算机上执行WEB应用程序。所以,这时候我们就需要用到集群这一门技术了。 在进入集群系统架构探讨之前,先定义一些专门术语: 1. 集群(Cluster):是一组独立的计算机系统构成一个松耦合的多处理器系统,它们之间通过网络实现进程间的通信。应用程序可以通过网络共享内存进行消息传送,实现分布式计算机。 2. 负载均衡(Load Balance):先得从集群讲起,集群就是一组连在一起的计算机,从外部看它是一个系统,各节点可以是不同的操作系统或不同硬件构成的计算机。如一个提供Web服务的集群,对外界来看是一个大Web服务器。不过集群的节点也可以单独提供服务。 3. 特点:在现有网络结构之上,负载均衡提供了一种廉价有效的方法扩展服务器带宽和增加吞吐量,加强网络数据处理能力,提高网络的灵活性和可用性。集群系统(Cluster)主要解决下面几个问题: 高可靠性(HA):利用集群管理软件,当主服务器故障时,备份服务器能够自动接管主服务器的工作,并及时切换过去,以实现对用户的不间断服务。 高性能计算(HP):即充分利用集群中的每一台计算机的资源,实现复杂运算的并行处理,通常用于科学计算领域,比如基因分析,化学分析等。 负载平衡:即把负载压力根据某种算法合理分配到集群中的每一台计算机上,以减轻主服务器的压力,降低对主服务器的硬件和软件要求。 目前比较常用的负载均衡技术主要有: 1. 基于DNS的负载均衡 通过DNS服务中的随机名字解析来实现负载均衡,在DNS服务器中,可以为多个不同的地址配置同一个名字,而最终查询这个名字的客户机将在解析这个名字时得到其中一个地址。因此,对于同一个名字,不同的客户机会得到不同的地址,他们也就访问不同地址上的Web服务器,从而达到负载均衡的目的。 2. 反向代理负载均衡(如Apache+JK2+Tomcat这种组合) 使用代理服务器可以将请求转发给内部的Web服务器,让代理服务器将请求均匀地转发给多台内部Web服务器之一上,从而达到负载均衡的目的。这种代理方式与普通的代理方式有所不同,标准代理方式是客户使用代理访问多个外部Web服务器,而这种代理方式是多个客户使用它访问内部Web服务器,因此也被称为反向代理模式。 3. 基于NAT(Network Address Translation)的负载均衡技术(如Linux Virtual Server,简称LVS)

自动化运维项目总结报告

自动化运维系统研发项目 总结报告 一、项目背景 随着信息时代的持续发展,IT运维已经成为IT服务内涵中重要的组成部分。面对越来越多复杂的业务、多样化的用户需求,不断扩展的IT应用需要越来越合理的模式来保障IT服务能灵活便捷、安全稳定地持续保障,从初期的几台服务器发展到庞大的数据中心,单靠人工已无法满足在技术、业务、管理等方面的需求,那么标准化、自动化、架构优化、过程优化等降低IT服务成本的因素越来越被广大行业客户重视。 二、自动化运维研发阶段性 经过对市场背景的分析,在公司高层资源的支持下,2016年7月完成项目立项及成立研发项目团队,12月已完成初步框架认定工作,在对市场需求、业务环境调研过程中,认为自动化运维需满足架构独立、部署友好、可运维性、容错容灾、质量监控、性能成本、用户体验等特点。项目组经过半年的研发努力,项目研发有了阶段性的突破成果。 2.1架构独立 任何架构的产生都是为了满足特定的业务诉求,如果我们在满足

业务需求的同时,能够兼顾运维对架构管理的非功能性要求。那么我们有理由认为这样的架构是对运维友好的。站在运维的角度,所诉求的架构独立包含四个方面:独立部署、独立测试、组件规范、技术解耦等。 2.2部署友好 希望从端到端打通开发、测试、运维的所有技术环节,以实现快速部署和交付价值的目标。实现高效可靠的部署能力,要做好全局规划,要保证部署以及运营阶段的全方位运维掌控,从以上要求分析,有五个维度是对部署友好相关的:CMDB配置、环境配置、依赖管理、部署方式、发布自测等。 2.3可运维性 运维从脑海中是最理想的服务架构,首先想到的事可运维性强的那种类型。不具可运维的应用或架构,对运维团队带来的不仅仅是难题,还有阻止运维人员职业发展前进堵绊脚石,因为维护一个没有可运维性的架构,简直就是在浪费运维人员的时间。因为可运维性按操作和管理规范应归纳为以下几点:配置管理、版本管理、标准操作、进程管理、空间管理、日志管理、集中管控等。 2.4容错容灾 运维的四大职责:质量、效率、成本、安全。安全是一个运维团队首要保障的,运维人员立项的高可用架构设计应该包含以下几点:

多台服务器tomcat集群

多台服务器tomcat集群 集群背景介绍 1.1 术语定义 服务软体是b/s或c/s结构的s部分,是为b或c提供服务的服务性软件系统。服务硬体指提供计算服务的硬件、比如pc机、pc服务器。服务实体通指服务软体和服务硬体。客户端指接受服务实体服务的软件或硬件。 1.2 两大关键特性 集群是一组协同工作的服务实体,用以提供比单一服务实体更具扩展性与可用性的服务平台。在客户端看来,一个集群就象是一个服务实体,但事实上集群由一组服务实体组成。与单一服务实体相比较,集群提供了以下两个关键特性: 可扩展性--集群的性能不限于单一的服务实体,新的服务实体可以动态地加入到集群,从而增强集群的性能。 高可用性--集群通过服务实体冗余使客户端免于轻易遇到out of service的警告。在集群中,同样的服务可以由多个服务实体提供。如果一个服务实体失败了,另一个服务实体会接管失败的服务实体。集群提供的从一个出错的服务实体恢复到另一个服务实体的功能增

强了应用的可用性。 1.3 两大能力 为了具有可扩展性和高可用性特点,集群的必须具备以下两大能力:负载均衡--负载均衡能把任务比较均衡地分布到集群环境下的计算和网络资源。 错误恢复--由于某种原因,执行某个任务的资源出现故障,另一服务实体中执行同一任务的资源接着完成任务。这种由于一个实体中的资源不能工作,另一个实体中的资源透明的继续完成任务的过程叫错误恢复。 负载均衡和错误恢复都要求各服务实体中有执行同一任务的资源存在,而且对于同一任务的各个资源来说,执行任务所需的信息视图(信息上下文)必须是一样的。 1.4 两大技术 实现集群务必要有以下两大技术: 集群地址--集群由多个服务实体组成,集群客户端通过访问集群的集群地址获取集群内部各服务实体的功能。具有单一集群地址(也叫单一影像)是集群的一个基本特征。维护集群地址的设置被称为负载均衡器。负载均衡器内部负责管理各个服务实体的加入和退出,外部负责集群地址向内部服务实体地址的转换。有的负载均衡器实现真正的负载均衡算法,有的只支持任务的转换。只实现任务转换的负载均

FineReport关于tomcat集群部署的方案

FineReport关于tomcat集群部署的方案

多台服务器集群后,配置权限、数据连接、模板、定时调度等,只能每台服务器一个个配置,不会自动同步到所有服务器。 针对上述情况,在FineReport中提供新集群部署插件,将xml配置文件、finedb/logdb 数据(定时任务、报表目录管理、批量导入、统计信息)的修改都对主机生效。其他辅机的信息读取也都从主机读取,保证了数据同步。 实现了灾备,即主机当即后,次主机会上位接替主机的工作,保证系统正常运作。 同时还增加了集群灾备之文件同步,会将主机的finedb、xml、模板、jar包、插件等等备份到其他节点的应用上。支持可以手动同步和自动同步。 插件介绍 设计器插件、服务器插件安装好之后,新集群部署,有主机、次主机、辅机之分,配置文件都从主机读取,辅机只能用作计算引擎分担压力,有点事当改配置文件的时候,不需要每个节点都去修改,直接改主机即可。 分布式集群 分布式集群文件系统:每台计算机各自提供自己的存储空间,并各自协调管理所有计算机节点中的文件。 这里测试修改主机的报表管理目录树平台标题,然后可以看到辅机会同步修改的配置。其中报表管理目录树存在finedb中,平台样式的平台标题存在fsconfig.xml中。 ?环境准备设置tomcat1、tomcat2、tomcat3集群,tomcat1为主机,tomcat2为辅机,tomcat3为次主机,tomcat集群。 WebReport工程分别放在tomcat下的webapps文件夹里 配置文件集群配置完成之后,修改将配置包resource文件夹下的cluster.xml打 开,如果没有这个文件的话,就新建一个,基本内容如下:

Java Web项目开发总结

1、In Action (1)根据添加信息(insert)来考虑表中的字段,进行建表。使用PD画出ER图。要注意字段的数据类型的确定以及建表要满足三范式,减少数据冗余; (2)表建好后,根据表中各个字段来建pojo中的属性。要注意属性的数据类型和字段的数据类型要一致; (3)根据pojo中的属性确定bean的属性,直接拷贝即可,用于页面展示。在bean中,统一使用String类型变量接收前台页面传递的参数;每个HTML表单对应一个bean。HTML 表单中的字段和bean中的属性一一对应。 (4)自顶向下,依次定出action、manager、dao。先写出轮廓,跑通整个流程,再写具体实现,一点点累加,便于调试错误; (5)根据数据实体和具体业务逻辑,使用StarUML画类图,进行OOA和OOD,灵活运用设计模式。 (6)API命名: CRUD:add,get,update,delete,[list] 严格区分单复数形式,单数表示对象,复数表示对象集合。 对象、属性最好单个单词。 (7)前后台都要校验。 (8)按照资源方式组织数据接口,对前端开发帮助很大。即通过REST来实现资源的增、删、改、查。 (9)软件开发,思路最重要!代码开发多了,思路就有了。 a、一个版本一个版本递增的开发;每个版本增加一点内容; b、总结开发思路;第一步怎么做,下一步怎么做? c、用文档记录开发的思路,即第一个版本开发实现了什么功能以及开发步骤,下一个版本实现了什么功能等等?

d、程序员进行程序开发时,不要仅仅停留在代码,要深入到底层的运行机制,才可以对程序的运行机制有更准备的把握; (10)网页模板 request到template.jsp文件(此文件假设包括三个部分,即title、banner、body) web客户——> title banner———————>include:banner.jsp body————————>include:showcart.jsp (11)一步一步的定位。根据结果进行分析。 (12)分页控件 假分页: 基本思想是将所有的数据从数据库中取出,只显示有用的部分。靠的是程序的算法,实际上就是在ResultSet上进行操作。 真分页:(数据库中的一种实现) 任何数据库都会提供分页的函数操作:Oracle、MySQL(limit,即limit 开始的记录, 要查询的行数)、SQL Server(top) 基本思想是在数据库中编写特定的SQL语句。程序中只读取有用的部分,没用的部分不会加载到内存中。 (13) 2、TIPS

通过Terracotta实现基于Tomcat的Web应用集群

本文介绍如何配置Tomcat和Terracotta服务器将普通的Web应用部署到集群中,实现跨Tomcat节点的session复制,以达到负载均衡、提高系统吞吐量和灾难恢复的效果。 基本原理简介 一般利用Tomcat搭建Web应用集群有如下几种方法: 1、利用负载均衡器的粘session的方式把所有同一session的请求都发送到相同的Tomcat节点。这样不同用户的请求就被平均分配到集群中各个tomcat节点上,实现负载均衡的能力。这样做的缺点是没有灾难恢复的能力。一旦一个节点发生故障,这个节点上所有的session信息全部丢失; 2、利用Tomcat session复制的机制使得所有session在所有Tomcat节点中保持一致。当一个节点修改一个session数据的时候,该节点会把这个session的所有内容序列化,然后广播给所有其它节点。这样当下一个用户请求被负载均衡器分配到另外一个节点的时候,那个节点上有完备的session信息可以用来服务该请求。这种做法的问题是对session哪怕有一点点修改,也要把整个sessions数据全部序列化(serialize),还要广播给集群中所有节点,不管该节点到底需不需要这个session。这样很容易会造成大量的网络通信,导致网络阻塞。一般采用这种方式,当Tomcat节点超过4个时候,整个集群的吞吐量就不能再上升了; 3、第三种方式是通过cookie保存用户信息的一个或几个关键字,每一个http请求到达web应用的时候,web程序拿这个关键字到数据库中读取相关的数据,然后对其进行处理。也就是说把session数据保存到了数据库中。这样以来在内存中的session就完全不需要了。这样做的缺点就是加大了数据库的负载,使得数据库变成了集群的瓶颈。而通过构造数据库集群提高负载能力往往需要高额的成本。 Terracotta的基本原理是对于集群间共享的数据,当在一个节点发生变化的时候,Terracotta只把变化的部分发送给Terracotta服务器,然后由服务器把它转发给真正需要这个数据的节点。这样对网络的压力就非常小,各个节点也不必浪费CPU时间和内存进行大量的序列化操作。把这种集群间数据共享的机制应用在session同步上,相当于对tomcat第二种集群实现机制进行了优化,既避免了对数据库的依赖,又能达到负载均衡和灾难恢复的效果。在对比测试中,采用Terracotta搭建Tomcat集群,节点达到8个时候,整个集群的吞吐量还一直是线性增长的。 为了方便使用Terracotta搭建Tomcat集群,Terracotta提供了专门的插件tim-tomcat。下面将对集群的搭建进行详细描述。 准备工作 首先需要下载如下软件: Apache Tomcat 目前Terracotta官方支持的Tomcat版本为: Apache Tomcat Apache Tomcat Apache Tomcat Terracotta 或更高版本 安装过程 在所有机器上安装Java 请参考目前支持的软硬件平台 在所有机器上安装Terracotta 选一台机器作为Terracotta服务器

windows下Tomcat负载均衡和集群配置

轻松实现Apache,Tomcat集群和负载均衡 作者:罗代均 ldj_work#https://www.360docs.net/doc/2e5925597.html,,转载请保持完整性 0,环境说明 Apache :apache_2.0.55 1 个 Tomcat: apache-tomcat-5.5.17 (zip版) 2个 mod_jk:: mod_jk-apache-2.0.55.so 1个 第一部分:负载均衡 负载均衡,就是apache将客户请求均衡的分给tomcat1,tomcat2....去处理 1.安装apche,tomcat https://www.360docs.net/doc/2e5925597.html,/下载Apache 2.0.55 https://www.360docs.net/doc/2e5925597.html,/download-55.cgi下载tomcat5.5 zip版本(解压即可,绿色版) https://www.360docs.net/doc/2e5925597.html,/tomcat/tomcat-connectors/jk/binaries/win32/jk-1.2.15/下载mod_jk,注意和 apache版本匹配 按照jdk,我的路径为:E:\ide\apache\Apache2 解压两份Tomcat, 路径分别为 E:\ide\tomcat1,E:\ide\tomcat2

下载mod_jk

2.修改Apache配置文件http.conf 在apache安装目录下conf目录中找到http.conf 在文件最后加上下面一句话就可以了 include "E:\ide\apache\Apache2\conf\mod_jk.conf"

2. http.conf 同目录下新建mod_jk.conf文件,内容如下 #加载mod_jk Module LoadModule jk_module modules/mod_jk-apache-2.0.55.so #指定 workers.properties文件路径 JkWorkersFile conf/workers.properties #指定那些请求交给tomcat处理,"controller"为在workers.propertise里指定的负载分配控制器JkMount /*.jsp controller 3.在http.conf同目录下新建 workers.properties文件,内容如下 worker.list = controller,tomcat1,tomcat2 #server 列表 #========tomcat1======== worker.tomcat1.port=8009 #ajp13 端口号,在tomcat下server.xml配置,默认8009 worker.tomcat1.host=localhost #tomcat的主机地址,如不为本机,请填写ip地址 worker.tomcat1.type=ajp13 worker.tomcat1.lbfactor = 1 #server的加权比重,值越高,分得的请求越多 #========tomcat2======== worker.tomcat2.port=9009 #ajp13 端口号,在tomcat下server.xml配置,默认8009 worker.tomcat2.host=localhost #tomcat的主机地址,如不为本机,请填写ip地址 worker.tomcat2.type=ajp13 worker.tomcat2.lbfactor = 1 #server的加权比重,值越高,分得的请求越多

Tomcat部署项目时启动报错总结

Tomcat部署项目时启动报错总结 1、虚拟机报错端口被占用 tomcat的默认端口是8080(或者其他自己设置的),可能已经被其他占用。 解决方法:在tomcat安装路径下conf文件夹中的server.xml中把断口号改掉!如果一台机 器上使用多个tomcat,则改掉所有相关的端口避免重复了,包括想如下 在server.xml中找到如下地方改掉port的值 ● ●(改完后看看和本机上正在用 的tomcat是不是有重复的port) 2、tomcat的启动窗口一闪而过 Tomcat启动的dos窗口一闪而过,如何看出错信息? 在DOS窗口运行STARTUP.BAT文件, 另外,吧startup.bat文件最后的 call "%EXECUTABLE%" start %CMD_LINE_ARGS% 改成: call "%EXECUTABLE%" run %CMD_LINE_ARGS% 分析原因1:jdk的环境变量没有配置好 解决方法:检查jdk环境变量的配置是否正确,或者重新配置jdk的系统环境变量JDK环境变量配置的步骤如下: 1.我的电脑-->属性-->高级-->环境变量. 2.配置用户变量: a.新建JAVA_HOME C:\Program Files\Java\j2sdk1.5.0(JDK的安装路径) b.新建 PATH (注意:把java的配置放在path的最前面) %JAVA_HOME%\bin;%JAVA_HOME%\jre\bin c.新建CLASSPATH .;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar 3.测试环境变量配置是否成功: 开始-->运行--〉CMD 键盘敲入:JAVAC JAVA 出现相应的命令,而不是出错信息,即表示配置成功! 环境变量配置的理解: 1. PATH环境变量。作用是指定命令搜索路径,在i命令行下面执行命令如javac编译java程序时,它会到PATH变量所指定的路径中查找看是否能找到相应的命令程序。我们需要把jdk安装目录下的bin 目录增加到现有的PATH变量中,bin目录中包含经常要用到的可执行文件如javac/java/javadoc等待,设置好PATH变量后,就可以在任何目录下执行javac/java等工具了。 2. CLASSPATH环境变量。作用是指定类搜索路径,要使用已经编写好的类,前提当然是能够找到它们了,JVM就是通过CLASSPTH来寻找类的。我们需要把jdk安装目录下的lib子目录中的dt.jar和tools.jar设置到CLASSPATH中,当然,当前目录“.”也必须加入到该变量中。 3. JAVA_HOME环境变量。它指向jdk的安装目录,Eclipse/NetBeans/Tomcat等软件就是通过搜索JAVA_HOME变量来找到并使用安装好的jdk。

nginx负载均衡tomcat集群 memcache共享session

nginx负载均衡tomcat集群memcache共享session 分类:nginx2011-03-05 20:521319人阅读评论(1)收藏举报 要集群tomcat主要是解决SESSION共享的问题,因此我利用memcached来保存session, 多台TOMCAT服务器即可共享SESSION了。 你可以自己写tomcat的扩展来保存SESSION到memcached。 这里推荐使用memcached-session-manager这个开源项目 [url]https://www.360docs.net/doc/2e5925597.html,/p/memcached-session-manager/ [/url],下面简称msm。 如何安装nginx、memcached、tomcat这些就不多说了。 先说明一下测试环境: tomcat1、nginx、memcached安装在192.168.1.11 tomcat2安装在192.168.1.101 下面分步实现基于nginx的tomcat负载均衡和集群配置 一,tomcat集群 1,先下载msm及其依赖包 [url] https://www.360docs.net/doc/2e5925597.html,/files/memcached-session-manager-1.3.0.jar [/url] [url] https://www.360docs.net/doc/2e5925597.html,/files/msm-javolution-serializer-jodatime-1.3. 0.jar[/url] [url] https://www.360docs.net/doc/2e5925597.html,/files/msm-javolution-serializer-cglib-1.3.0.jar [/url] [url] https://www.360docs.net/doc/2e5925597.html,/files/memcached-2.4.2.jar [/url] [url] https://www.360docs.net/doc/2e5925597.html,/files/javolution-5.4.3.1.jar [/url] 2,将这5个包放到$TOMCAT_HOME/lib目录下 3,修改$TOMCAT_HOME/conf/server.xml 1] 2 2 .

Nginx Tomcat 配置负载均衡集群

一、Hello world 1、前期环境准备 1.准备两个解压版tomcat,如何同时启动两个tomcat,请看我的另一篇文章《一台机 器同时启动多个tomcat》。 2.nginx官网下载解压版nginx。 3.创建一个简单的web项目。为了直观的区分访问的哪个tomcat,在页面写上标记 8081、8082。 [MISSING IMAGE: , ] 4.分别部署到对应的tomcat下。如图: [MISSING IMAGE: , ] [MISSING IMAGE: , ] 2、配置nginx 进入nginx-1.10.1conf路径,修改配置文件nginx.conf。 1、配置服务器组,在http{}节点之间添加upstream配置。(注意不要写localhost,不然访问速度会很慢) upstream nginxDemo { server 127.0.0.1:8081; #服务器地址1 server 127.0.0.1:8082; #服务器地址2

2、修改nginx监听的端口号80,改为8080。 server { listen 8080; ...... } 3、在location{}中,利用proxy_pass配置反向代理地址;此处“http://”不能少,后面的地址要和第一步upstream定义的名称保持一致。 location / { root html; index index.html index.htm; proxy_pass http://nginxDemo; #配置方向代理地址 } 如下图: [MISSING IMAGE: , ] 3、启动nginx和tomcat,访问 我是Windows系统,所以直接在nginx-1.10.1目录下双击nginx.exe即可。 可在任务管理器中查看

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

Apache+tomcat集群+session复制 作者:吴钢奇 时间:2010/09/23 MSN:w7374520@https://www.360docs.net/doc/2e5925597.html, 目标:在服务器上搭建1个apache+4个tomcat应用,tomcat之间实现session复制。Tomcat解析所有的网页,apache此刻的作用就是做代理。参考了很多网上好文档,非常感谢前人无私奉献,谢谢! 1、环境 硬件:一个四核3.0CPU,4G内存,200GSATA硬盘 系统:Redhat AS 5.3 源码包下载: 1、Httpd下载 https://www.360docs.net/doc/2e5925597.html,/apache//httpd/httpd-2.2.16.tar.gz 2、Tomcat下载 https://www.360docs.net/doc/2e5925597.html,//tomcat/tomcat-7/v7.0.2-beta/bin/apache-tomcat- 7.0.2.tar.gz 3、mod_jk 下载地址: https://www.360docs.net/doc/2e5925597.html,/dist/tomcat/tomcat-connectors/jk/source/jk- 1.2.30/tomcat-connectors-1.2.30-src.tar.gz 2、安装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 #安装

linux下TOMCAT集群(proxy)安装文档

Linux下TOMCAT集群安装文档 1版本 Apache:httpd-2.2.21 Tomcat:apache-tomcat-6.0.18 2集群方式 使用Apache R-proxy方式 3 TOMCAT安装 上传apache-tomcat-6.0.18到服务器 Cd apache-tomcat-6.0.18 mkdir logs chmod 755 logs cd bin chmod 755 *.sh 启动:./startup.sh 关闭:./shutdown.sh 4 apache安装(源码安装方式) cd /usr/local/ mkdir apache2.2.21 上传httpd-2.2.21.tar.gz到服务器路径下 tar -zxvf httpd-2.2.21.tar.gz ./configure --prefix=/usr/local/apache2.2.21 --enable-mods-shared=most Make(编译) make install(安装)

5配置httpd.conf(假设需要更改监听的端口) 以下是列出两个需要修改的地方: ServerName 127.0.0.1:9008 Listen 9008 6启动 cd apache2.2.21/bin/ ./apachectl start 在浏览器中输入http://127.0.0.1/ 就可以看到 It works! 7安装mod_proxy.so和mod_proxy_ajp.so,mod_proxy_balancer .so模块 Cd /usr/local/apache2.2.21/httpd-2.2.21/modules/proxy /usr/local/apache2.2.21/bin/apxs -i -a -c mod_proxy.c proxy_util.c /usr/local/apache2.2.21/bin/apxs -i -a -c mod_proxy_ajp.c ajp*.c /usr/local/apache2.2.21/bin/apxs -i -a -c mod_proxy_balancer.c 安装成功后,可以到/usr/local/apache2.2.21/conf 查看文件httpd.conf 是否安装成功 LoadModule proxy_module modules/mod_proxy.so LoadModule proxy_ajp_module modules/mod_proxy_ajp.so LoadModule proxy_balancer_module modules/mod_proxy_balancer.so 8配置httpd.conf集群 #snail add 20111027 proxy配置信息

Tomcat6+Apache2.2集群配置说明文档

Tomcat6+Apache2.2集群配置说明文档 yysy2000@https://www.360docs.net/doc/2e5925597.html, 2009-7-24 准备工作: 注:可点击链接直接下载相应的文件。 JDK 免述,这个要是搞不定,直接回家种地吧。本文使用1.6.0_13 Tomcat版本号:apache-tomcat-6.0.18.zip Apache版本号:apache_2.2.11-win32-x86-openssl-0.9.8i 另外:tomcat-connectors-1.2.28-src.zip(apache网站tomcat项目下有下载)mod_jk-1.2.28-httpd-2.2.3.so(2.2.3适合于apache2.2.x版本) 程序安装: 1.正常安装apache(默认安装到C:\Program Files\Apache Software Foundation\Apache 2.2 目录下) 2.解压缩apache-tomcat-6.0.18.zip到C:\Program Files\Apache Software Foundation\Tomcat6.0目录下,解压完毕后,重命名tomcat6.0_1, 3.复制tomcat6.0_1文件夹,重命名为tomcat6.0_2 4.拷贝mod_jk-1.2.28-httpd-2.2.3.so 到Apache2.2/modules目录下 5.解压tomcat-connectors-1.2.28-src.zip,拷贝tomcat-connectors-1.2.28-src\conf文件夹中的 workers.properties 到Apache2.2/conf 目录下(该文件中配置用于集群的Tomcat信息) tomcat配置: 注:以下配置使用端口号可自行定义,只要不和系统中已经使用的端口号冲突即可。 1.conf文件夹下的server.xml文件作如下修改: 1)更正SHUTDOWN端口(两个tomcat分别使用8005和8006) 2)HTTP1.1的connector可以关闭不使用(由apache调度),也可以不关闭(亦可访 问响应端口,即不通过apache调度,设定的端口不应与其他端口重复)。 3)更正AJP1.3端口(两个tomcat分别使用8090和8091),redirectPort亦应不同(分 别使用8443和8444)。 4)替换原来的engine标签,设置jvmRoute的路径以支持通过AJP的负载均衡(不同

相关文档
最新文档