<menu id="guoca"></menu>
<nav id="guoca"></nav><xmp id="guoca">
  • <xmp id="guoca">
  • <nav id="guoca"><code id="guoca"></code></nav>
  • <nav id="guoca"><code id="guoca"></code></nav>

    大公司為什么禁止SpringBoot項目使用Tomcat?

    VSole2022-07-09 17:53:54

    同時,SpringBoot也支持Undertow容器,我們可以很方便的用Undertow替換Tomcat,而Undertow的性能和內存使用方面都優于Tomcat,那我們如何使用Undertow技術呢?本文將為大家細細講解。

    # SpringBoot中的Tomcat容器

    SpringBoot可以說是目前最火的Java Web框架了。它將開發者從繁重的xml解救了出來,讓開發者在幾分鐘內就可以創建一個完整的Web服務,極大的提高了開發者的工作效率。Web容器技術是Web項目必不可少的組成部分,因為任Web項目都要借助容器技術來運行起來。

    在SpringBoot框架中,我們使用最多的是Tomcat,這是SpringBoot默認的容器技術,而且是內嵌式的Tomcat。

    # SpringBoot設置Undertow

    對于Tomcat技術,Java程序員應該都非常熟悉,它是Web應用最常用的容器技術。我們最早的開發的項目基本都是部署在Tomcat下運行,那除了Tomcat容器,SpringBoot中我們還可以使用什么容器技術呢?

    沒錯,就是題目中的Undertow容器技術。SrpingBoot已經完全繼承了Undertow技術,我們只需要引入Undertow的依賴即可,如下圖所示。

    配置好以后,我們啟動應用程序,發現容器已經替換為Undertow。

    那我們為什么需要替換Tomcat為Undertow技術呢?

    # Tomcat與Undertow的優劣對比

    Tomcat是Apache基金下的一個輕量級的Servlet容器,支持Servlet和JSP。Tomcat具有Web服務器特有的功能,包括 Tomcat管理和控制平臺、安全局管理和Tomcat閥等。Tomcat本身包含了HTTP服務器,因此也可以視作單獨的Web服務器。

    但是,Tomcat和ApacheHTTP服務器不是一個東西,ApacheHTTP服務器是用C語言實現的HTTP Web服務器。Tomcat是完全免費的,深受開發者的喜愛。

    Undertow是Red Hat公司的開源產品, 它完全采用Java語言開發,是一款靈活的高性能Web服務器,支持阻塞IO和非阻塞IO。由于Undertow采用Java語言開發,可以直接嵌入到Java項目中使用。同時, Undertow完全支持Servlet和Web Socket,在高并發情況下表現非常出色。

    我們在相同機器配置下壓測Tomcat和Undertow,得到的測試結果如下所示:

    QPS測試結果對比:

    Tomcat

    Undertow

    內存使用對比:

    Tomcat

    Undertow

    通過測試發現,在高并發系統中,Tomcat相對來說比較弱。在相同的機器配置下,模擬相等的請求數,Undertow在性能和內存使用方面都是最優的。并且Undertow新版本默認使用持久連接,這將會進一步提高它的并發吞吐能力。所以,如果是高并發的業務系統,Undertow是最佳選擇。

    # 最后

    SpingBoot中我們既可以使用Tomcat作為Http服務,也可以用Undertow來代替。Undertow在高并發業務場景中,性能優于Tomcat。所以,如果我們的系統是高并發請求,不妨使用一下Undertow,你會發現你的系統性能會得到很大的提升。

    容器undertow
    本作品采用《CC 協議》,轉載必須注明作者和本文鏈接
    沒錯,就是題目中的Undertow容器技術。配置好以后,我們啟動應用程序,發現容器已經替換為Undertow
    一、異步執行 實現方式二種: 使用異步注解@aysnc、啟動類:添加@EnableAsync注解 JDK 8本身有一個非常好用的Future類——CompletableFuture
    我們可以通過獲取到 BeanFactory 篡改 BeanDefinitions 中的 beanClass 類型為自定義類型 以及 scope 作用域為”prototype”,然后調用 getBean 方法, Spring將實例化一個我們定義的類型對象并返回達到實例化任意對象的效果。這里的思路是實例化JDK中的 Nashorn 腳本引擎工廠,接著調用 getScriptEngine 獲取 Nashorn 引擎實例,再調用 eval 方法來執行腳本。尋找 BeanDefinition 時,只需要注意構造方法的參數即可,例如 Nashorn 腳本引擎工廠為無參構造方法。其中名為 的 BeanDefinition 是符合這個條件的。
    在滲透測試過程中,我們的起始攻擊點可能在一臺虛擬機里或是一個Docker環境里,甚至可能是在K8s集群環境的一個pod里,我們應該如何快速判斷當前是否在容器環境中運行呢?當然,以上這兩種都是比較主觀的判斷。接下來,我們再來盤點下比較常用的幾種檢測方式。
    邊緣計算場景中由于節點帶寬受限,采用現有架構部署傳統的標準容器鏡像效果不佳,為此我們提出了一種面向邊緣計算的容器鏡像構建方法。
    在安全實踐不佳或違反安全規則的情況下,很多人可以訪問容器。每當容器的通信權限超過嚴格要求時,它可能會導致額外的安全風險。雖然這類工具幫助工程師實現DevOps管道所需的效率,但它們很難保證所需要的安全性。因此,應該考慮盡量避免使用特權容器。此外,需要充分利用幫助不斷檢查映像內容查找已知漏洞,并報告安全問題的功能。首先,建議企業使用針對特定容器的主機操作系統,因為它們沒
    本文介紹了在集群中利用危險的RBAC配置提權至集群管理員的案例,并總結了同類的技術和方法和對應的防御思路
    容器安全技術面向容器環境,提供針對容器“構建-分發-運行”全生命周期的安全防護,對容器環境、容器平臺、容器編排引擎等場景提供全方位的安全防護體系,為云計算、虛擬化場景下的容器化業務和應用系統提供安全保障。
    harbor2.5版本開始支持cosign做鏡像簽名,本周實踐了一下, ubuntu20.04.4,安裝docker,sudo apt install docker.io, sudo systemctl enable docker, sudo gpasswd -a ubuntu docker, newgrp docker, 安裝docker-compose,sudo apt instal
    VSole
    網絡安全專家
      亚洲 欧美 自拍 唯美 另类