- 博客(11)
- 资源 (4)
- 收藏
- 关注
原创 How Tomcat Works 20:JMX-based Management
JMX 简介JMX: Java Management Extension 。java 管理扩展要想让一个 Java 对象称为 JMX 管理资源,必须创建一个 Managed Bean或者 MBean 的对象。当然,你也可以编写MBean 管理多个 Java 对象。一共有四种 MBean:标准 standard,动态 dynamic, 打开 open, 和模型 model。从结构...
2019-01-27 14:23:08 155
原创 How Tomcat Works 19:管理Servlet
Manager 应用程序用于管理部署的应用程序Manager 应用可以在 %CATALINA_HOME%/server/webapps/manager 目录下找到。该应用的主servlet 是 ManagerServlet 在Tomcat 中,用户角色在 %CATALINA_HOME%/conf 目录下的tomcat-users.xml 文件中有列表。因此要进入Manager 应用程序,必...
2019-01-27 13:43:14 162
原创 How Tomcat Works 18:部署器
一个应用要可以使用,一个上下文必须先部署在主机上。在Tomcat 中,一个上下文可以以war 文件的形式部署,也可以直接将整个应用程序部署在Tomcat 安装目录的webapps 目录下面。对你配置的每个应用,都可以有一个配置脚本来配置该上下文,配置脚本以XML 文档的形式存在。在很早的Tomcat 版本中,部署器都是用 org.apache.catalina.Deployer 接口表示。...
2019-01-21 20:08:47 126
原创 How Tomcat Works 17:Tomcat 启动
这一章关注的重点是:Tomcat 如何使用 org.apache.catalina.startup 下面的Catalina 类和Bootstrap 类来启动的。Catalina 类用来启动和停止一个服务器对象,并解析tomcat 的配置文件即web.xml (使用前一章的Digester)Bootstrap 类创建一个Catalina 的实例,并调用它的process 方法(最新的版本已经...
2019-01-21 19:48:33 190
原创 How Tomcat Works 16:关闭钩子
在很多环境中,关闭应用程序时,需要做一些清理操作。问题在于,用户如果正常关闭,那么会正常清理,但是当用户非正常退出时,可能会导致没有全部清理。比如,Tomcat 启动时,会通过调用服务的start 方法来启动一个servlet 容器。该方法又会调用其他组件的start方法。关闭的时候,也是一样,但如果突然关闭,则可能会出现意想不到的情况。幸运的是,在java 中可以通过关闭钩子优雅的解决这个问...
2019-01-18 21:20:02 164
原创 How Tomcat Works 15:Digester
Tomcat 中会用到多种配置,主要是通过web.xml 配置文件来实现。在Tomcat 中,则是通过Digester 对象将XML 元素转换为Java 对象。此外,web.xml 也用于配置 servlet/JSP 应用。Tomcat 必须能够解析web.xml 文件,并基于web.xml 文档配置上下文对象,幸运的是,Digester 很优雅的解决了这个问题。为什么在配置上下文Cont...
2019-01-18 21:03:56 135
原创 How Tomcat Works 14:服务器(Server)和服务(Service)
在之前的章节中已经看到的是:如何初始化连接器和容器,并将它关联起来,并作为servlet 容器。但是,前面只有一个连接器,通过端口8080对HTTP 请求进行服务。但你不能添加另一个连接器来处理例如HTTPS的请求。另外之前的代码程序,都没有一套启动和停止 Servlet容器的机制。Server 服务器Server 接口表示整个Catalina Servlet 容器以及它的组件。...
2019-01-14 22:57:52 311
原创 How Tomcat Works 13:主机(Host)和引擎(Engine)
本章主要论述的内容的是:主机和引擎如果需要在一个Tomcat 中部署多个上下文,需要使用一个主机。(理论上,当只有一个上下文容器的时候不需要主机)引擎表示整个Catalina 的Servlet 引擎。如果使用的话,引擎位于容器等级的最高层。可以添加到引擎的容器主要是:Host 和 Context接下来主要介绍的是Host 相关的StandardHost、StandardHostMa...
2019-01-14 22:09:38 285
转载 新手也能看懂,消息队列其实很简单
本文内容思维导图“RabbitMQ?”“Kafka?”“RocketMQ?”...在日常学习与开发过程中,我们常常听到消息队列这个关键词。我也在我的多篇文章中提到了这个概念。可能你是熟练使用消息队列的老手,又或者你是不懂消息队列的新手,不论你了不了解消息队列,本文都将带你搞懂消息队列的一些基本理论。如果你是老手,你可能从本文学到你之前不曾注意的一些关于消息队列的重要概念,如果你是新手,相信...
2019-01-14 20:15:44 480
转载 Linux 的chattr 命令和 lsattr命令
有时候你发现用root 权限都不能修改某个文件,大部分原因是曾经用chattr 命令锁定该文件了。chattr 命令的作用很大,其中一些功能是由linux 内核版本来支持的,不过现在生产绝大部分跑的linux 系统都是2.6以上内核了。通过chattr 命令修改属性能够提高系统的安全性,但是它并不适合所有的目录。chattr命令不能保护/、/dev、/tmp、/var目录。lsattr 命令是...
2019-01-09 22:37:10 258
转载 这才是Thread Local的正确原理与适用场景
一、ThreadLocal 解决什么问题由于 ThreadLocal 支持范型,如 ThreadLocal< StringBuilder >,为表述方便,后文用 变量 代表 ThreadLocal 本身,而用 实例 代表具体类型(如 StringBuidler )的实例。不恰当的理解写这篇文章的一个原因在于,网上很多博客关于 ThreadLocal 的适用场景以及解决的问...
2019-01-08 21:33:18 665
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人