国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

高峰保護軟件:預(yù)測需求高峰的體系結(jié)構(gòu)

2019-11-18 13:16:37
字體:
供稿:網(wǎng)友

  高峰保護軟件:猜測需求高峰的體系結(jié)構(gòu)
  您的 web 應(yīng)用程序處理全球大量用戶的并發(fā)事件時,高性能的伸縮性以及可用性是要害 — 因為點擊會不斷地發(fā)生。
  
  現(xiàn)在,參加諸如 OracleWorld 等活動的用戶希望通過其瀏覽器做很多操作 — 向應(yīng)用程序設(shè)計師提出了嚴重的挑戰(zhàn),包括活動營銷公司 George P. Johnson 的技術(shù)副總裁 Michael Winner。
  
  Winner 說:“自從 Web 應(yīng)用程序出現(xiàn)以來,我們應(yīng)用程序中的數(shù)據(jù)和邏輯數(shù)量呈指數(shù)增長。用戶能做的事情的范圍比我們在五到七年以前所看到的范圍要廣泛得多。用戶能夠進行實時電子商務(wù)交易、預(yù)訂旅館、會議簽名、上傳和下載演示、從不同的旅館使用無線登記。現(xiàn)在很多這類的會議都有非常技術(shù)性的觀眾。”
  
  在舉辦活動時的事務(wù)量高峰為 Winner 的應(yīng)用程序開發(fā)人員團隊增加了更多的難題。“在 Moscone 中心的一次活動中,我們談?wù)摓樗姓钩鰯偽淮蛴。热?15,000 到 20,000 個證件。那么,我們要處理所有正在進行的信用卡事務(wù),還有線索的檢索 — 有很多很多不同的供給商、第三方供給商以及與客戶和用戶相關(guān)的活動正在發(fā)生。”
  
  會議的這一切可能只是由 George P. Johnson 公司的主服務(wù)器設(shè)備在一個周末所處理的若干全球活動中的一項。
  
  Winner 承認:“活動治理是強度很大并且獨一無二的應(yīng)用程序為了解決由這些需求所造成的挑戰(zhàn) — 并且開發(fā)出適用于各種各樣客戶和活動的應(yīng)用程序 — Winner 的團隊使用了大量的策略。其中包括分層的應(yīng)用程序體系結(jié)構(gòu)、多個組件的高速緩存和集群、對代碼變化的嚴格治理過程。
  
  分層的方法
  George P. Johnson 公司核心活動治理應(yīng)用程序的開發(fā)工作規(guī)模很大,涉及到大量有關(guān)如何最好地滿足性能目標(biāo)的計劃和策略制定。Winner 說:“我們開始設(shè)計一個能夠處理數(shù)以百萬計的事務(wù)以及數(shù)萬并發(fā)用戶的全球應(yīng)用程序,具有一系列用于活動營銷和活動治理的非常強健的功能需求 — 并且具有全天候的可用性。其工作涉及到至少 50 人來設(shè)計、構(gòu)建和部署該應(yīng)用程序,此外還有大約一百人在項目治理和測試等領(lǐng)域中工作。”
  
高峰保護軟件:猜測需求高峰的體系結(jié)構(gòu)

  
圖 1:體系結(jié)構(gòu)
 
  由于 Winner 的團隊并沒有原有系統(tǒng),他們在選擇符合其性能目標(biāo)的設(shè)計時有很大的自由度。Winner 解釋說:“我們決定為每個應(yīng)用程序組件創(chuàng)建單獨的層,并為每層選擇可用的最好的技術(shù) — 選擇那些我們知道能夠快速進行開發(fā)并良好擴展的、經(jīng)過驗證的高性能技術(shù)。我們調(diào)查每個組件在峰值使用時期需要處理什么,并相應(yīng)地擴展我們的系統(tǒng),對于在預(yù)算答應(yīng)時逐漸增加的項目作出計劃。我們知道應(yīng)用程序最終必須在每層(從數(shù)據(jù)庫到 Web 服務(wù)端和代碼端)處理每分鐘 10,000 到 20,000 次點擊。”
  
  在說明選擇產(chǎn)品的過程時,Winner 說:“我們對所提供的產(chǎn)品進行了大量的研究,并決定在我們的 Web 服務(wù)層使用 Oracle 數(shù)據(jù)庫和 Oracle 應(yīng)用服務(wù)器 (OracleAS)。強烈推薦 Oracle 作為獲得我們所需要的那種可伸縮的高可用性和性能的最好方法。”
  
  Winner 說,他的團隊利用 Oracle 數(shù)據(jù)庫和 Oracle 應(yīng)用服務(wù)器獲得成功的要害在于它們提供高速緩存和集群的功能。
  
  高速緩存獲得高性能
  Oracle 應(yīng)用服務(wù)器向 Winner 的團隊快速證實其價值的一個方面是 OracleAS Web Cache。
  
  他回憶說:“我們第一次開始使用它是在兩年前。我們?yōu)橐粋€客戶設(shè)計應(yīng)用程序,該應(yīng)用程序答應(yīng)所有用戶下載演示。在我們最初對產(chǎn)品進行說明時,我們對客戶將要為其用戶提供的信息量 — 包括視頻和聲音可視資料 — 的預(yù)備不夠充分。
  
  “因此,基于我們?yōu)楂@得更高性能而進行高速緩存所需的特定文件格式,我們使用 Web Cache Administrator 為該活動建立特定的規(guī)則,假定為使用該應(yīng)用程序并需要獲得那些演示的人們提供一個為期五天的窗口。”
  
  其結(jié)果超出了預(yù)期水平,從而說服了公司在其應(yīng)用程序中更加廣泛地使用 Web 高速緩存。Winner 解釋說:“Web 高速緩存所做的是對文件進行壓縮和高速緩存,為您提供巨大的性能增益 — 在我見過的某些情況中達到 200%,而我們發(fā)現(xiàn)通常使用 Web 高速緩存的服務(wù)器比沒有使用它的服務(wù)器的容量多 50% 到 100%。因此,利用一個 Oracle 應(yīng)用服務(wù)器和 Web 高速緩存集群 — 以及利用它們創(chuàng)建規(guī)則的豐富功能 — 您能夠充分地提高性能,而不必投資購買更多的硬件。”
  
  Winner 堅信,高速緩存將成為 Web 應(yīng)用程序中的標(biāo)準。他說:“在某些方面,它已經(jīng)是標(biāo)準了。但是根據(jù)現(xiàn)在應(yīng)用程序的要求,為了總體性能和高可用性,對您當(dāng)即需要的文檔和進程進行高速緩存的能力變得越來越重要。”
  
  盡管 Winner 建議為實際上任何的應(yīng)用程序進行高速緩存,他也注重到在某些情況下可能不能選擇壓縮。“假如您的亞洲用戶運行 Netscape 4.76,則您在使用壓縮時會出現(xiàn)問題 — 但是假如您的用戶的高技術(shù)人員運行 1990 年代或更高的瀏覽器版本,則您會獲得相當(dāng)好的性能。我可以說,我沒有見過任何解決方案和應(yīng)用程序不會受益于高速緩存,即使您只是對 jsp 進行高速緩存。您可以將高速緩存打開再關(guān)閉,很輕易看到它對性能的影響程度。”
  
  基于使用 Web 高速緩存的經(jīng)驗,Winner 提供了以下提示,以便使您從高速緩存中獲得最大限度的性能增益:
  
  僅僅使用您需要的 Oracle 應(yīng)用服務(wù)器的服務(wù)。例如,在 Web 服務(wù)器配置中,去掉所有在啟動時默認不需要的服務(wù)。
  查看應(yīng)用程序?qū)樱_保將 Web 高速緩存作用于頁面上運行的所有內(nèi)容 — 包括所有的文件格式(JSP、Html、PL/SQL)和圖像。
  為您的特定環(huán)境創(chuàng)建合適的高速緩存規(guī)則。
  平衡 HTTP 和 OracleAS 的 J2EE 容器 (OC4J) 請求,將這兩種請求分別置于不同的服務(wù)器或不同的集群中。
  在 Web 服務(wù)端和數(shù)據(jù)庫中盡可能多地使用集群 — 您確實需要使用 RAC 來集群您的數(shù)據(jù)庫。
  
  集群或者失敗
  Winner 注重到,集群已經(jīng)成為其團隊的一個標(biāo)準選項,用于查看他們在不同節(jié)點上運行服務(wù)器時,何時沒有獲得足夠的性能和可用性。“首先我們通過升級到 RAC,對數(shù)據(jù)庫進行集群,然后我們知道需要集群 Web 服務(wù),以便在 Web 服務(wù)端提高可用性。隨后我們開始查看關(guān)于 java 和 Apache 的集群,發(fā)現(xiàn) OC4J 容器集群和 Apache 集群提供了巨大的優(yōu)勢。”
  
  Winner 說公司選擇升級到 RAC 有幾個原因。“我們對真正應(yīng)用集群進行了一些研究,確定我們的最佳選擇是在 Oracle RAC 上使用 Veritas 來運行它。我們的一部分目標(biāo)是擴展我們的生產(chǎn)環(huán)境,以減少某些維護成本,并提供對產(chǎn)品更加實時的數(shù)據(jù)訪問。我們還希望能夠在實際的文檔訪問定義 (DAD) 或統(tǒng)一資源定位器 (URL) 級別上提供給用程序的集群,因此我們能夠根據(jù)用戶的地理區(qū)域或用戶使用的應(yīng)用程序,為用戶提供多種選擇。RAC 答應(yīng)我們分離特定的功能 — 無論是根據(jù)實例、位于 RAC 集群中還是根據(jù)應(yīng)用程序級的實際 URL/DAD 集群 — 因此它就是一種功能非常強大的產(chǎn)品。”RAC 對那些添加到集群中的故障切換的利用能力也是決策中的一個重要因素“它使我們能夠在多個服務(wù)器上存儲 Java 容器,因此我們可以在集群中分布這些應(yīng)用程序的負載,以便獲得更高的可用性。2003 年,我們用開發(fā)人員套件開發(fā)了第一批基于 Java 的應(yīng)用程序并將其投入運行,而這打開了一個全新的技術(shù)領(lǐng)域,其運行速度要快得多。JSP 頁的性能與 PL/SQL 頁相比 — 簡直是天壤之別!PL/SQL 是經(jīng)過驗證的,并且它仍是我們很主要的業(yè)務(wù),但是它們之間無法相比。使用 Web 高速緩存和 JSP,它是速度快得多的引擎。而 Oracle 的 OC4J 為我們提供了無數(shù)可以做的事情。”
  
  緊跟代碼
  盡管系統(tǒng)設(shè)計和產(chǎn)品的選擇在開發(fā)具有可伸縮性的高性能應(yīng)用程序方面非常重要,Winner 的團隊從未忽視代碼本身在保持日常基本工作的高性能方面的重要性。假如對代碼的需求經(jīng)常改變,保持程序正常運行就非常困難。
  
  他斷言:“性能問題從代碼級開始。問題不在服務(wù)器、Web 服務(wù)器或者數(shù)據(jù)庫 — 而在于代碼。與每層的優(yōu)調(diào)一樣重要,性能的底線是代碼:從連接池、SQL 和 JDBC 到特定數(shù)量的代碼如何實際運行的所有問題 — 包括 PL/SQL 屬性和 Java 資源。以我的觀點來看,代碼絕對是我們最大的問題。監(jiān)視和防止錯誤可不是件輕易的工作,非凡是當(dāng)您有數(shù)萬行代碼正在更改的時候。”
  
  在 George P. Johnson 公司,代碼維護的標(biāo)準挑戰(zhàn)由于其代碼需要適應(yīng)各種各樣的客戶和地區(qū)而變得復(fù)雜 — 一個例子是最近啟用的 Oracle World China 站點,它具有地區(qū)專用的特點以及在 JSP 中運行的全中文字符集。
  
  Winner 指出:“我們不是那種構(gòu)建一個版本并把它放在磁盤上再發(fā)送出去的公司。我希望我們能夠制作壓縮打包的軟件,但是 在我們的行業(yè)里,這不可能發(fā)生 — 這意味著版本控制是我們的一個主要問題。我們的服務(wù)器隨著運行的越來越多的新代碼而不斷地擴展,而我們正在進行大量的編譯。我們能夠?qū)徲嫼透櫞a的變化并快速確定運行狀況不良的過程,這極為重要,這樣我們就能夠根據(jù)需要進行重新編譯或重新部署。”
  
  他的公司對于保持版本控制的策略的一部分是,從基本上在一個實例上運行的一個核心應(yīng)用程序開始工作。
  
  Winner 解釋說:“我們主要擁有一個 Unicode 產(chǎn)品實例 AL32UTF8,而且我們擁有一個基本的產(chǎn)品,不希望為每個客戶而更改它。當(dāng)然,我們會有客戶專用的 HTML 以及類似的東西 — 對于每個公司而言,前端和用戶界面都是專有的,這是處理公司特有營銷活動和業(yè)務(wù)需求的邏輯 — 但是就核心代碼而言,它并沒有改變。我們的應(yīng)用程序的靜態(tài)和一致性邏輯深入到

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 崇信县| 精河县| 乌拉特中旗| 镇雄县| 玉山县| 临澧县| 吴川市| 嵊州市| 会宁县| 荣昌县| 岳普湖县| 德州市| 台东市| 镇江市| 梁平县| 义马市| 黑山县| 云和县| 清水河县| 泰宁县| 云梦县| 宜城市| 稻城县| 九龙坡区| 新化县| 虎林市| 临夏县| 龙泉市| 息烽县| 唐山市| 车致| 张掖市| 永胜县| 桂林市| 习水县| 岱山县| 怀宁县| 桂平市| 天门市| 个旧市| 留坝县|