AVt天堂网 手机版,亚洲va久久久噜噜噜久久4399,天天综合亚洲色在线精品,亚洲一级Av无码毛片久久精品

當前位置:首頁 > 科技  > 軟件

互聯網架構模板:“開發層”和“服務層”技術

來源: 責編: 時間:2024-05-16 09:08:34 128觀看
導讀在分析互聯網業務發展的特點時,我們注意到一個明顯的趨勢:系統的復雜性不斷增加。這種復雜性主要體現在系統數量的增加以及不同系統由不同團隊開發。如果各團隊采用不同的開發框架和技術,會引發諸多問題,如技術人員間缺乏

在分析互聯網業務發展的特點時,我們注意到一個明顯的趨勢:系統的復雜性不斷增加。這種復雜性主要體現在系統數量的增加以及不同系統由不同團隊開發。如果各團隊采用不同的開發框架和技術,會引發諸多問題,如技術人員間缺乏共同語言、技術掌握需要大量人力資源、團隊間人員流動困難等。xDt28資訊網——每日最新資訊28at.com

為了解決這些問題,互聯網公司通常會選擇統一的技術方向和開發框架。例如,Java領域的SSH、SpringMVC、Play,Ruby的Ruby on Rails,PHP的ThinkPHP,以及Python的Django等。這種做法不僅提升了團隊的協作效率,也優化了組織資源的配置。xDt28資訊網——每日最新資訊28at.com

在選擇框架時,通行的原則是優先考慮成熟的框架,避免盲目追新。成熟的框架有幾個明顯優點:首先,文檔資料完善,大部分問題都能通過搜索解決;其次,由于使用者眾多,招聘時也更易找到合適的人才;最后,成熟的框架通常更穩定,適合長期使用,這對企業的持續發展非常重要。xDt28資訊網——每日最新資訊28at.com

Web 服務器

開發框架雖然關鍵于業務功能的實現,但要讓這些功能真正運作并服務于用戶,服務器的角色是不可或缺的。xDt28資訊網——每日最新資訊28at.com

考慮到開發一個成熟的 Web 服務器所需的高昂成本,以及市場上已有眾多成熟的開源 Web 服務器,互聯網行業普遍采用現成的解決方案。這意味著選擇一個流行的開源服務器通常足以滿足需求。大型公司可能會根據自己的業務需求對開源服務器進行二次開發,如淘寶開發的 Tengine,但大多數公司只需深入理解開源服務器的機制,并通過優化設置和調整配置來滿足業務需求。xDt28資訊網——每日最新資訊28at.com

選擇服務器時,需要考慮到開發語言的兼容性。例如,Java通常使用Tomcat、JBoss或Resin;而PHP和Python則常用Nginx。當然,選擇Apache可以說是最保險的做法,因為它支持各種語言。xDt28資訊網——每日最新資訊28at.com

對于Apache的性能問題,實際上沒有必要過早擔心。一般來說,只有當業務規模擴大到Apache難以支持時,才需要考慮替換,那時候資源將更為充足,包括資金、人力和時間。xDt28資訊網——每日最新資訊28at.com

容器

近年來,容器技術尤其是Docker,已經在互聯網行業中變得極為流行。例如,騰訊的Docker應用已經擴展到萬臺規模的實踐,而新浪微博也在其紅包服務中實施了大規模的Docker集群。xDt28資訊網——每日最新資訊28at.com

相比之下,傳統的虛擬化技術如虛擬機,盡管解決了跨平臺問題,但由于其龐大且啟動慢,資源占用高的特性,其在互聯網行業的應用并未廣泛。Docker的容器技術雖不具備跨平臺能力,但其快速啟動和極低的資源占用使其迅速獲得了廣泛應用,容器技術被視為技術發展的未來主流。xDt28資訊網——每日最新資訊28at.com

Docker的影響遠超傳統的虛擬化或容器技術:xDt28資訊網——每日最新資訊28at.com

運維方式將徹底改變:Docker的快速啟動和低資源占用特性,使得基于Docker的自動化和智能化運維將成為新的運維標準。xDt28資訊網——每日最新資訊28at.com

設計模式將發生根本變化:Docker低成本啟動新容器的特性,將促進設計思維向“微服務”方向發展。例如,傳統網站的登錄、注冊、頁面訪問和搜索等功能通常集成于一體。引入容器技術后,這些功能可以從一開始就以服務化的方式進行設計,從而避免隨著訪問量增大而需要對系統進行重構的問題。xDt28資訊網——每日最新資訊28at.com

服務層技術

隨著互聯網業務的持續發展,業務系統的數量和復雜度呈現上升趨勢。例如,為了支持一個A業務系統的運行,可能需要與B、C、D、E等多達十幾個其他系統進行協作。從數學角度看,系統間的依賴關系呈指數級增長。例如,3個系統之間可能存在3條相互關聯的路徑,而6個系統之間則有15條路徑。xDt28資訊網——每日最新資訊28at.com

服務層的核心目標是減少這些系統間的復雜度。以下是配置中心的主要優點和功能:xDt28資訊網——每日最新資訊28at.com

  1. 集中管理配置:
  • 當系統數量較少時,各個系統通常獨立管理自己的配置。但隨著系統數量的增加,這種分散管理方式可能導致上線新功能或處理線上問題時效率低下,因為這需要多個系統的協作以及大量的配置檢查和溝通協調。
  • 個別系統獨立管理配置時,通常通過文本編輯器進行修改,這樣容易發生錯誤,例如將IP地址中的數字0誤輸入為字母O,這類錯誤肉眼難以識別,但通過程序檢查則相對容易發現。
  1. 配置中心的實現目的:
  • 實現配置中心主要是為了解決上述問題,提高操作效率,并使所有配置集中在一個地方,便于檢查和協作。
  • 配置中心還可以通過程序化規則(如正則表達式)進行檢查,有效避免常見的配置錯誤,比如檢查數值范圍、IP地址、URL地址等。
  1. 配置的備份與恢復:
  • 配置中心不僅作為配置的集中地,還相當于對系統配置的一種備份。在遇到硬件故障如整機磁盤損壞或主板故障時,如果沒有配置中心,恢復工作將非常耗時且容易出錯,需要逐個通過Vim等工具編輯配置文件。有了配置中心,可以迅速搭建新環境并恢復業務運行。

通過配置中心,互聯網公司能夠有效應對日益增長的系統復雜性,提升整體運維效率。xDt28資訊網——每日最新資訊28at.com

下面是配置中心簡單的設計,其中通過“系統標識 + host + port”來標識唯一一個系統運行實例是常見的設計方法。xDt28資訊網——每日最新資訊28at.com

圖片圖片xDt28資訊網——每日最新資訊28at.com

服務中心

當系統數量較少時,系統間的互相調用通常是直接在各自系統的配置文件中記錄的。但隨著系統數量的增加,這種直接配置的方法開始顯現出其局限性。xDt28資訊網——每日最新資訊28at.com

例如,如果A系統開發了一個新的Y接口來替代現有的X接口,并且希望十個依賴于X接口的系統切換到Y接口,那么這涉及到的十個系統可能需要在幾十甚至上百臺機器上修改配置并重啟,這個過程的效率非常低。xDt28資訊網——每日最新資訊28at.com

此外,如果A系統有20臺機器,其中5臺機器出現故障,其他系統如果通過域名訪問A系統,在域名緩存失效之前,仍然可能訪問到這些故障的機器。如果其他系統是通過IP地址來訪問A系統,那么每當A系統增加或刪除機器時,所有依賴的系統都需要在多臺機器上同步這些更改,這種協調工作的負擔也是巨大的。xDt28資訊網——每日最新資訊28at.com

為了解決跨系統依賴中的配置和調度問題,服務中心應運而生。服務中心的實現通常有兩種形式:服務名字系統和服務總線系統。xDt28資訊網——每日最新資訊28at.com

服務名字系統(Service Name System)

這個概念類似于DNS(域名系統)。正如DNS的主要功能是將域名解析為IP地址,因為IP地址難以記憶,而域名相對容易記憶。服務名字系統的目的是將服務名稱解析為“主機+端口+接口名稱”。和DNS相似,服務名字系統的核心功能是解析,而實際的請求仍然由請求方發起。xDt28資訊網——每日最新資訊28at.com

基本的設計如下:xDt28資訊網——每日最新資訊28at.com

圖片xDt28資訊網——每日最新資訊28at.com


xDt28資訊網——每日最新資訊28at.com

服務總線系統(Service Bus System)

看到這個翻譯,相信你可能立刻聯想到計算機的總線。沒錯,兩者的本質也是基本類似的。xDt28資訊網——每日最新資訊28at.com

相比服務名字系統,服務總線系統更進一步了:由總線系統完成調用,服務請求方都不需要直接和服務提供方交互了。xDt28資訊網——每日最新資訊28at.com

基本的設計如下xDt28資訊網——每日最新資訊28at.com

圖片圖片xDt28資訊網——每日最新資訊28at.com

“服務名字系統”和“服務總線系統”簡單對比如下表所示。xDt28資訊網——每日最新資訊28at.com

圖片圖片xDt28資訊網——每日最新資訊28at.com

消息隊列

互聯網業務的一個特點是“快”,這就要求很多業務處理采用異步的方式。例如,大 V 發布一條微博后,系統需要發消息給關注的用戶,我們不可能等到所有消息都發送給關注用戶后再告訴大 V 說微博發布成功了,只能先讓大 V 發布微博,然后再發消息給關注用戶。xDt28資訊網——每日最新資訊28at.com

傳統的異步通知方式是由消息生產者直接調用消息消費者提供的接口進行通知的,但當業務變得龐大,子系統數量增多時,這樣做會導致系統間交互非常復雜和難以管理,因為系統間互相依賴和調用,整個系統的結構就像一張蜘蛛網,如下圖所示。xDt28資訊網——每日最新資訊28at.com

圖片圖片xDt28資訊網——每日最新資訊28at.com


xDt28資訊網——每日最新資訊28at.com

消息隊列就是為了實現這種跨系統異步通知的中間件系統。消息隊列既可以“一對一”通知,也可以“一對多”廣播。以微博為例,可以清晰地看到異步通知的實現和作用,如下圖所示xDt28資訊網——每日最新資訊28at.com

圖片圖片xDt28資訊網——每日最新資訊28at.com

對比之前的復雜的蜘蛛網架構,采用消息隊列系統后的改變非常顯著:xDt28資訊網——每日最新資訊28at.com

結構變化:原本的網狀結構變為了更清晰的線性結構,使得整體架構更加條理化。xDt28資訊網——每日最新資訊28at.com

解耦生產與消費:消息的生產者與消費者之間實現了解耦,簡化了實現過程。xDt28資訊網——每日最新資訊28at.com

擴展性提高:增加新的消費者時,對消息生產者沒有任何影響,這大大便利了系統的擴展。xDt28資訊網——每日最新資訊28at.com

高性能與高可用性:消息隊列系統能夠實現高可用和高性能,減少了在各個子系統中重復建設的需要,從而降低了工作量。xDt28資訊網——每日最新資訊28at.com

業務集中:各個子系統可以集中精力于業務本身,簡化了技術實現。xDt28資訊網——每日最新資訊28at.com

盡管消息隊列的基礎功能相對簡單,但要實現高性能、高可用性、消息的時序性和事務性則較為復雜。市面上已有許多成熟的開源解決方案如RocketMQ、Kafka、ActiveMQ等,這些通常足以滿足基本需求。然而,如果業務對消息的可靠性、順序和事務性有更高要求,就需要深入了解并可能修改這些開源方案,以避免潛在的問題。xDt28資訊網——每日最新資訊28at.com

雖然開源方案使用方便,但一旦需要修改就可能變得復雜。因此,許多公司選擇自行開發消息隊列系統,這雖然重復了一些工作,但能更好地適應公司的具體業務需求,實現快速的定制開發。xDt28資訊網——每日最新資訊28at.com

今天我為你講了互聯網架構模板中的開發層和服務層技術,希望對你有所幫助。xDt28資訊網——每日最新資訊28at.com

本文鏈接:http://www.tebozhan.com/showinfo-26-88363-0.html互聯網架構模板:“開發層”和“服務層”技術

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: Pandas 處理 CSV 數據的十個步驟

下一篇: C# 中 await 和 Task.Wait 的區別

標簽:
  • 熱門焦點
Top