`
iwindyforest
  • 浏览: 235824 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Apache Tomcat负载平衡 mod_jk配置workers.properties

 
阅读更多

集群(Cluster)

所谓集群是指一组独立的计算机系统构成的一个松耦合的多处理器系统,它们之间通过网络实现进程间的通信。应用程序可以通过网络共享内存进行消息传送,实现分布式计算机。
负载均衡(Load Balance)
网络的负载均衡是一种动态均衡技术,通过一些工具实时地分析数据包,掌握网络中的数据流量状况,把任务合理均衡地分配出去。这种技术基于现有网络结构,提供了一种扩展服务器带宽和增加服务器吞吐量的廉价有效的方法,加强了网络数据处理能力,提高了网络的灵活性和可用性。

特点

(1)高可靠性(HA)。利用集群管理软件,当主服务器故障时,备份服务器能够自动接管主服务器的工作,并及时切换过去,以实现对用户的不间断服务。
(2)高性能计算(HP)。即充分利用集群中的每一台计算机的资源,实现复杂运算的并行处理,通常用于科学计算领域,比如基因分析、化学分析等。
(3)负载平衡(LB)。即把负载压力根据某种算法合理分配到集群中的每一台计算机上,以减轻主服务器的压力,降低对主服务器的硬件和软件要求。

Linux集群主要分成三大类( 高可用集群, 负载均衡集群,科学计算集群)
高可用集群( High Availability Cluster)
    常见的就是2个节点做成的HA集群,有很多通俗的不科学的名称,比如"双机热备", "双机互备", "双机".高可用集群解决的是保障用户的应用程序持续对外提供服务的能力。 (请注意高可用集群既不是用来保护业务数据的,保护的是用户的业务程序对外不间断提供服务,把因软件/硬件/人为造成的故障对业务的影响降低到最小程度)
负载均衡集群(Load Balance Cluster)   
科学计算集群(High Performance Computing Cluster)
 
对请求的处理又有两种不同的方式:负载平衡、状态复制(即集群).
1. 负载平衡:
每台服务器都是独立的,只是对请求的负载进行平衡,而不对状态(SESSION)进行复制。
2. 状态复制(集群):先进行负载平衡,再在各服务器间复制应用状态。

 

一种是把所有Session数据放到一台服务器上或者数据库中,集群中的所有节点通过访问这台Session服务器来获取数据;

另一种就是在集群中的所有节点间进行Session数据的同步拷贝,任何一个节点均保存了所有的Session数据。


        对于tomcat的集群有两种方式,这个主要是针对session而言的。

       一种就是sticky模式,即黏性会话模式。所谓sticky模式就是说同一个用户的访问请求都被派送到同一个tomcat实例上,这样我们就无须在多台服务器之间实现session共享了,这是其好处,不好的地方就是不能实现failureover了,一但用户访问的机器挂掉,那么其session就会丢失。

 

 

表示从同一窗口发来的请求都将有集群中的同一个tomcat进行处理。配置方式是在上面workers.properties文件中

Xml代码
worker.lbcontroller.sticky_session=True  
worker.lbcontroller.sticky_session=True

粘性session的好处在不会在不同的tomcat上来回跳动处理请求,但是坏处是如果处理该session的tomcat崩溃,那么之后的请求将由其 他tomcat处理,原有session失效而重新新建一个新的session,这样如果继续从session取值,会抛出nullpointer的访问 异常。

 

mod_jk配置workers.properties

 

1 :true;0:false
worker.controller.sticky_session=1
worker.controller.sticky_session_force=0

一次请求中 session 只会在一个tomcat上,当该tomcat奔溃后,请求会跳转到其他tomcat上,但是其session不会复制到跳转后的tomcat上

worker.controller.sticky_session=0
worker.controller.sticky_session_force=0

每次请求都会跳转到其他tomcat上,(如果有AB两个tomcat负载均衡值都为1,第一次请求A session为A1,第二次请求跳转到B session B2,第三次又回到A session为 A1 和 A3,第四次跳转到B session 为 B2 和 B4

worker.controller.sticky_session=1
worker.controller.sticky_session_force=1

一次请求中 session 只会在一个tomcat上,当该tomcat奔溃后,服务端会返回Service Temporarily Unavailable:The server is
temporarily unable to service your request due to maintenance downtime or capacity problems. Please try again later.

worker.controller.sticky_session=0
worker.controller.sticky_session_force=1

每次请求都会跳转到其他tomcat上,(如果有AB两个tomcat负载均衡值都为1,第一次请求A session为A1,第二次请求跳转到B session B2,第三次又回到A session为A3,第四次跳转到B session  B4,即每次跳转都不会带上session,也不会保留原有的session.

 

 

 

 

另外一种就是session复制模式了。session复制模式就可以很好的解决failureover的问题,即使某一台web服务器挂掉了,用户的请求还会被负载到其他的web服务器上,而且session也被复制了,这样对用户而言就像是在同一台机器上操作一样,不好的地方就是session复制需要系统资源和网络的开销,尤其是当web服务器多的时候或session里存储的数据量大的时候,这点将会比较的明显(不过自己还没有做这方面的测试)。

       针对这两种方式的弊端和好处,我们可以采用将两种方式结合的方式来达到更好的效果,那就是sticky+session复制模式了。用户的请求按照 sticky方式被分发到同一个web服务器上,同时tomcat在后台做异步复制(非同步)session到其他web服务器,这样我们使用 sticky的简便性,同时又有了一定的容错能力。

 

 

分享到:
评论

相关推荐

    Apache2.4服务器+mod_jk.so

    4. **配置mod_jk**:创建一个新的配置文件,例如`workers.properties`,定义Apache与Tomcat之间的连接。在该文件中,我们会指定Tomcat实例的IP地址、端口以及工作线程数等信息。 5. **配置虚拟主机**:在`httpd-...

    apache_2.2.4.mis + mod_jk-apache-2.2.4.so集群配置必备软件

    4. **workers.properties** 和 **workers.properties.bak**:这两个文件都涉及到mod_jk的工作线程配置。workers.properties是实际的配置文件,定义了Tomcat实例(或任何其他JK支持的应用服务器)的信息,包括名称、...

    Apache+Tomcat+mod_jk+mod_ssl配置笔记

    在配置Apache与Tomcat的连接时,我们需要在httpd.conf中添加mod_jk的配置,例如启用mod_jk模块,设置worker定义(这将在workers.properties文件中详细描述)以及虚拟主机或路径的重定向规则。 接下来,workers....

    mod_jk各个版本 apache与tomcat 整合

    ### mod_jk 各个版本及 Apache 与 Tomcat 的整合方法 在 IT 行业中,Apache 和 Tomcat 的整合是非常常见的需求之一。通过使用 mod_jk 这一模块,我们可以实现 Apache 和 Tomcat 之间的高效通信。mod_jk 是一个负载...

    apache2 通过mod_jk与tomcat配置

    接着,创建`/etc/apache2/mod_jk/workers.properties`文件,定义worker配置,例如: ``` worker.list=worker1 worker.worker1.type=ajp13 worker.worker1.host=localhost worker.worker1.port=8009 worker.worker1....

    apache + tomcat + mod_jk集群

    4. **配置mod_jk**:在Apache的配置文件httpd.conf中,添加mod_jk的LoadModule语句,然后创建一个名为workers.properties的文件,定义Tomcat集群的服务器实例。每个实例包括IP地址、端口、工作目录等信息。 5. **...

    mod_jk-new.rar

    【标题】"mod_jk-new.rar" 涉及的核心知识点是Apache服务器的负载均衡模块——mod_jk,以及其在Apache 2.4.x版本中的应用,特别是针对Apache 2.4.39这个具体版本。这个压缩包包含的是mod_jk.so,这是一个动态链接库...

    apache2.4+tomcat7+mod_jk.so_整合配置

    Apache 2.4 和 Tomcat 7 的整合配置主要依赖于 mod_jk 模块,这是一个 Apache HTTP 服务器的模块,用于与 Tomcat 进行负载均衡和通信。`mod_jk.so` 是该模块的动态链接库文件,用于在 Apache 和 Tomcat 之间建立连接...

    mod_jk.so和apache

    现在,Apache已经配置好`mod_jk`模块,可以处理来自Web客户端的JSP和Servlet请求,并将这些请求转发给Tomcat处理。这种架构使得你可以方便地进行负载均衡,只需在`workers.properties`中添加更多工作线程,即可将...

    整合apache与tomcat所需要的模块,各版本mod_jk

    4. **配置`mod_jk`**:创建一个名为`workers.properties`的文件,定义Tomcat服务器实例(worker),包括IP地址、端口和工作模式等信息。 5. **配置虚拟主机**:在Apache的虚拟主机配置中,使用`JkMount`指令将动态...

    tomcat集群配置所需要的apache和mod_jk-apache-2.0.55.so

    3. **配置mod_jk**:创建一个名为worker.properties的文件,定义Tomcat服务器的工作节点(workers)。例如: ``` worker.list=worker1,worker2 worker.worker1.type=ajp13 worker.worker1.host=localhost ...

    整合Apache和Tomcat的mod_jk

    本文件将详细介绍如何配置mod_jk来实现Apache与Tomcat的集成。 mod_jk是Apache HTTP服务器的一个模块,它负责管理和调度到Tomcat实例的请求。这个模块通过一个名为JKMount的指令将URL映射到Tomcat的特定上下文路径...

    mod_jk.so文件

    2. **配置httpd.conf**:编辑Apache的主配置文件`httpd.conf`,添加`LoadModule`指令来加载mod_jk模块,如: ``` LoadModule jk_module modules/mod_jk.so ``` 3. **设置JKMount**:定义哪些URL由mod_jk处理。...

    Apache集群配置(mod_jk)

    3. 创建`mod_jk.conf`文件:在`httpd.conf`同级目录下创建此文件,加载mod_jk模块,指定`workers.properties`文件路径,并设置哪些URL请求应由Tomcat处理,例如`JkMount /*.jsp controller`。 4. 配置`workers....

    RedHat_linux+apache+tomcat+mod_jk_负载均衡安装说明

    ### RedHat Linux + Apache + Tomcat + Mod_jk 负载均衡安装步骤详解 #### 系统环境准备与配置 在开始安装之前,我们首先需要确保系统环境满足以下要求: 1. **操作系统:** Red Hat Linux 9.0 2. **软件版本:**...

    Apache2.2.4 And mod_jk-apache-2.2.4.so

    2. 配置mod_jk:将mod_jk-apache-2.2.4.so文件放到Apache的modules目录下,然后在Apache的配置文件httpd.conf中加载该模块,通过`LoadModule jk_module modules/mod_jk.so`命令。 3. 配置JK工作线程:在httpd.conf中...

    apache2.2 服务器 mod_jk.so

    `mod_jk.so`的使用使得Apache和Tomcat的整合更加灵活,可以根据需求进行负载均衡配置,提高系统的可用性和响应速度。同时,由于它支持AJP协议,可以有效减少网络传输的数据量,提高性能。然而,需要注意的是,随着...

    mod_jk(包含apache2.4.x和apache2.2.x的两种版本)

    **Apache mod_jk模块详解与Tomcat集群配置** Apache mod_jk是Apache HTTP服务器的一个模块,主要用于连接Apache和Tomcat,实现两者之间的通信。在Java应用服务器领域,Tomcat广泛用作Servlet和JSP容器,而Apache则...

    Apache+mod_jk+Tomcat负载均衡配置

    ### Apache+mod_jk+Tomcat负载均衡配置详解 #### 一、背景介绍 随着互联网技术的迅猛发展,单一服务器已经难以满足日益增长的服务需求。负载均衡技术应运而生,成为提高服务可用性和扩展性的关键手段之一。本文将...

    apache2.4编译安装包带mod_jk.so

    `mod_jk.so`是Apache的一个模块,它用于连接Apache与Tomcat应用服务器,实现负载均衡和应用级代理,这对于运行Java Web应用程序的环境至关重要。在CentOS 6.5-6.9系统上编译安装Apache 2.4并添加mod_jk.so模块的步骤...

Global site tag (gtag.js) - Google Analytics