av中文字幕电影在线看,国产又色又爽又黄刺激在线视频,毛片在线导航,亚洲激情社区

如何學(xué)習(xí)MiniTomcat?手把手帶你寫一個(gè) MiniTomcat

6 周搭建一個(gè)實(shí)用的 Tomcat 框架

郭屹,中國(guó) Java 研發(fā)工程師鼻祖之一,曾在 Sun Microsystems 公司 Java 研發(fā)中心擔(dān)任 J2EE 研發(fā)工程師,同時(shí)他也是 JDBC Driver、Minis 開(kāi)發(fā)者,Norming 軟件國(guó)際 CTO。

在長(zhǎng)達(dá) 30 余年的編程生涯中,他經(jīng)歷了 Java 技術(shù)的飛速發(fā)展,積累了豐富的行業(yè)經(jīng)驗(yàn)和技術(shù)實(shí)踐,有 MiniSpring、MiniTomcat、MiniRedis、MiniLanguage 等幾款開(kāi)源作品。除此之外,他還十分樂(lè)于分享自己的知識(shí)和經(jīng)驗(yàn),是《手把手帶你寫一個(gè) MiniSpring》專欄以及技術(shù)類書籍《認(rèn)識(shí)編程》和《Java 編程十五講》的作者,一直以來(lái)他都在通過(guò)寫作、講演等方式推動(dòng)著編程社區(qū)的發(fā)展。

課程介紹

眾所周知,Tomcat 是應(yīng)用最廣泛的 Web 應(yīng)用服務(wù)器,不過(guò)在實(shí)際使用 Tomcat 過(guò)程中,我們總是會(huì)遇到各種復(fù)雜問(wèn)題,比如:

  • 如何管理多個(gè) Servlet?
  • 如何支持多個(gè)獨(dú)立的應(yīng)用?
  • 大量用戶請(qǐng)求的性能問(wèn)題如何解決?
  • 處理高并發(fā)請(qǐng)求時(shí)的內(nèi)存泄漏問(wèn)題怎么處理?
  • ……

這些復(fù)雜的問(wèn)題出現(xiàn)時(shí),如果僅僅是會(huì)使用 Tomcat 是萬(wàn)萬(wàn)不能解決的,我們需要深入 Tomcat 原理,從底層的視角審視問(wèn)題,并徹底解決問(wèn)題。而掌握一項(xiàng)技術(shù)最好也是最扎實(shí)的方式就是重造輪子。

為此我們邀請(qǐng)了前 Sun Microsystems Java 研發(fā)工程師郭屹老師,他會(huì)帶你一步步剖析源碼,深入 Tomcat 底層原理,并讓你從中領(lǐng)悟 Tomcat 的設(shè)計(jì)哲學(xué),幫助你在面對(duì)復(fù)雜的生產(chǎn)問(wèn)題時(shí)快速找到解決方案,同時(shí)也為你自己設(shè)計(jì)系統(tǒng)提供思路與最佳實(shí)踐。

課程設(shè)計(jì)

MiniTomcat 的課程大體上分成四大塊:HTTP Server、Connector、Container 和擴(kuò)展部分。熟悉 Tomcat 的人想必更加清楚,Connector + Container 就是 Tomcat 的核心了。學(xué)習(xí)這些內(nèi)容,會(huì)為進(jìn)一步的研究打下良好的基礎(chǔ)。

第一章 實(shí)現(xiàn)一個(gè)簡(jiǎn)單的 Web 應(yīng)用服務(wù)器

Web 應(yīng)用的核心是對(duì) HTTP 協(xié)議的支持,接收瀏覽器發(fā)送的 HTTP 請(qǐng)求,解析 URL,找到資源返回內(nèi)容,顯示在客戶瀏覽器上。這一部分先不引進(jìn)任何規(guī)范,而是自己簡(jiǎn)單地實(shí)現(xiàn) Request 請(qǐng)求與 Response 響應(yīng)。雖然它很簡(jiǎn)單,但是也是一個(gè)地道的 Web 應(yīng)用服務(wù)器,不僅支持靜態(tài)資源,還能運(yùn)行程序動(dòng)態(tài)返回內(nèi)容。我們后面的改造都會(huì)基于這個(gè)簡(jiǎn)單服務(wù)器。

第二章 實(shí)現(xiàn)專業(yè)的 Connector

基于簡(jiǎn)單的應(yīng)用服務(wù)器,這部分我們會(huì)來(lái)重點(diǎn)實(shí)現(xiàn) MiniTomcat 連接層,并且按照 Servlet 規(guī)范進(jìn)行改造。優(yōu)化代碼結(jié)構(gòu),將第一部分的 Server 拆分為 Connector 與 Processor。之后初步優(yōu)化性能,引入 Processor 池化技術(shù),支持 Processor 并發(fā)執(zhí)行,提高 Server 的高并發(fā)能力。然后,我們就要按照規(guī)范行事,實(shí)現(xiàn) Servlet 對(duì)請(qǐng)求和響應(yīng)的接口規(guī)范。

這一部分的改造過(guò)后,MiniTomcat 的連接層就有模有樣了。

第三章 實(shí)現(xiàn)專業(yè)的 Container

連接層解決后,我們?cè)僦攸c(diǎn)設(shè)計(jì)實(shí)現(xiàn)容器。先引入 Wrapper,實(shí)現(xiàn) Context 與 Wrapper,形成兩層容器,將整個(gè)框架進(jìn)一步按照功能拆分成不同模塊,每一部分各司其職。最后引入日志、過(guò)濾器、監(jiān)聽(tīng)器等通用組件。這一部分之后,Tomcat 的核心就模仿出來(lái)了。

第四章 完成 MiniTomcat 及擴(kuò)展討論

這個(gè)部分我們將考慮多應(yīng)用支持,進(jìn)一步拆分功能,BootStrap 只負(fù)責(zé)啟動(dòng)服務(wù)器,業(yè)務(wù)代碼都在 Context 內(nèi)運(yùn)行,支持不同路由轉(zhuǎn)發(fā)到不同應(yīng)用之中,而應(yīng)用之前相互隔離。這個(gè)需求就要求我們改變標(biāo)準(zhǔn)的 Java 類加載機(jī)制,自定義加載過(guò)程。最后通過(guò) web.xml 各項(xiàng)配置,啟動(dòng) Server,實(shí)現(xiàn)完整而基本的 Tomcat。

作為擴(kuò)展,我們會(huì)探討如何把 MiniSpring 打包放在 MiniTomcat 中運(yùn)行,形成 Mini 系列的核心環(huán)境,還將探討將網(wǎng)絡(luò) I/O 擴(kuò)展為支持 NIO,以支持高并發(fā)場(chǎng)景的方案。

課程目錄

如何學(xué)習(xí)MiniTomcat?手把手帶你寫一個(gè) MiniTomcat

立即購(gòu)買

本站內(nèi)容均為網(wǎng)友上傳分享,本站僅負(fù)責(zé)分類整理,如有任何問(wèn)題可聯(lián)系我們(點(diǎn)這里聯(lián)系)反饋。

(0)
上一篇 2024年1月4日 下午10:42
下一篇 2024年1月4日 下午10:55

相關(guān)推薦

發(fā)表回復(fù)

您的郵箱地址不會(huì)被公開(kāi)。 必填項(xiàng)已用 * 標(biāo)注

主站蜘蛛池模板: 墨脱县| 巴中市| 富顺县| 塘沽区| 合水县| 南岸区| 大荔县| 明水县| 东兴市| 西盟| 商丘市| 交城县| 柳江县| 永兴县| 南岸区| 上犹县| 沙坪坝区| 广宗县| 彭水| 理塘县| 犍为县| 禹州市| 怀来县| 夏邑县| 安康市| 宜城市| 临漳县| 新建县| 剑阁县| 晋中市| 阳信县| 林口县| 项城市| 靖远县| 军事| 璧山县| 高要市| 嘉荫县| 天台县| 榆树市| 榆社县|