Tomcat企业级web应用服务器配置与实战

本文详细介绍了如何配置企业级的Tomcat web应用服务器,包括LNMT架构实现、LNMT集群服务搭建、会话保持策略,如session sticky、基于redis和memcache的session共享,以及Tomcat集群的DeltaManager会话管理器配置。同时,讨论了Java虚拟机的工作机制、垃圾回收器和优化方法,以及JVM常用的分析工具。文章还涵盖了Tomcat的性能优化方案,如配置文件参数调整和启动参数优化。
摘要由CSDN通过智能技术生成

公司业务经过长期发展,有了很大突破,已
经实现盈利,现公司要求加强技术架构应用功
能和安全性以及开始向企业应用、移动APP等
领域延伸,此时原来开发web服务的php语言
已经不适应新的场景,需要上java技术架构,
现要求你根据公司需要,实现基于java平台的
web应用服务选型、搭建、实现和应用,此时
你如何选择?

1 实现企业级常见的架构 LNMT

LNMT:Linux Nginx MySQL Tomcat    

Client(http) -->nginx(reverse proxy)(http)àtomcat(http connector)

在nginx中

Location / {

Proxy_pass http://web1:8080;

}

Location ~*\.(jsp|do)$ {

Proxy_pass http://web2:8080

}

2 实现LNMT集群服务

Nginx 可进行反向代理供用户访问

在http与server之间

Upstream tomcat_cluster {

#ip_hash;

Server 172.17.253.216:8080 weight=1;

Server 172.17.254.97:8080 weight=1;

}

3 实现LNMT的会话保持

  1. session sticky

    基于source_ip nginx:ip_hash haproxy :source lvs:sh

    基于cookie: nginx:sticky haproxy:cookie

  2. session cluster :delta session manager

     

(3)session server:redis(store) 持久存储,memcache(cache)

4 基于tomcat集群会话保持

DeltaManager 会话管理器是Tomcat默认的集群会话管理器,它主要用于集群中各个节点之间的会话状态的同步维护。

集群增量会话管理器的职责是将某个节点的会话改变同步到集群内其他的成员节点上,它属于全节点复制模式。所谓全节点复制就是指集群中某个节点的状态变化后需要同步到集群中剩余的节点,非全节点方式可能只是同步到其中某个或若干个节点。

在集群中全节点会话复制的一个大致步骤如图所示,客户端发起一个请求,假设通过一定的负载均衡设备分发策阅分到其中一个节点node1,如果还未存在session对象的web容器会创建一个会话对象,接着执行一些逻辑处理,在对客户端响应之前有个重要的事情就是把session对象同步到集群服务其他节点上。最后在响应客户端,当客户端第二次发起请求时,假如分发到node3节点上,由于同步了node1的session会话,所以在执行逻辑并不会取不到session的值,如果删除某个会话对象,则要同时通知其他节点把相应会话删除,如果修改了某个会话的某些属性也同样要更新到其他节点的会话中。

5 基于tomcat集群会话保持配置

1 cluster 配置:

Cluster(集群,族),如果你要配置Tomcat集群,则需要使用此节点

ClassName 表示Tomcat集群时,之间的相互传递信息使用那个类来实现信息之间的传递

Channelsendoption 可以设置为2 4 8 10 每个数字代表一种方法

2 = Channel.SEND_OPTIONS_USE_ACK(确认发送)

4 = Channel.SEND_OPTIONS_SYNCHRONIZED_ACK(同步发送)

8 = Channel.SEND_OPTIONS_ASYNCHRONOUS(异步发送)

在异步模式下,可以通过加上确认发送(Acknowledge)来提高可靠性,此时channelsendoption设为10

<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"

channelSendOptions="8">

2.Manager介绍

Manger对象用于实现HTTP会话管理的功能,Tomcat中有5种Manger的实现:

(1).StandardManager

Tomcat6的默认会话管理器,用于非集群环境中对单个处于运行状态的Tomcat实例会话

进行管理。当Tomcat关闭时,这些会话相关的数据会被写入磁盘上的一个名叫

SESSION.ser的文件,并在Tomcat下次启动时读取此文件。

(2).PersistentManager

当一个会话长时间处于空闲状态时会被写入到swap会话对象,这对于内存资源比较吃紧

的应用环境来说比较有用。

(3).DeltaManager

用于Tomcat集群的会话管理器,它通过将改变了会话数据同步给集群中的其它节点实现

会话复制。这种实现会将所有会话的改变同步给集群中的每一个节点,也是在集群环境中

用得最多的一种实现方式。

(4).BackupManager

用于Tomcat集群的会话管理器,与DeltaManager不同的是,某节点会话的改变只会同

步给集群中的另一个而非所有节点。

3、Manager配置

className-指定实现org.apache.catalina.ha.ClusterManager接口的类,信息之间的管

expireSessionsOnShutdown-设置为true时,一个节点关闭,将导致集群下的所有

Session失效

notifyListenersOnReplication-集群下节点间的Session复制、删除操作,是否通知

session listeners

<Manager className="org.apache.catalina.ha.session.DeltaManager"

expireSessionsOnShutdown="false"

notifyListenersOnReplication="true"/>

4、Channel介绍和配置</

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值