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中的处置处罚流程如下:
- 请求被封装成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企服之家,中国第一个企服评测及商务社交产业平台。 |