云計算-特殊機制(Specialsed Mechanisms)

自動擴展監聽器 (Automated Scaling Listener)

????????自動擴展監聽器是一種特定類型的服務代理。它運行在云提供商的網絡中,監控云消費者和云服務之間的網絡流量。通過分析消費者和服務之間的消息量和類型,它可以測量云服務的負載。

????????????????自動擴展監聽器對變化的負載有兩種一般響應:

  1. 自動調整資源(縮小或擴大)以滿足負載。擴展的參數通常是預定義的,并依賴于客戶的約定定價模型。
  2. 通知客戶,例如通過客戶的遠程控制臺。客戶隨后做出資源分配決策。

記住,我們可以考慮兩種類型的擴展,通過移動資源到更高或更低容量的設備進行垂直擴展,或通過添加或刪除相同的IT服務進行水平擴展。

活動10

????????自動擴展監聽器根據收集的信息進行擴展和收縮。

????????它多長時間擴展一次資源? 自動擴展監聽器通常根據實時監控的數據來決定是否擴展資源。這意味著擴展的頻率取決于監控到的負載變化情況。具體的時間間隔可能會根據配置和服務需求而有所不同,一些系統可能是每幾分鐘檢查一次,而其他系統可能會更加頻繁或不那么頻繁。

????????它是如何做到的? 自動擴展監聽器通過分析消費者與云服務之間的網絡流量,確定當前的負載情況。根據預先設定的擴展策略和參數,它可以自動觸發擴展或收縮操作。這些操作可以包括增加或減少虛擬機實例的數量,調整資源的分配,如CPU、內存或存儲等。

????????擴展和收縮是否有極限? 是的,擴展和收縮通常都有一定的限制。這些限制可能包括:

  1. 硬件資源限制:物理服務器的容量是有限的,不能無限擴展。
  2. 預定義的配置參數:根據客戶的定價模型和合同約定,擴展和收縮的范圍會受到限制。
  3. 服務質量要求:為了保持服務質量,可能會設定一個最小和最大的資源限制,以避免過度擴展或過度收縮影響服務穩定性。

負載均衡器 (Load Balancer)

????????負載均衡器是一種有助于水平擴展(橫向擴展)的機制。如前所述,物理設備的擴展容量存在物理限制。一旦達到這個限制,我們只能通過添加更多的物理設備來擴展(水平擴展)。負載均衡器攔截服務流量,并根據預定策略將請求分配給多個相同的服務,并根據流量調整響應服務的數量。

????????重定向請求到可用服務的策略有幾種:

  1. 非對稱策略——請求被分配給最有能力處理它的服務。這可能基于服務當前處理能力的反饋,或者不同服務的處理能力不同,導致請求可以定向。
  2. 優先級策略——不同請求可能有不同的優先級,因此可以根據請求的優先級做出重定向決策。
  3. 內容感知策略——負載均衡器檢查請求類型,并將其重定向到適當的服務。

????????負載均衡器可以在多種設備中實現。網絡交換機可以配置為平衡負載。還有專門用于負載均衡的硬件設備和安裝在普通操作系統(如Unix)中的專用軟件負載均衡器。最后,還有專門為云提供商設計的服務代理,這些代理接口到云管理軟件,允許動態重新配置云服務流量。

????????負載均衡器的重要特征之一是對云服務用戶是不可見的。這意味著云消費者不會意識到有多個服務在響應他們的請求。這也意味著數據同步會被徹底考慮。從用戶的角度來看,無論哪個服務響應,數據都必須保持一致。

活動11

????????服務如何能夠通知負載均衡器其當前負載狀態? 服務可以通過以下幾種方式通知負載均衡器其當前負載狀態:

  1. 健康檢查:負載均衡器定期對服務進行健康檢查,獲取服務的當前負載和運行狀態。這些檢查可以包括HTTP請求、TCP連接或其他協議。
  2. 負載報告:服務可以主動發送負載報告給負載均衡器,報告當前的CPU使用率、內存使用率、請求數等關鍵指標。
  3. 反饋機制:服務可以通過反饋機制向負載均衡器發送當前的處理能力和負載信息。例如,服務在響應負載均衡器的請求時附加負載信息。
  4. API接口:負載均衡器提供API接口,服務可以通過調用這些API接口報告其負載狀態。

????????在案例研究中,負載均衡器如何確定將傳入請求發送到哪個服務? 在案例研究中,負載均衡器可以通過以下幾種策略來確定將傳入請求發送到哪個服務:

  1. 非對稱策略(Asymmetric):負載均衡器根據服務當前的處理能力分配請求。它可能基于服務反饋的當前處理能力信息,將請求發送給最有能力處理該請求的服務。
  2. 優先級策略(Priorities):負載均衡器根據請求的優先級來分配請求。優先級較高的請求可能會被分配給響應速度較快或處理能力較強的服務。
  3. 內容感知策略(Content-aware):負載均衡器檢查請求的類型,并將其重定向到適當的服務。比如,根據請求的內容類型,將視頻請求分配給專門處理視頻的服務。
  4. 輪詢策略(Round-robin):負載均衡器以輪詢的方式將請求依次分配給各個服務,確保負載均勻分布。

????????通過以上這些策略,負載均衡器能夠智能地分配請求,優化服務性能并確保高可用性。

SLA監控器 (SLA Monitor)

????????SLA監控器顧名思義是用于監控云服務性能以確保其滿足客戶的SLA要求。SLA監控器向SLA管理系統報告統計數據(在前一主題中討論過)。它們還可以動態接口到資源管理系統(在前一主題中討論過),以調整當前的云配置。

????????對于SLA的監控,可以考慮兩種類型:

  1. 運行系統的服務級別。這包括響應時間和吞吐量的數據。這可以通過作為監控代理來實現,查看用戶和服務之間的流量而不改變它。
  2. 正常運行時間。這包括系統是否可用的數據。這可以通過輪詢數據來實現。
活動12

????????閱讀文章(https://obkio.com/blog/sla-monitoring-and-reporting/),然后回答以下問題:

????????在SLA中考慮哪些因素?
????????可用性:服務的正常運行時間和停機時間,即服務在多大程度上可以被客戶訪問。
????????性能:包括響應時間、處理速度和吞吐量等服務質量指標。
????????可靠性:服務的穩定性和錯誤率,以及在出現問題時的恢復能力。
????????支持和維護:包括技術支持的響應時間、解決問題的時間,以及維護窗口和計劃停機時間。
????????安全性:服務的安全措施,包括數據保護、訪問控制和合規性要求。
????????計費和費用:明確服務費用、計費模式和任何可能的額外費用。
????????服務范圍:定義服務的具體功能和能力,明確服務的邊界。
????????可擴展性:服務在需求變化時能夠擴展或收縮的能力。
????????數據管理:包括數據備份、恢復和數據存儲的位置等方面。
????????監控和報告:服務提供商如何監控服務并向客戶報告服務狀態和性能。
????????SLA的好處
????????明確期望:SLA明確了服務提供商和客戶之間的期望,減少了誤解和沖突。
????????質量保證:通過定義服務標準和性能指標,確保服務質量。
????????問題解決:SLA包含問題處理和解決的時間框架,確保問題得到及時處理。
????????成本管理:明確的計費模式和費用結構幫助客戶更好地管理成本。
????????客戶滿意度:通過提供一致和可靠的服務,提高客戶滿意度和信任度。
????????風險管理:通過定義服務的可靠性和安全性措施,降低運營風險。
????????合規性:確保服務符合相關法律和行業標準,保護客戶和服務提供商的權益。
????????持續改進:通過監控和報告服務績效,服務提供商可以識別改進機會,提升服務質量。
????????競爭優勢:提供高質量的SLA可以成為服務提供商的競爭優勢,吸引更多客戶。
????????契約保障:作為合同的一部分,SLA為客戶提供法律保障,確保服務提供商履行承諾。

按使用付費監控器 (Pay-Per-Use Monitor)

????????按使用付費監控器對云提供商至關重要,以便向客戶收費。按使用付費監控器收集與客戶財務合同直接相關的統計數據。這意味著如果提供商改變定價安排,按使用付費監控器必須進行修改或配置,以保存正確的信息。

????????有多種方式來定價云服務:

  1. 請求和后續響應消息的數量,
  2. 數據量(消息大小),
  3. 帶寬消耗(例如,每天的兆字節),
  4. IT資源消耗,例如占用的存儲空間。

????????按使用付費監控器收集的信息被保存到日志文件中,并由計費管理系統處理(見前一主題)。

活動13

????????閱讀這些文章(CloudWatch usage metrics - Amazon CloudWatch, https://www.togai.com/blog/pay-per-usage-and-benefits/),然后回答以下問題:

????????什么是 "CallCount",它與云計算支付和成本系統有什么關系?

????????"CallCount" 是指在一定時間段內發出的請求數量。在云計算中,"CallCount" 通常用來衡量和記錄用戶對某一特定服務或API的調用次數。這一指標在云計算支付和成本系統中具有重要作用,因為它可以直接反映出服務的使用頻率和負載情況。

????????在基于 "CallCount" 的計費模型中,云服務提供商會根據客戶發送的請求次數進行計費。這種計費方式的優點是透明且容易理解,客戶可以清楚地知道自己使用了多少次服務,每次調用的成本是多少。這種方式特別適用于以下情況:

  • 服務調用頻率較高且難以預估。
  • 需要按需擴展和縮減資源。
  • 需要根據實際使用量進行精確計費,避免資源浪費。
????????如果你擁有一家軟件公司并正在尋找租賃云平臺供你的開發人員使用,PAYG(按使用付費)是否是合適的定價模型,為什么?

????????PAYG(按使用付費) 是一種按實際使用量進行計費的定價模型。對于一家軟件公司來說,使用PAYG模型租賃云平臺具有以下優點:

  1. 成本控制:按使用付費意味著公司只需為實際使用的資源付費,這可以避免不必要的資源浪費和高昂的固定成本。
  2. 靈活性:PAYG模型提供了極大的靈活性,能夠根據需求動態調整資源分配。這對于開發和測試階段的資源需求波動特別有利。
  3. 可擴展性:隨著項目的進展和用戶需求的變化,公司可以方便地擴展或縮減資源,而無需提前購買或租賃大量的硬件設備。
  4. 預算管理:PAYG模型使公司能夠更好地預測和管理IT預算,因為成本是基于實際使用量計算的,透明且可預測。
  5. 初期投資低:對于初創公司或小型企業,PAYG模型無需大量前期投資,可以降低進入門檻,快速啟動項目。

????????綜上所述,如果你的軟件公司需要靈活、可擴展的云服務,同時希望嚴格控制成本和預算,那么PAYG模型是一個非常合適的定價模型。它不僅能夠提供按需擴展的能力,還能確保你只為實際使用的資源付費,從而優化成本效益。

審計監控器 (Audit Monitor)

????????審計監控器是一種收集合同或政府法規所需信息的代理。此類信息可能因合同和客戶及提供商的各種監管環境而異。

????????例如,某些部署到云提供商虛擬機的軟件可能有許可限制。例如,云用戶可能只被授權將軟件提供給澳大利亞用戶。審計監控器可以配置為記錄傳入的IP地址,以便提供一份傳入請求的位置報告給云用戶。

????????還有關于訪問健康、兒童和財務數據的法律,可能要求記錄對標識數據或存儲在云資源中的應用程序的訪問日志。當懷疑存在違規行為時,這些日志可能需要提供給執法機構。

參考:

  1. https://cloud.google.com/monitoring/audit-logging
  2. https://cloud.google.com/logging/docs/audit
  3. Cloud Audits - AWS Audit Manager - AWS

故障轉移系統 (Failover System)

????????故障轉移系統機制用于在不影響系統操作的情況下(通常用戶不會察覺到)自動從IT資源故障中恢復。它們依賴于存在備份的重復系統,并能夠檢測主系統的故障,并在必要時切換到備份。這需要備份系統具有與運行系統相同的數據和軟件。

????????顯然,故障轉移系統更昂貴,因為資源在某種程度上是重復的。維護備份系統的相同狀態也存在開銷。這意味著故障轉移系統通常應用于關鍵任務應用程序。能夠承受偶爾延遲的系統不需要實現故障轉移系統。

????????教科書識別了兩種類型的故障轉移:

  1. 主動-主動故障轉移。這是指相關的IT資源是活動的,并通過某種負載均衡機制共享負載。當其中一個資源失敗時,剩余的重復資源接管負載,因為負載均衡器僅將流量定向到它們。
  2. 主動-被動故障轉移。這是指一個非活動的備用系統接管失敗的IT資源。這需要將所有請求重定向到備用系統。
活動14
????????主動-主動故障轉移和主動-被動故障轉移的區別

????????主動-主動故障轉移: 在主動-主動故障轉移(Active-Active Failover)中,所有的IT資源都是同時在線并處理請求的。負載均衡器將流量分配給多個活動節點,從而確保每個節點都在分享負載。如果一個節點發生故障,其他節點會自動接管其負載,繼續提供服務。這種方式的優點是資源利用率高,故障轉移無縫,用戶通常不會察覺到服務中斷。

????????主動-被動故障轉移: 在主動-被動故障轉移(Active-Passive Failover)中,只有一個IT資源節點是活動的,處理所有請求,而其他節點處于待機狀態,不處理請求。當活動節點發生故障時,待機節點會被激活并接管工作。這種方式的優點是實現簡單,但資源利用率低,因為待機節點在正常情況下不處理任何請求。

????????案例研究中的主動-被動故障轉移

????????當SLA監控器檢測到不同數據中心之間的虛擬服務器發生故障時,以下步驟會發生:

  1. 檢測故障:SLA監控器持續監控虛擬服務器的狀態。當檢測到某個虛擬服務器發生故障時,立即觸發故障轉移機制。
  2. 通知負載均衡器:SLA監控器通知負載均衡器,將流量從發生故障的虛擬服務器重定向到備用的虛擬服務器。
  3. 激活備用服務器:位于另一個數據中心的備用虛擬服務器被激活,開始接收和處理所有新的請求。
  4. 恢復服務:用戶請求被無縫地轉移到備用服務器,確保服務的連續性和可用性。
  5. 修復故障服務器
    • 診斷問題:技術團隊或自動化系統開始診斷故障虛擬服務器的問題,找出故障原因。
    • 修復問題:根據診斷結果,修復硬件或軟件問題。這可能包括更換硬件組件、修復軟件錯誤或重新啟動服務器。
    • 驗證修復:修復完成后,對虛擬服務器進行全面測試,確保其恢復正常并且穩定運行。
  6. 重新加入集群:修復后的虛擬服務器重新加入到集群中,作為新的備用節點,準備在下一次故障時接管工作。

????????通過這些步驟,主動-被動故障轉移機制確保在一個虛擬服務器發生故障時,能夠迅速恢復服務,同時保持數據完整性和系統穩定性。

管理程序 (Hypervisor)

????????管理程序機制是啟動虛擬服務器實例的組件,這些實例在軟件上看起來像物理服務器。我們在討論虛擬服務器(VM)時討論了管理程序的作用。管理程序在云提供商的網絡中至關重要,因為它提供了可以由其他組件管理的虛擬服務器。它為其管理的虛擬服務器提供了一個看起來像真實硬件的接口,并確保虛擬機之間不會相互干擾。

????????云提供商通常有許多實際的物理服務器。這意味著VIM(虛擬基礎設施管理器)管理許多運行在每個可共享物理服務器上的管理程序。VIM將虛擬服務器分配給消費者,并在必要時在管理程序之間移動虛擬服務器。當自動擴展監聽器指示時,VIM還可以指示管理程序擴展或縮減虛擬服務器,以便它們可以訪問更多的物理服務器資源。

資源集群 (Resource Cluster)

????????資源集群是一組通常相同的IT資源,旨在使其看起來比任何單個組件更強大。資源集群需要同步和負載均衡機制,以便多個資源看起來像一個資源。資源集群通常具有更好的可用性統計數據,因為它可以實現故障轉移機制來檢測和恢復單個組件故障。

????????資源集群的屬性包括:

  1. 資源之間的高速數據連接。這可以使用高速LAN技術,但也可以是更高速度的專用集群通信,如光纖通道(FC)和其他短距離/高速通道,例如SCSI。
  2. 管理軟件通常分布在集群資源之間,但也可能有單獨的管理資源組件。管理軟件使集群看起來像一個設備。
  3. 數據同步使用高速數據連接來維護集群資源之間的一致狀態。請注意,此活動對用戶是不可見的,并形成集群中的單獨內部通信層。
  4. 集群的組件通常具有相同的容量,以便更容易管理集群。

????????資源集群的三個示例:

  1. 服務器集群。這可以在物理或虛擬級別實現。管理程序可以配置為自動執行我們在上一節中討論的虛擬服務器管理操作,而無需外部組件(如VIM)的參與(因為集群看起來像一個設備對VIM)。
  2. 數據庫集群。數據庫集群用于提高數據的可用性。數據在多個存儲設備上同步。當設備故障時,它將包括一個故障轉移系統,切換到運行設備上的重復數據。
  3. 大數據集集群。這是一個允許數據分布在多個設備上的數據集群,通常是由于數據量大。

????????你可以將常見的RAID技術視為早期的集群技術。

???????兩種類型的資源集群:

  1. 負載均衡集群——工作在節點之間分配,使集群看起來比單個組件具有更高的容量。
  2. 高可用性(HA)集群——此集群維護多個相同的資源,并實現故障轉移機制以從集群節點故障中恢復。這種類型的集群提供了與其每個組件類似的資源容量。

????????這兩種類型的集群比具有類似容量的未集群資源更昂貴。它們的優勢在于不限于物理資源容量和/或為關鍵任務應用程序提供更高的可用性。

參考:

  1. Resource Cluster in Cloud Computing - GeeksforGeeks
  2. IBM Documentation
  3. https://outtechno.com/resource-cluster-cloud-computing/
活動15
????????管理程序集群技術與云提供商的VIM(虛擬基礎設施管理器)之間的關系

????????管理程序(Hypervisor)負責創建和運行虛擬機(VM),它在物理服務器上提供了一個虛擬化層,使多個虛擬機可以共享同一個物理硬件資源。管理程序集群技術涉及多個管理程序的協調工作,使虛擬機可以在集群中的不同物理服務器之間遷移和擴展,從而提高資源利用率和系統的可用性。

????????**虛擬基礎設施管理器(VIM)**是云提供商用來管理整個虛擬化環境的工具。它與管理程序集群技術緊密相關,主要負責以下幾個方面:

  1. 資源分配:VIM負責在不同的管理程序之間分配虛擬機資源,確保每個虛擬機都能獲得所需的計算、存儲和網絡資源。
  2. 監控與管理:VIM監控管理程序集群的健康狀態和性能,能夠實時檢測和處理故障,確保集群的高可用性。
  3. 自動擴展:VIM可以根據負載情況自動指示管理程序擴展或縮減虛擬機實例,實現資源的動態調整。
  4. 負載均衡:VIM通過在集群中的多個管理程序之間平衡負載,優化資源使用并提高系統性能。
  5. 遷移管理:VIM支持虛擬機的實時遷移(如vMotion),使虛擬機可以在不同的物理服務器之間無縫移動,維護系統的連續性和可靠性。

????????簡而言之,管理程序集群技術為虛擬化提供了基礎設施,而VIM則通過集中管理和協調這些管理程序,實現云環境的高效運作。

????????數據庫集群和大數據集集群之間的區別

????????數據庫集群大數據集集群是兩種不同類型的集群,盡管它們都有助于提高數據處理和存儲的能力,但它們的設計目標和實現方式有所不同。

????????數據庫集群

  1. 目的:主要用于提高數據庫系統的可用性、性能和可靠性。它通過將數據復制到多個數據庫實例中,實現負載均衡和故障轉移。
  2. 數據同步:數據庫集群要求高精度的數據同步,確保所有數據庫實例中的數據保持一致。這通常通過實時復制(如主從復制、雙活復制)實現。
  3. 故障轉移:在一個數據庫實例發生故障時,集群中的其他實例可以立即接管,保證服務的連續性。
  4. 應用場景:適用于需要高可用性和高一致性的事務處理系統,如金融交易系統、在線業務系統等。

????????大數據集集群

  1. 目的:主要用于處理和存儲大規模數據集,適用于大數據分析和處理任務。它通過將數據分布在多個節點上,提高數據處理能力和存儲容量。
  2. 數據分布:大數據集集群通過將大數據集切分成小塊,并分布在不同的節點上來實現并行處理。這種方式不需要嚴格的數據同步,而是關注數據的分布和并行計算。
  3. 容錯性:大數據集集群通常實現數據冗余和容錯能力,即使某個節點失敗,數據也不會丟失,集群可以繼續運行。
  4. 應用場景:適用于大規模數據分析、機器學習、數據挖掘等任務,如Hadoop集群、Spark集群等。

????????總結來說,數據庫集群注重數據的一致性和高可用性,適用于需要頻繁事務處理的應用;而大數據集集群則注重數據的分布式處理和存儲,適用于大規模數據分析和處理的應用。

多設備代理 (Multi-Device Broker)

????????多設備代理位于云服務和其用戶之間。它將云服務的響應轉換為與用戶使用的設備兼容的格式。這對于具有不同設備或不同操作系統的用戶訪問服務是必要的,例如Windows 10、Windows 7、MacOS、Android、iOS等。對于在瀏覽器中運行的應用程序,它可能還需要對不同的瀏覽器提供不同的響應,例如Chrome、Safari、Internet Explorer、Firefox等。還可能需要在更高級別上轉換響應。

????????多設備代理通常實現為獨立的網關或并入網關組件。教科書中有三個示例:

  1. XML網關——驗證XML數據
  2. 云存儲網關——將云存儲API(例如REST或SOAP)轉換為塊存儲協議(例如光纖通道、NFS、SMB)。
  3. 移動設備網關——將移動設備協議轉換為與云服務兼容的協議。

????????這些網關可以在任何協議級別上操作。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/15679.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/15679.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/15679.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

常見 JVM 面試題補充

原文地址 : 26 福利:常見 JVM 面試題補充 (lianglianglee.com) CMS 是老年代垃圾回收器? 初步印象是,但實際上不是。根據 CMS 的各個收集過程,它其實是一個涉及年輕代和老年代的綜合性垃圾回收器。在很多文章和書籍的劃分中&…

SpringCloud Alibaba的相關組件的簡介及其使用

Spring Cloud Alibaba是阿里巴巴為開發者提供的一套微服務解決方案,它基于Spring Cloud項目,提供了一系列功能強大的組件,包括服務注冊與發現、配置中心、熔斷與限流、消息隊列等。 本文將對Spring Cloud Alibaba的相關組件進行簡介&#xff…

React Native 之 動畫Animated(十二)

react-native 的 Animated API提供了一種聲明式的方式來創建平滑的動畫效果。它允許你編寫動畫邏輯,并將動畫值直接綁定到組件的樣式或布局屬性上。 react-native 的 Animated 庫通過以下方式工作: 創建動畫值:首先,你需要使用 A…

ROCm上運行預訓練BERT

14.10. 預訓練BERT — 動手學深度學習 2.0.0 documentation (d2l.ai) 下載數據集 在d2l-zh/pytorch/data目錄解壓: ~/d2l-zh/pytorch/data$ unzip wikitext-2-v1.zip Archive: wikitext-2-v1.zipcreating: wikitext-2/inflating: wikitext-2/wiki.test.tokens …

【第17章】MyBatis-Spring之注入映射器

文章目錄 前言一、注冊映射器1. XML 配置2. Java 配置 二、發現映射器1. <mybatis:scan/>2.MapperScan ( 建議 ) \color{#00FF00}{(建議)} (建議) 三、MapperScannerConfigurer總結 前言 與其在數據訪問對象&#xff08;DAO&#xff09;中手工編寫使用 SqlSessionDaoSu…

數據庫--數據庫基礎(一)

目錄 第一章 緒論 一.數據庫的基本概念 1. 數據庫的4個基本概念 2、數據庫系統的特點 二.數據庫和文件 三.數據模型 1.概念模型 2.邏輯模型(物理模型) 2.1關系模型 四.數據庫系統的三級模式結構&#xff1a; 五數據庫的二級映像功能與數據獨立性 第二章 關系數據庫…

WEBPACK開發|生產環境配置(抽離公共部分)

這是webpack4演示&#xff0c;webpack5有些插件不在推薦&#xff0c; 1. webpack.base.config.js文件的配置說明 const path require(path); const webpack require(webpack); const ExtractTextPlugin require(extract-text-webpack-plugin); // 該插件的主要是為了抽離c…

【LeetCode面試經典150題】100. 相同的樹

一、題目 100. 相同的樹 - 力扣&#xff08;LeetCode&#xff09; 給你兩棵二叉樹的根節點 p 和 q &#xff0c;編寫一個函數來檢驗這兩棵樹是否相同。 如果兩個樹在結構上相同&#xff0c;并且節點具有相同的值&#xff0c;則認為它們是相同的。 二、思路 二叉樹的題&#…

C++的lambda函數、bind函數、類函數綁定參數,學習測試用例

在C中&#xff0c;Lambda函數、std::bind 和類函數綁定參數提供了靈活的方式來處理函數調用。 Lambda函數是一種匿名函數&#xff0c;可以捕獲外部變量并在函數體內使用。它們提供了簡潔而強大的方式來定義內聯函數。std::bind 用于創建一個新的函數對象&#xff0c;其中部分參…

2024電工杯數學建模B題高質量成品論文,包括代碼數據

2024電工杯數學建模B題高質量成品論文&#xff0c;包括代碼數據 完整內容見文末名片 摘要 大學時期是學生們知識學習和身體成長的重要階段&#xff0c;良好的飲食習慣對于促進生長發育和保證身體健康具有重要意義。針對當前大學生中存在的飲食結構不合理及不良飲食習慣的問題…

為了性能,放棄tft_eSPI,選擇arduino_gfx吧

本來對于tft_espi和arduino_gfx沒啥特別的感覺&#xff0c;都是tft屏幕驅動,arduino_gfx的好處就是除了支持tft外還支持一些oled屏幕。 誰知道在探尋我那個在單片機項目上顯示中文方案 https://github.com/StarCompute/tftziku 時候&#xff0c;尋求極致性能測了一些東西。 t…

23種設計模式之一————工廠模式詳細講解

工廠模式介紹 定義分類工廠模式核心角色&#xff1a;簡單工廠模式定義特點優點缺點應用場景代碼實現 工廠方法模式&#xff08;別名&#xff1a;虛擬構造&#xff09;定義特點優點缺點應用場景代碼實現 抽象工廠模式定義特點優點缺點應用場景代碼實現工廠模式小結 定義 工廠模…

算法之背包問題

可分的背包問題是可以用貪心法來解決&#xff0c;而0-1背包問題通常使用動態規劃方法來解決。 可分背包問題&#xff1a; 在可分背包問題中&#xff0c;物品可以被分割&#xff0c;您可以取走物品的一部分以適應背包的容量。這里的關鍵是物品的價值密度&#xff0c;即單…

最小產品價格差值

題目描述 給定某產品多少天的價格&#xff0c;記錄于prices中&#xff0c;請找出任意兩天之間的最小價格差&#xff08;即abs(prices[i] - prices[j])&#xff09;的最小值&#xff0c;i!j&#xff09;并計算最小介個差組合的個數 樣例1 輸入 [1,3,7,5,12] 輸出 3 樣例2…

VTK9.2.0+QT5.14.0繪制三維顯示背景

背景 上一篇繪制點云的博文中&#xff0c;使用的vtkCameraOrientationWidget來繪制的坐標軸&#xff0c;最近又學習到兩種新的坐標軸繪制形式。 vtkOrientationMarkerWidget vtkAxesActor 單獨使用vtkAxesActor能夠繪制出坐標軸&#xff0c;但是會隨著鼠標操作旋轉和平移時…

微服務中使用Maven BOM來管理你的版本依賴

摘要: 原創出處 sf.gg/a/1190000021198564 「飄渺Jam」歡迎轉載&#xff0c;保留摘要&#xff0c;謝謝&#xff01; 為什么要使用BOM? 如何定義BOM? 項目使用方法? BOM&#xff08;Bill of Materials&#xff09;是由Maven提供的功能,它通過定義一整套相互兼容的jar包版…

通過 NIO + 多線程 提升硬件設備與系統的數據傳輸性能

一、項目展示 下圖&#xff08;模擬的數據可視化大屏&#xff09;中數據是動態顯示的 二、項目簡介 描述&#xff1a;使用Client模擬了硬件設備&#xff0c;比如可燃氣體濃度檢測器。Client通過Socket與Server建立連接&#xff0c;Server保存數據到txt文件&#xff0c;并使用W…

結構體(位段)內存分配

結構體由多個數據類型的成員組成。那編譯器分配的內存是不是所有成員的字節數總和呢&#xff1f; 首先&#xff0c;stu的內存大小并不為29個字節&#xff0c;即證明結構體內存不是所有成員的字節數和。 ??其次&#xff0c;stu成員中sex的內存位置不在21&#xff0c;即可推測…

Swift 請求用戶授權以跟蹤其跨應用或網站的活動

步驟1:導入框架 首先,需要在Swift文件中導入AppTrackingTransparency框架。 import AppTrackingTransparency import AdSupport步驟2:請求跟蹤許可 在適當的地方請求用戶的跟蹤許可。通常,這個請求會在應用啟動時或者在用戶執行某些操作(例如,訪問應用中的廣告相關功能…

Linux服務器安裝docker,基于Linux(openEuler、CentOS8)

本實驗環境為openEuler系統(以server方式安裝)&#xff08;CentOS8基本一致&#xff0c;可參考本文) 目錄 知識點實驗 知識點 Docker 是一個開源的應用容器引擎。它允許開發者將應用及其所有依賴項打包到一個可移植的容器中&#xff0c;并發布到任何支持Docker的流行Linux或Wi…