Jetty9架構解析 Jetty配置及部署(一)

2021-07-23 21:37:28 字數 1452 閱讀 9072

對於web伺服器來說,可配置性是一項非常重要的指標(從軟體設計層面,我們也可以稱之為架構要素),它在很大程度上也會影響一款伺服器的適用範圍。之所以這麼說,是因為真實的部署場景千變萬化,只有做到靈活可配,我們才可以對其進行深度定製(調整記憶體分配、鏈結限制、i/o、安全配置等等),從而使伺服器能夠最大程度的滿足我們不同的運維部署要求。

作為輕量級web伺服器及servlet容器的代表,jetty提供了出色的可配置能力,通過本章的講解,你會充分了解其強大、便捷的配置。而且jetty的配置方案也在架構上為我們應用程式模組化架構提供了乙個不錯的範本。

對於jetty來說,其提供的配置內容與tomcat類似,主要分為四部分:

但是在具體的配置檔案組織形式和載入上,jetty和tomcat體現了兩種不同的架構理念。

tomcat對於每一部分的配置都採用集中式管理,主要配置檔案都包含在conf目錄下。之所以如此,是由於tomcat採用傳統架構模式,而且這種方案操作更加方便,也便於學習掌握。

而jetty完全採用模組化架構,這一點也充分體現到了它對配置檔案的管理上。

首先,對於啟動引數,jetty支援三種方式:

其次,jetty對於伺服器定義的配置(如鏈結器、容器、執行緒池、會話管理等)則通過$jetty_base/etc/*.xml完成,同樣是分模組管理,如http模組的定義檔案為jetty-http.xml。這些xml檔案是jetty實現的一套ioc框架,用於例項化和裝配伺服器物件。

注意:如果你對啟動配置和伺服器定義配置的關係還不是很清楚的話,我們可以做乙個形象的比較,etc/*.xml之於jetty就好比bean配置檔案之於springframework,主要用於維護伺服器物件的建立以及物件之間的注入依賴關係。而啟動配置(*.ini)就好比properties檔案之於spring,在bean建立和注入過程中,可以直接引用properties資源檔案中配置的屬性。

另外,jetty支援為每個web應用新增乙個context配置檔案用於配置其請求根路徑(即context路徑)、應用檔案路徑、war包解壓甚至安全等等,即那些與web應用部署密切相關但是又不屬於servlet規範之內的配置資訊。這一點與tomcat類似,但是管理方式略微不同,例如tomcat不允許部署目錄既有配置檔案又有同名部署包,而jetty則允許。也就是說jetty把web應用和配置檔案並列放置到了部署目錄下,而tomcat則是將其放置到web應用的meta-inf目錄下。從這個角度看,tomcat的方案更便於部署管理(因為維護單個目錄和檔案總要比兩個簡單)。

對於servlet規範配置,jetty與tomcat基本相同。它們都提供了預設的配置(jetty為$jetty_home/etc/webdefault.xml)以及繼承關係,這樣對於一些常見配置(如jsp處理、mime type),我們不需要在每個web應用中都新增一遍。

最後,jetty對於各種配置提供了一套完善的覆蓋規則,便於我們在預設配置的基礎上新增自己的定製化配置,既做到配置工作最小化,避免重複工作,又提供最大的靈活性。

LoRaWAN協議 一 架構解析

總體架構一共分為4部分 lorawan從底層到最後使用者拿到資料的通訊過程通訊大致可分為三段 mote gw mac層 gw server server 使用者 lora聯盟 規定了 mac層的通訊協議,只有在裝置 gw mote 共同遵守的mac層協議的前提下,不同硬體廠商的裝置才能互相接入。而g...

一 架構基礎

1.1 系統與子系統 系統 一群有關聯的個體,根據某種規則運作,完成單個元件不能單獨完成的工作能力。1.2 模組與元件 模組 從邏輯的角度來拆分得到的單元。劃分模組的目的是職責分離。元件 從物理的角度來拆分得到的單元。劃分的目的是單元復用。1.3 框架與架構 框架 為了實現元件規範,提供規範的基礎功...

flink學習 2 架構

flink 執行時的元件 任務管理器taskmanager flink的工作程序。通常在flink中會有多個taskmanager執行,每乙個taskmanager都包含了一定數量的插槽 slots 插槽的數量限制了taskmanager能夠執行的任務數量。啟動之後,taskmanager會向資源管...