一、架構設計目標
架構設計目標即另外乙個需求,對其他開發者部署出乙個簡單的程式設計模型,程式設計師可以將系統視為乙個單機開發環境。隱藏分布式和併發需要一種嚴格限制的程式設計模型。
典型的遊戲伺服器開發模型:反應式客戶端(遊戲機)(生成事件)服務端的事件***(監聽事件,並生成任務),此任務可與多個客戶端進行互動或者是服務端自己週期性生成任務。
這是一種典型的胖客戶端機制,適用於遊戲和虛擬世界,也適用於j2ee和web服務的應用。區別另外一種經典的企業級架構:瘦客戶端->胖客戶端->更胖的資料庫伺服器。伺服器儲存客戶端的絕大部分資訊,絕大多數真正的工作在伺服器上完成。
遊戲架構要求使用者體驗好,大的延遲不被接受,甚至犧牲吞吐量換取少的延遲。而企業環境的架構重在吞吐量,管理業務。有一點延遲可以接受。一般情況下,處理擁塞的解決方案:
(1)基於地理位置來實現
遊戲設計包含不同的遊戲區域,每個虛擬區域執行一台伺服器,每個區域擁有自我限制功能,當人數過多時,服務擁塞,遊戲變慢,趣味性下降,使用者就轉向更有趣的區域,響應時間就會得到改進。(對於棋牌類遊戲,每個房間或區域有人數限制,滿的房間可以限制進入)
這種開發方法的問題:遊戲設計時,需要決定哪些區域放在一台伺服器上,而新增新的區域時比較容易,若改動原來的區域,可能需要改動**,這些都是開發的工作量。
(2)分割槽sharding
乙個分割槽是乙個區域的副本,執行在自己的伺服器上,獨立於其他分割槽,不同的玩家進入同乙個區域的不同副本(分割槽)。這樣的缺點時,不允許不同副本的玩家彼此進行互動。
書中介紹了什麼樣的的架構才算是美麗的架構,美麗的架構在開始時,要關注其實用性,好的架構應該是每天被很多人使用的;使用架構之前,我們還要考慮它必須要能夠被構建(可構建性);接下來就是關注架構的可永續性,好的架構應該能夠經得起時間的考驗,能夠考慮到未來的變更,允許期望的修改;最後,要尋找一些能讓人高興的架構(開發人員、測試人員、使用者等),這就要求架構必須滿足概念完整性,這樣的架構才易懂,易用,才會做到簡單而又不過於簡單。幾個比較常見的美麗架構的例子有:a-7e艦載飛行處理器的架構;朗訊5ess**交換機軟體架構;全球資訊網;unix系統。
《架構之美》閱讀筆記01
1丶架構是什麼 架構應該是一組結構,於一組設計規則,能減少複雜性。常見定義是,每種結構由各種型別的元件和關係組成,它們如何組合 相互呼叫 通訊 同步 及其其他互動。元件及元件之間的關係 2丶架構目的 確保利益相關人員的關注點能夠得到滿足,而在構想 計畫 構建和維護系統時,系統架構能夠處理複雜性。為了...
架構之美閱讀筆記01
為什麼要學習架構?之前,老師教我們軟體架構的時候,就告訴我們,軟體開發,先從架構入手。他說,弄清楚了架構,再來學習具體的語法和技術就很簡單了。以前不懂,底層具體的細節都不了解,如何來構建乙個系統呢?就像讓我們去建造一棟大廈,剛開始想到的可能就是需要磚 砌牆的工具 這就像剛學習程式設計的自己,以為掌握...
《架構之美》閱讀筆記01
架構之美在於其簡潔深刻地描述和解決現實的軟體設計問題,無論是它為軟體開發人員減少的麻煩,還是本身形式上的和諧和整齊,都足以讓人賞心悅目。架構之美 圍繞5個主題領域來組織本書的內容 概述 企業應用 系統 終端使用者應用和程式語言。本書讓最優秀的設計師和架構師來描述他們選擇的軟體架構,剝開架構的各層,展...