企业级WEB应用服务器TOMCAT

打印 上一主题 下一主题

主题 883|帖子 883|积分 2653

tomcat的功能和原理
Tomcat的功能

Apache Tomcat是一个开源的Java Servlet容器,它实现了Java EE(Java Platform, Enterprise Edition)的部门技术规范,包括Java Servlet、JavaServer Pages(JSP)、Java Expression Language(EL)和Java WebSocket等。Tomcat主要用于托管Java Web应用步伐,它提供了一个用于执行Java代码的情况,并能够处置处罚HTTP请求和响应。
Tomcat的工作原理

Tomcat的工作原理基于两个焦点组件:连接器(Connector)和容器(Container)。连接器负责处置处罚客户端的网络请求,将HTTP请求转换为Servlet API可以明白的请求对象,并将响应从Servlet返回给客户端。容器则负责管理Servlet的生命周期,调用Servlet的服务方法来处置处罚请求。
Tomcat的容器条理结构包括Engine、Host、Context和Wrapper。Engine是顶层容器,可以包含多个Host;Host代表虚拟主机,可以包含多个Context;Context代表Web应用上下文,包含多个Wrapper;Wrapper是最底层的容器,代表一个Servlet。
请求在Tomcat中的处置处罚流程如下:

  • 连接器接收客户端的HTTP请求。

  • 请求被封装成ServletRequest对象,并通报给容器。

  • 容器根据请求的URL和Servlet映射关系找到对应的Servlet。

  • 如果Servlet尚未加载,则使用反射机制创建Servlet实例并调用其init方法进行初始化。

  • 接着调用Servlet的service方法来处置处罚请求,并将处置处罚结果封装成ServletResponse对象。

  • 响应通过连接器返回给客户端。
Tomcat还提供了其他功能,如会话管理、安全性、JMX管理接口、JSP编译和预编译等。通过这些功能,Tomcat能够提供一个全面的情况来摆设和运行Java Web应用步伐
tomcat的安装

安装java情况
   [root@tomcat ~]# yum install java-1.8.0-openjdk.x86_64 -y
  解压安装包
   [root@tomcat ~]# tar zxf apache-tomcat-9.0.93.tar.gz -C /usr/local/
  [root@tomcat ~]# ln -s /usr/local/apache-tomcat-9.0.93/ /usr/local/tomcat      #软连接
  [root@tomcat ~]# /usr/local/tomcat/bin/startup.sh     #启动Java
  生成tomcat的主配置文件
   [root@tomcat ~]# useradd -s /sbin/nologin -M tomcat
  [root@tomcat ~]# chown -R tomcat.tomcat /usr/local/tomcat/
  [root@tomcat ~]# vim /lib/systemd/system/tomcat.service
  

   [root@tomcat ~]# systemctl daemon-reload
  [root@tomcat ~]# systemctl enable --now tomcat
  tomcat负载均衡实现

Tomcat负载均衡功能

Tomcat本身不直接提供负载均衡功能,但可以通过与其他软件结合使用来实现。负载均衡是指将进入的网络请求或服务负载分配到多个服务器上,以提高应用步伐的可用性和处置处罚能力。在Tomcat的场景中,负载均衡通常用于将用户请求分发到多个Tomcat实例,从而优化资源使用和提高体系的并发处置处罚能力。
Tomcat负载均衡原理

负载均衡可以通过多种技术实现,包括硬件负载均衡器和软件负载均衡器。在软件层面,可以使用Apache HTTP服务器结合mod_proxy模块,或者使用专门的负载均衡软件如Nginx或HAProxy来实现对Tomcat服务器的负载均衡。这些负载均衡器可以根据差别的算法(如轮询、最少连接、IP哈希等)来决定将请求发送到哪个Tomcat实例。
在nginx主机中,必要使用cookiehash来进行调用,必要cookie hash来对JSESSIONID进行匹配
   vim /usr/local/nginx/conf.d/php.conf
  

在欣赏器中访问www.timinglee.org/test.jsp
先访问10:

写入内容

革新后访问20:


memcached 操作命令

下载memcached和telnet
   dnf install memcached -y
  dnf install telnet -y
    五种基本   memcached   命令执行最简朴的操作。这些命令和操作包括:     set                          #修改    add                         #添加    replace                   #覆盖    get                          #查看    delete                     #删除  

      修改       set leekey 0 60 5        test1        STORED        get leekey        VALUE leekey 0 5        test1        END        add leekey1 0 60 4        test         删除        delete leekey        DELETED        get leekey        END      
       get leekey1           VALUE leekey1 0 3           lee       session 共享服务器

Session共享是指在多个服务器之间共享同一个用户的会话数据。当用户通过负载均衡或其他方式访问差别的服务器时,这些服务器能够获取和更新雷同的会话信息,实现会话数据的一致性。这对于构建具有水平扩展性的Web应用步伐或负载均衡情况非常紧张3。
Session共享的原理

Session共享的底层原理通常依赖于以下几个关键技术点:

  • 共享存储后端:多个服务器使用同一个共享存储后端,如数据库或分布式缓存体系,这个共享存储后端可以被所有服务器访问到。

  • SESSION标识符通报:当用户访问此中一个服务器时,该服务器会生成一个唯一的SESSION标识符,并将其存储在用户的欣赏器中,通常通过cookie来实现。该标识符用于在共享存储后端中识别用户的会话数据。

  • 服务器间的会话数据访问:当用户请求到达其他服务器时,这些服务器会检查请求中的SESSION标识符,并使用它来访问共享存储后端,获取用户的会话数据。

  • 数据一致性:当一个服务器修改了用户的会话数据时,它会将更新后的数据存储回共享存储后端。其他服务器在下次访问时将能够获取到最新的会话数据,确保了会话数据在差别服务器之间的一致性
在两台tomcat中下载memcache
dnf install memcached -y
下载jar包
将jar包复制到tomcat下
   cd jar/
  cp * /usr/local/tomcat/lib
   
   在tomcat1中配置
[root@tomcat-1 ~]# vim /usr/local/tomcat/conf/context.xml
  <Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"
  memcachedNodes="m1:172.25.254.10:11211,m2:172.25.254.20:11211"
  failoverNodes="m1"
  requestUriIgnorePattern=".*\.(ico|png|gif|jpg|css|js)$"
  transcoderFactoryClass="de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory"
  />
在tomcat2中配置
  [root@tomcat-2 tomcat]# vim /usr/local/tomcat/conf/context.xml
  <Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"
  memcachedNodes="m1:172.25.254.10:11211,m2:172.25.254.20:11211"
  failoverNodes="m2"
  requestUriIgnorePattern=".*\.(ico|png|gif|jpg|css|js)$"
  transcoderFactoryClass="de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory"
/>
  测试:
在欣赏器中访问www.timinglee.org/test.jsp
然后随便写入东西,写入的内容会被memcached记录

关闭10tomcat
服务主动变为20,且之前再在10写的东西还在



免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

刘俊凯

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表