【Tomcat内核】server和servic的区别

以下回答来自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的实例化、初始化流程。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/54031.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

今天,微软重新发明搜索引擎:首款 ChatGPT 搜索来了

这是「进击的Coder」的第 795 篇技术分享 来源:机器之心 “ 阅读本文大概需要 8 分钟。 ” 从现在起,比 ChatGPT 更强大的语言模型直接进入了你的浏览器。 一夜之间,全球最大的科技公司仿佛都回到了自己年轻时的样子。 在谷歌宣布「实验性对…

chatgpt赋能python:用Python开发软件的SEO:如何让您的应用程序更容易被搜索引擎索引

用Python开发软件的SEO:如何让您的应用程序更容易被搜索引擎索引 引言 在当今数字化时代中,搜索引擎优化(SEO)是一项非常重要的工作,尤其是对于那些寻求在互联网上推广新软件的开发人员。如果您正在寻找一种使您的软…

天秤座的主动在于次文

文章导读: 不主动找你聊天,不是因为你不重要,而是我不知道我不重要。太主动反而被敷衍,只好把想念和热情都收敛,可你永远不知道,主动的人需要鼓起多大的勇气,一点人际关系,一点机遇…

比特未来:Facebook仍将在2020年启动天秤座

比特未来:Facebook仍将在2020年启动天秤座 比特未来的前沿新闻称,Facebook将在2020年前推出Libra,尽管监管机构推迟了这一计划。 Facebook副总裁达维•马库西(Dawei•makusi)在Facebook上表示,尽管监管机构对天秤座项目存在强烈敌…

【天秤座区块链】元宇宙知识普以及简单解读清华研究报告

本节目录 温馨提示关于分栏【天秤座区块链】由来提前感受元宇宙区块链的两个注意点区块链革命简单认识清华大学报告解读(元宇宙)前传《雪崩》元宇宙具体是什么?元宇宙不是什么?那为什么要冲击元宇宙呢? 小补充及感谢 温…

处女座男生颜值测试软件,颜值在线又绅士的星座男(图)

颜值在线又绅士的星座男 绅士气质还不够,还有颜值来加分--这样的男主,有多少等爱的小仙女在期盼?然而不是谁都符合有颜绅士的标准,如何才能找到最名副其实的呢?摘星工厂-星吧用星座来支招。 处女座 时代在改变&#xf…

做跨境人人都是天秤座,三个月都没能建起一个店铺

小编告诉你个秘密,做电商的都是天秤座! 近几年,因为疫情的影响,实体生意确实不太好做,反而给了线上电商一次前所未有的机会。 很多人想抓住机会,一头钻进国内市场,小编只能说格局小了&#xf…

来自天秤座的梦想_天秤座:单线全自动机器学习

来自天秤座的梦想 Libra is one of the python package, which helps in performing deep learning on a given data set with minimum no of lines of code. The recent usages of Machine Learning in many of daily applications. There has been many platforms for perfor…

天秤座

天秤座 9月24日~10月23日  主宰行星:金星  属性:风相星座 秋天出生的生辰星位或太阳在天秤座的人的特点: 天秤座是象征着秋天来临的星座,秋意表现在天秤座的人身上是对意气相投的特殊嗅觉。你寻求着共同点和互相谅…

如何防止人工智能毁灭人类

朋友们,如需转载请标明出处:http://blog.csdn.net/jiangjunshow 超级智能 很多人担心超人工智能总有一天会选择伤害人类。之前,史蒂芬霍金曾呼吁建立一个新的世界“政府”来管理我们给予人工智能的能力以免其毁灭人类。这个陈述是很大胆的&a…

卡巴斯基郑启良:支持信创发展是卡巴斯基的重要使命

6月8日,卡巴斯基在京举办媒体见面会,分享了其对2023年安全行业可能出现的威胁格局变化趋势,并对卡巴斯基近年业务发展情况做了说明和展望。 【卡巴斯基大中华区总经理郑启良】 “今年上半年,卡巴斯基中国市场的业务增长速度已经超…

零基础转行网络工程师,过来人给的一些建议

最近收到好多学员的一些提问,零基础没经验,能不能转行到网络工程师?薪资能有多少?发展前景怎么样? 应该有不少朋友都有这个疑问,那么,今天我尽量给大家做出一个详细的解答,希望能有…

ChatGPT评中国考研最好就业的10大专业!

以下是ChatGPT认为未来考研最好就业的十大专业,并按照重要性从高到低排列(仅供娱乐哦) 需要注意的是,这只是ChatGPT的看法,其他人可能会有不同的观点和评价标准。此外,不同的发展阶段和政策导向也会对专业需…

程序员之贩卖焦虑

前言 最近在看头条,一刷到程序员,都是“青春饭”,“35岁是个坎”,“赶紧准备副业”,“转行”,“不如送外卖”等关键词,着实令人悲伤。 为啥有此现象呢? 我想主要原因还是自身的…

前沿重器[34] | Prompt设计——LLMs落地的版本答案

前沿重器 栏目主要给大家分享各种大厂、顶会的论文和分享,从中抽取关键精华的部分和大家分享,和大家一起把握前沿技术。具体介绍:仓颉专项:飞机大炮我都会,利器心法我还有。(算起来,专项启动已经…

ChatGPT 一招教你安装Mysql

MySQL是一种开源的关系型数据库管理系统(RDBMS),它使用SQL语言进行数据的管理和查询。MySQL最初由瑞典MySQL AB公司开发,现在由Oracle公司负责维护。 MySQL具有以下特点: 1. 开源免费:MySQL是一个开源软件,可以免费使用和分发。 2. 高性能:MySQL使用了一些高效的技术,如…

APP下载域名链接在微信被封,被拦截该如何处理

身在网站要想在微信端被使用,多多少少都会有预防被拦截,是专门为运营网站和公众号的运营者一个研究的工具几十你是正常网站, 也是公司企业备案,照样也会被拦截。这个被拦截一般来说就是你的这个域名已经在微信中打不开了,意思就是被封了。 就是这个会出现“已停止访问该网…

网站域名被微信/QQ红了(被封锁、被屏蔽、被和谐)后最好的解决方法

关于域名总被微信封杀、屏蔽、拦截,等问题。简单说下自己的经验。有不少用户私信我。累死了,统一说下: 域名被微信封杀,显示的是链接无法访问; 域名被微信拦截,是跟淘宝一样 - 如需浏览,请长按…

数字人的生死疲劳

你看好数字人吗? 这个问题在今天似乎颇难回答。如果从宏观趋势上看,数字人的利好要素似乎已经达到了一个空前的高度。比如有市场分析机构预测,到2026年中国AI数字人的市场规模将突破100亿人民币,整体市场呈现高速增长态势。又比如…

Docker获9500万美元D轮融资,估值或高达10亿美元

Docker此轮融资由Insight Venture Partners领投,高盛、 Coatue Management、Northern Trust跟投。C轮投资方红杉资本等也跟进了投资。 Docker CEO Benjamin Golub在宣布这一消息时,拒绝透露公司的估值,不过消息称Docker的估值很可能已经高达…