【Tomcat内核】server和servic的区别
创始人
2025-05-31 21:52:21

以下回答来自chatGPT

  1. server是什么?

    Server可以翻译为服务器,是一种提供网络服务的计算机系统。它可以接受来自客户端的请求并响应这些请求,以满足客户端的需求。服务器可以提供各种服务,例如网站托管、电子邮件、数据库、文件共享等。服务器通常需要具备高性能、可靠性、安全性等特点,以确保能够稳定运行,并保障用户数据的安全。

  2. 为什么要reset server不然server会被关掉?

    重置服务器(Reset Server)是指在服务器出现故障或出现无法恢复的错误时,通过将服务器的软件和硬件状态恢复到默认设置,来修复服务器问题的一种方法。在一些情况下,重置服务器可以避免服务器被关闭,而直接关闭服务器可能会导致数据丢失和其他更严重的问题。
    当服务器出现问题时,如果通过其他手段无法解决,例如重启服务器、重启服务等方法都无法解决问题,那么重置服务器是解决问题的一种有效方法。通过重置服务器,可以清除服务器上的任何配置和设置,从而消除任何已知的问题,并让服务器回到初始状态,重新启动服务。
    在重置服务器之前,需要备份服务器上的重要数据和配置文件,以避免数据的丢失和配置的丢失。同时,在服务器出现问题时,也应该及时联系服务器的技术支持团队或者管理员,以获取更详细的指导和支持。

  3. server和servic的区别

    Server和Service都是计算机领域中的术语,但是它们的含义有所不同。
    Server(服务器)是一种计算机系统或者程序,它可以响应客户端请求,向客户端提供各种服务,如网站托管、电子邮件、数据库、文件共享等。
    Service(服务)是指计算机系统中的一种软件模块,它可以提供某种特定的功能或者服务。Service可以作为一个独立的程序运行,也可以作为一个服务器的一部分运行。
    简单来说,Server强调的是一个具有服务提供功能的计算机系统或者程序,而Service则强调的是计算机系统中的一种特定的软件模块,它可以提供某种特定的功能或者服务


Server组件和Service组件是Tomcat核心组件中最外层的两个组件。

Server组件是Tomcat运行实例的抽象,Server组件包含若干Listener组件、GlobalNamingResources组件和若干Service组件。

Service组件包含若干Connector组件和Executor组件。

1.Server组件

server.xml配置文件。

主要作用是:

  • 提供了监听机制,用于对Tomcat整个生命周期中对不同事件进行处理。
  • 提供了Tomcat容器全局的命令资源实现。
  • 监听某个端口以接收SHUTDOWN命令。

image.png

1.1 声明周期监控

Tomcat在运行中是存在很多阶段的,也就是Tomcat会处于不同的生命周期中。而Server会在某些阶段执行某些逻辑,提供了监听器机制。(这里的意思感觉是如果我能控制的了这个控制器,是不是就可以去做一些不死的操作。)

下面是一些监听器。

  • AprLifecyCleListener监听
  • JasperListener监听
  • JreMemoryLeakPreventionListener监听
  • GlobalResourcesLifecycleListener监听
  • ThreadLocalLeakPreventionListener监听
  • NamingContextListener监听

1.2 全局命名资源

Server组件包含了一个全局命名资源,提供的命名对象通过ResourceLink可以给所有Web应用使用。

Tomcat启动的时候会将Server.xml配置文件里面GlobalNamingResources节点通过Digester框架映射到一个NamingResources对象。

1.3 监听SHUTDOWN命令

Server会另外开放一个端口用于监听关闭命令,默认为8005.

Tomcat中有两类线程,一类是主线程,另外一类是daemon线程。当Tomcat启动的时候,Server将被主线程执行,完成所有启动工作。
然后主线程相当于是一直在等结束。

2.Service组件

Service组件是若干Connector组件和Executor组件组合而成。
不同的端口对应不同的Connector。
Executor组件在Service抽象层面提供了线程池,让Service的组件可以公用线程池。


Tomcat各个组件:

Server

服务器,Tomcat服务器,一个Tomcat只有一个Server组件;
在这里插入图片描述

在这里插入图片描述

Service

业务层,是Server下最大的子容器,一个Server可以包含多个Service组件;
在这里插入图片描述

Tomcat实例化的是StandardServer,Server同样实现了Lifecycle接口
在这里插入图片描述

StandardServer实例化初始化了globalNamingResources,具体干嘛的还不清楚,和JNDI相关;Catalina的load方法的initNaming方法,决定了这里会添加第一个监听器NamingContextListener,这个LifecycleListener暂时不需要了解,JNDI上下文相关的. 其次的LifecycleListener是通过server.xml读取.
在这里插入图片描述

也就是说StandardServer实例化之后共有六个LifecycleListener,当然这些LifecycleListener具体作用暂时还不用知道,看名字简单了解下打印日志、内存防止泄露等等.

在这里插入图片描述

组件真正的初始化方法initInternal

只要继承了LifecycleMBeanBase的类,调用父类的initInternal方法,目的是为了将该组件注册到JMX管理,JMX的作用暂时不是现在记录的重点。加载classLoader,也就是commonLoader,指向catalina.home/lib,对下面的jar文件进行校验;最后就是遍历service组件,分别调用init方法初始化.
在这里插入图片描述

Service初始化流程

在这里插入图片描述上图是按照StandardService的init方法简单绘制的。在记录Service初始化流程之前,介绍下StandardService实例化的过程。

Service实例化过程

先查看下server.xml对于Service元素的定义,以Tomcat中标准的server.xml为例. 下就以这样三个子元素为例,
在这里插入图片描述

下面就是StandardService初始化具体流程,super.initInternal方法JMX注册; 初始化按照顺序 container—>Executor—>mapperListener---->Connector的顺序

在这里插入图片描述

Connector

连接器,Service的子容器,一个Service可以有多个Connector连接器,作用体现在对外,接收客户端请求,HTTP、TCP等;

Container

Service核心组件,通常有Engine、Host、Context、Wrapper,作用是将客户端请求处理;

总而言之,Tomcat的初始化工作,主要是Server初始化,而Server初始化主要看Service的初始化,Service的初始化工作主要是
initInternal方法, 又由其他组件
Container、(Executor)、mapperListener、Connector的初始化来完成。
上面总结了StandardServer、StandardService的实例化、初始化流程。

相关内容

热门资讯

最新!2025新势力5月销量出... 5月新势力表现如何?2025年5月的销售周期刚刚过去,不少造车新势力厂商的销量数据,已经新鲜出炉。数...
两家A股公司,收终止上市决定 又有两家A股上市公司收到股票终止上市决定,6月10日进入退市整理期。 上述自律监管决定书指出,因2...
重磅,事关教育强国,主力提前埋... 数据是个宝数据宝投资少烦恼这些产业的景气度处于上升期。《求是》杂志发表文章《加快建设教育强国》6月1...
阳光诺和“二刷”收购 80后富... 《投资者网》蔡俊时隔2年后,阳光诺和(688621.SH,下称“公司”)再拟收购同一个资产。实际上,...
买车,不安全了? 买车,不安全... 在新能源汽车市场竞争空前激烈的当下,车企、经销商习惯于采取更加激进的营销、市场策略,尤其在行业加速“...
欧佩克+同意7月再增产41.1... 为了增产惩罚超产国并争夺市场份额,欧佩克+连续第三个月大幅增产,美国页岩油生产商或首当其冲,美油一度...
经济学泰斗菲舍尔逝世:培育伯南... 当地时间6月1日,以色列央行发布声明称,世界著名经济学家、以色列央行前行长及美联储前副主席菲舍尔(S...
更名!“天府证券”来了 天府证... 【导读】宏信证券更名为天府证券中国基金报记者 吴君这家券商,历史上第二次更名。5月末,工商信息显示,...
两家A股公司,收终止上市决定 ... 又有两家A股上市公司收到股票终止上市决定,6月10日进入退市整理期。*ST鹏博(600804)公告称...
瑞幸降价迈入“6块9”时代?瑞... 说起最近几年的咖啡茶饮市场,相信每个人都不会陌生,各家咖啡茶饮企业的各种降价消息是此起彼伏,就在最近...
主次节奏:6.1黄金 - 每周... 本文每周初更新发布梳理各级别走势分析和预期主次节奏:做有品质的三方服务黄金月线图(超长线) 月线图...
超400亿资金狂涌!这类ETF... 债券ETF市场持续扩容。今年以来,债券市场表现震荡,债券类基金回报远不及预期,但这并未妨碍债券型ET...
坚定信心 行稳致远(记者手记) 侯琳良 最近一段时间,海尔集团上世纪90年代投资制作的《海尔兄弟》动画片,在多个视频平台上线高清重制...
世纪大辩论2——哈耶克与凯恩斯... 本来节后决定启动一个项目,但家里临时有事,需要陪家人去一趟北京,节后拉群的事,因此要推迟一周左右(具...
4月广州消费品市场表现强劲 1-4月,随着消费品以旧换新等促消费政策持续发力和各类会展活动陆续开展,政策相关消费快速增长,升级类...
金价,又跌了! 人民财讯5月31日电,5月30日,COMEX黄金期货收跌0.92%,报3313.1美元/盎司。 从高...
10万吨改性项目!巴斯夫、金发... 【DT新材料】获悉,6月3日,沪市主板新股海阳科技将启动申购,上市在即! 资料显示,海阳科技前身为南...
湾财周报|大事记 比亚迪驳斥“... 一周大事记(5月26日-6月1日) 头条 比亚迪驳斥! 长城“车圈恒大论”是行业警示还是危言耸听?...
通源石油跌1.96%,成交额1... 5月30日,通源石油跌1.96%,成交额1.03亿元,换手率4.40%,总市值23.54亿元。 异动...
中国邮储银行浙江分行2025校... 点这里 ↑ 老满说高考 作者 l 老满 生涯规划师l 升学顾问l 拆书家 这是 老满说高考公众号 的...
公募基金规模首次突破33万亿元... 每经记者:肖芮冬 每经编辑:叶峰 天赐良基日报第654期 一、今日基金新闻速览 1、华润元大基金贾...
湾财周报 大事记 比亚迪驳斥“... 一周大事记(5月26日-6月1日)头条比亚迪驳斥!长城“车圈恒大论”是行业警示还是危言耸听?近日,关...
EL表达式JSTL标签库 EL表达式     EL:Expression Language 表达式语言     ...
关于测试,我发现了哪些新大陆 关于测试 平常也只是听说过一些关于测试的术语,但并没有使用过测试工具。偶然看到编程老师...
工信部、中汽协紧急发声!汽车“... 文/刘育英新一轮汽车价格战再起。近日,工信部、中汽协纷纷发声表示反对。工业和信息化部表示,将加大对汽...
3 ROS1通讯编程提高(1) 3 ROS1通讯编程提高3.1 使用VS Code编译ROS13.1.1 VS Code的安装和配置...
募资39亿,全亏光了,账上不到... 关于天然气,用户的感觉是价格一直在上涨,但很奇怪,不管怎么涨,天然气企业仍然亏,还亏得一塌糊涂。这是...
资阳房产评估公司 这是(tel-15828298733)整理的信息,希望能帮助到大家 在当今社会,随着经济的发展和城...
华桥汇利(中国)投资基金管理有... 今年第一季度,美国企业利润出现大幅下降,且面临着来自关税上升的持续压力,这一局面可能会在今年进一步加...
ESG 报告合规与鉴证:全球政... 在当下全球经济格局里,ESG(环境、社会和公司治理)已然成为衡量企业可持续发展能力的关键指标。随着全...