国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

首頁(yè) 后端開(kāi)發(fā) php教程 PHP開(kāi)發(fā)人員分布式計(jì)算的8個(gè)謬誤

PHP開(kāi)發(fā)人員分布式計(jì)算的8個(gè)謬誤

Feb 27, 2025 am 08:27 AM

The 8 Fallacies of Distributed Computing for PHP Developers

PHP開(kāi)發(fā)者構(gòu)建分布式應(yīng)用需警惕的八大誤區(qū)

Peter Deutsch在1997年提出了七個(gè)分布式計(jì)算的誤區(qū),后來(lái)James Gosling(Java之父)又補(bǔ)充了一個(gè)。這些誤區(qū)對(duì)PHP開(kāi)發(fā)者來(lái)說(shuō)至關(guān)重要,因?yàn)槲覀兠刻於荚跇?gòu)建分布式應(yīng)用:mashup、與SOAP和REST服務(wù)交互的應(yīng)用、通過(guò)Facebook、Google或Twitter API進(jìn)行用戶(hù)身份驗(yàn)證、從遠(yuǎn)程數(shù)據(jù)庫(kù)和緩存服務(wù)檢索信息等等。我們構(gòu)建的正是分布式計(jì)算應(yīng)用。因此,理解這八個(gè)誤區(qū)及其影響至關(guān)重要。

關(guān)鍵要點(diǎn):

  • Peter Deutsch和James Gosling提出的八大分布式計(jì)算誤區(qū)對(duì)PHP開(kāi)發(fā)者至關(guān)重要:網(wǎng)絡(luò)可靠、延遲為零、帶寬無(wú)限、網(wǎng)絡(luò)安全、拓?fù)洳蛔?、只有一個(gè)管理員、傳輸成本為零以及網(wǎng)絡(luò)同構(gòu)。
  • 盡管網(wǎng)絡(luò)可靠性和帶寬有了顯著提升,但這些因素并非完美無(wú)缺。開(kāi)發(fā)者必須預(yù)見(jiàn)潛在的故障,并在應(yīng)用程序設(shè)計(jì)和部署中納入相應(yīng)的處理策略。
  • 網(wǎng)絡(luò)安全始終是一個(gè)重要問(wèn)題,開(kāi)發(fā)者必須優(yōu)先考慮良好的安全實(shí)踐,并評(píng)估其合作廠商的安全措施。
  • 開(kāi)發(fā)者應(yīng)準(zhǔn)備好應(yīng)對(duì)拓?fù)浣Y(jié)構(gòu)的變化、更換供應(yīng)商的可能性以及數(shù)據(jù)傳輸相關(guān)的成本。他們還應(yīng)該采取靈活的方法,能夠處理多個(gè)數(shù)據(jù)庫(kù)和數(shù)據(jù)源,并且不假設(shè)網(wǎng)絡(luò)是同構(gòu)的。
  1. 網(wǎng)絡(luò)可靠

這顯然是不正確的。盡管自1995年以來(lái),網(wǎng)絡(luò)延遲降低,帶寬顯著增加,但說(shuō)網(wǎng)絡(luò)可靠是錯(cuò)誤的。假設(shè)我們搭建了一個(gè)簡(jiǎn)單的應(yīng)用程序,它不使用太多服務(wù)——一個(gè)使用MySQL作為后端的PHP應(yīng)用程序。似乎沒(méi)什么問(wèn)題。然而,假設(shè)我們后來(lái)決定使用像Xeround這樣的MySQL托管服務(wù)提供商來(lái)滿(mǎn)足我們的數(shù)據(jù)庫(kù)需求。即使具有良好的可擴(kuò)展性和高可用性,如果他們的系統(tǒng)出現(xiàn)問(wèn)題怎么辦?如果他們的基礎(chǔ)設(shè)施遭受DDoS攻擊或由于內(nèi)部問(wèn)題而出現(xiàn)停機(jī)怎么辦?我們經(jīng)常聽(tīng)說(shuō)99.999%的正常運(yùn)行時(shí)間,但這仍然不是100%。隨著服務(wù)的激增和當(dāng)今通常高度可用的帶寬,很容易忘記沒(méi)有什么是完美的。您如何在應(yīng)用程序中考慮服務(wù)的故障?

  1. 延遲為零

雖然延遲可能很低,確實(shí)比幾年前低得多,但它永遠(yuǎn)不會(huì)為零。引用Arnon Rotem-Gal-Oz在其《分布式計(jì)算誤區(qū)詳解》文章中的話:以大約300,000公里/秒(3.6 * 10E12 teraangstrom/兩周)的速度,即使處理是實(shí)時(shí)完成的,從歐洲到美國(guó)再返回的ping也至少需要30毫秒。

這是壞事嗎?好壞參半。根據(jù)我們應(yīng)用程序的結(jié)構(gòu)和可用的資源,我們可以很大程度上減輕延遲問(wèn)題。我們可以使用Amazon Web Services之類(lèi)的服務(wù)托管我們的應(yīng)用程序,并利用S3,以便我們的數(shù)據(jù)位于世界各地的多個(gè)區(qū)域,使其更接近我們的最終用戶(hù),并減少網(wǎng)絡(luò)上應(yīng)用程序的延遲。但即使我們可以減少延遲,我們也無(wú)法消除它。我們可以采用一系列方法和架構(gòu)來(lái)減少它對(duì)我們的影響,但無(wú)論我們做什么,它都將始終存在。您在設(shè)計(jì)應(yīng)用程序時(shí)是否考慮過(guò)這一點(diǎn)?

  1. 帶寬無(wú)限

帶寬真的可以無(wú)限嗎?如果是這樣,無(wú)限的代價(jià)是什么?當(dāng)我們考慮到網(wǎng)絡(luò)正日益轉(zhuǎn)向移動(dòng)化時(shí),一切舊事物都煥發(fā)了新生。我并不是說(shuō)我們從撥號(hào)上網(wǎng)的速度開(kāi)始重新開(kāi)始,更新的4G網(wǎng)絡(luò)比早期的2G和3G網(wǎng)絡(luò)快得多。但是,即使是它們的峰值數(shù)據(jù)速率目前也低于標(biāo)準(zhǔn)寬帶連接。此外,隨著移動(dòng)寬帶的普及,尋求使用我們服務(wù)的潛在用戶(hù)數(shù)量(我們都想受歡迎,至少取得Facebook的一些成功)正在以驚人的速度增長(zhǎng)。考慮來(lái)自mobithinking的這些統(tǒng)計(jì)數(shù)據(jù):

  • 有59億移動(dòng)用戶(hù)。
  • 有12億擁有3G覆蓋范圍的移動(dòng)網(wǎng)絡(luò)用戶(hù)。
  • 移動(dòng)設(shè)備占全球點(diǎn)擊量的8.49%。

鑒于此,可以公平地說(shuō),盡管帶寬速率及其在世界范圍內(nèi)的普及率正在提高,但用戶(hù)增長(zhǎng)率卻抵消了這一點(diǎn)。更進(jìn)一步說(shuō),隨著移動(dòng)寬帶提供的巨大靈活性,自然而然地出現(xiàn)了明確的臨時(shí)服務(wù)消耗。您是否為服務(wù)上潛在的巨大負(fù)載做好了準(zhǔn)備?你能處理這種可用性帶來(lái)的峰值嗎?

  1. 網(wǎng)絡(luò)安全

我認(rèn)為無(wú)需過(guò)多細(xì)節(jié)就可以公平地說(shuō),這是,并且將永遠(yuǎn)是錯(cuò)誤的。如果您有任何疑問(wèn),也許您應(yīng)該與LinkedIn或eHarmony成員談?wù)劇.?dāng)我們?cè)O(shè)計(jì)和部署我們的應(yīng)用程序時(shí),我們?cè)趹?yīng)用程序的托管位置(例如Rackspace、PagodaBox或cloudControl)以及應(yīng)用程序本身的設(shè)計(jì)中,對(duì)安全性投入了多少精力?根據(jù)SecurityAffairs,Prolexic報(bào)告:

  • 針對(duì)金融服務(wù)行業(yè)的惡意數(shù)據(jù)包流量環(huán)比增長(zhǎng)3000%。
  • 2011年第四季度針對(duì)金融服務(wù)行業(yè)的惡意流量數(shù)據(jù)量為19.1TB,數(shù)據(jù)包為140億個(gè),2012年有所增加。
  • 2012年識(shí)別并緩解的數(shù)據(jù)量為65TB,數(shù)據(jù)包為1.1萬(wàn)億個(gè),是2011年的80倍。

鑒于網(wǎng)絡(luò)并不安全,我們需要確保我們正在將良好的安全實(shí)踐作為當(dāng)然的事情來(lái)使用。鑒于Chris Shiflett的博客、Essential PHP Security、PHP安全聯(lián)盟等來(lái)源的大量良好建議,很難不知道如何在我們的應(yīng)用程序核心融入安全性以及為什么要這樣做。您的安全實(shí)踐是什么?您是否評(píng)估了您部署的供應(yīng)商?

  1. 拓?fù)洳蛔?/strong>

不會(huì)嗎?真的嗎?它不會(huì)改變,還是我們只是不知道?當(dāng)我們將應(yīng)用程序托管給其他人時(shí),我們只是不知道。如果提供商重新配置他們的數(shù)據(jù)中心、升級(jí)它、調(diào)整它,無(wú)論出于何種原因,拓?fù)浣Y(jié)構(gòu)都會(huì)發(fā)生變化。鑒于前面提到的智能手機(jī)使用率的提高,拓?fù)浣Y(jié)構(gòu)經(jīng)常發(fā)生變化。從用戶(hù)和提供商的角度來(lái)看,拓?fù)浣Y(jié)構(gòu)幾乎每天都在變化!如果拓?fù)浣Y(jié)構(gòu)發(fā)生變化,并且它依賴(lài)的外部服務(wù)無(wú)法再訪問(wèn),導(dǎo)致例如無(wú)法訪問(wèn)數(shù)據(jù)庫(kù),那么這肯定是一個(gè)問(wèn)題。但是,如果在我們的提供商內(nèi)部發(fā)生變化,并且應(yīng)用程序繼續(xù)運(yùn)行,那么它可能不是問(wèn)題。當(dāng)然,編寫(xiě)一個(gè)小型且以簡(jiǎn)單配置托管的應(yīng)用程序很容易。但應(yīng)用程序會(huì)發(fā)生變化,那些越來(lái)越受歡迎的應(yīng)用程序更是如此。您是否在設(shè)計(jì)中考慮了拓?fù)浣Y(jié)構(gòu)的變化?您如何解釋或處理應(yīng)用程序設(shè)計(jì)和部署設(shè)計(jì)中的故障?

  1. 只有一個(gè)管理員

“但是我的應(yīng)用程序由單個(gè)服務(wù)提供商托管。他們提供操作系統(tǒng)、數(shù)據(jù)庫(kù)和Web服務(wù)器支持,”你說(shuō)。好吧,假設(shè)那是您的應(yīng)用程序,真的只有一個(gè)管理員嗎?如果真的只有一個(gè)管理員,你會(huì)真的相信提供商會(huì)處理你的應(yīng)用程序嗎?如果他們生病或休假,我會(huì)討厭想到會(huì)發(fā)生什么。通常,至少會(huì)有幾個(gè)管理員,盡管每個(gè)管理員的技術(shù)和更廣泛的敏銳程度可能不同。應(yīng)該制定策略,例如網(wǎng)絡(luò)入侵檢測(cè)和其他安全策略,但不能保證他們都會(huì)以相同的徹底性和盡職盡責(zé)來(lái)遵守這些策略。鑒于當(dāng)今可用的眾多托管提供商以及更新DNS記錄所需的時(shí)間很少,我們有很多選擇和靈活性,如果一個(gè)提供商沒(méi)有滿(mǎn)足我們的需求和期望,我們可以轉(zhuǎn)向另一個(gè)提供商。您是否考慮過(guò)這會(huì)如何影響您?如果您無(wú)法輕松更換供應(yīng)商怎么辦?如果您有大量的供應(yīng)商鎖定,或者移動(dòng)成本很高怎么辦?如果您的應(yīng)用程序架構(gòu)不夠靈活怎么辦?您可以采取哪些措施來(lái)減輕此類(lèi)風(fēng)險(xiǎn)?

  1. 傳輸成本為零

與迄今為止的所有陳述一樣,這的有效性也很不可能。如果支持我們應(yīng)用程序的服務(wù)器位于同一數(shù)據(jù)中心的同一機(jī)架中,那么傳輸成本可以大大降低,但就時(shí)間成本而言。貨幣成本呢?是的,我們可以根據(jù)需要無(wú)限地彈性地向上和向下擴(kuò)展,并且可以在地理位置分散的數(shù)據(jù)中心之間存儲(chǔ)我們的應(yīng)用程序數(shù)據(jù),以便它盡可能接近我們的最終用戶(hù),但代價(jià)是什么?您的應(yīng)用程序或服務(wù)的架構(gòu)組成是什么?就成本或時(shí)間而言,它是否接近于零?如果您能減少一個(gè),它是否會(huì)增加另一個(gè)?

  1. 網(wǎng)絡(luò)同構(gòu)

與其他誤區(qū)不同,我認(rèn)為作為PHP開(kāi)發(fā)者,我們天生就理解這一點(diǎn)。我們?cè)赪indows、Linux、Solaris、BSD和Mac OS X服務(wù)器上托管我們的應(yīng)用程序。我們使用MySQL、SQLServer、SQLite、PostgreSQL、mongoDB、Hadoop和Oracle來(lái)存儲(chǔ)數(shù)據(jù)。我們通過(guò)需要不同接口的XML或JSON使用外部服務(wù)。作為一個(gè)多操作系統(tǒng)和多服務(wù)社區(qū),可以說(shuō)從早期開(kāi)始,我們就從未期望過(guò)同構(gòu)網(wǎng)絡(luò)。但問(wèn)題仍然需要提出,您的方法是否靈活?您可以處理多個(gè)數(shù)據(jù)庫(kù)和數(shù)據(jù)源嗎?您是否使用相關(guān)的設(shè)計(jì)模式,例如抽象工廠,來(lái)使用透明的代碼接口從各種來(lái)源和類(lèi)型消費(fèi)數(shù)據(jù)?或者如果需要執(zhí)行像從XML切換到JSON這樣簡(jiǎn)單的事情,您的代碼是否會(huì)中斷?

結(jié)論

我認(rèn)為,作為PHP開(kāi)發(fā)者,分布式計(jì)算的八大誤區(qū)與以往一樣重要。鑒于大量可用的信息和資源,我們處于一個(gè)非常有利的地位來(lái)理解它們并減輕由此產(chǎn)生的風(fēng)險(xiǎn)。您怎么看?在開(kāi)發(fā)應(yīng)用程序和服務(wù)時(shí),您是否考慮到了它們?您認(rèn)為這八個(gè)誤區(qū)如何影響您的應(yīng)用程序?

(圖片保持不變)

以上是PHP開(kāi)發(fā)人員分布式計(jì)算的8個(gè)謬誤的詳細(xì)內(nèi)容。更多信息請(qǐng)關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

本站聲明
本文內(nèi)容由網(wǎng)友自發(fā)貢獻(xiàn),版權(quán)歸原作者所有,本站不承擔(dān)相應(yīng)法律責(zé)任。如您發(fā)現(xiàn)有涉嫌抄襲侵權(quán)的內(nèi)容,請(qǐng)聯(lián)系admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費(fèi)脫衣服圖片

Undresser.AI Undress

Undresser.AI Undress

人工智能驅(qū)動(dòng)的應(yīng)用程序,用于創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用于從照片中去除衣服的在線人工智能工具。

Clothoff.io

Clothoff.io

AI脫衣機(jī)

Video Face Swap

Video Face Swap

使用我們完全免費(fèi)的人工智能換臉工具輕松在任何視頻中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費(fèi)的代碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

功能強(qiáng)大的PHP集成開(kāi)發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺(jué)化網(wǎng)頁(yè)開(kāi)發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級(jí)代碼編輯軟件(SublimeText3)

熱門(mén)話題

Laravel 教程
1601
29
PHP教程
1502
276
PHP變量范圍解釋了 PHP變量范圍解釋了 Jul 17, 2025 am 04:16 AM

PHP變量作用域常見(jiàn)問(wèn)題及解決方法包括:1.函數(shù)內(nèi)部無(wú)法訪問(wèn)全局變量,需使用global關(guān)鍵字或參數(shù)傳入;2.靜態(tài)變量用static聲明,只初始化一次并在多次調(diào)用間保持值;3.超全局變量如$_GET、$_POST可在任何作用域直接使用,但需注意安全過(guò)濾;4.匿名函數(shù)需通過(guò)use關(guān)鍵字引入父作用域變量,修改外部變量則需傳遞引用。掌握這些規(guī)則有助于避免錯(cuò)誤并提升代碼穩(wěn)定性。

如何在PHP中牢固地處理文件上傳? 如何在PHP中牢固地處理文件上傳? Jul 08, 2025 am 02:37 AM

要安全處理PHP文件上傳需驗(yàn)證來(lái)源與類(lèi)型、控制文件名與路徑、設(shè)置服務(wù)器限制并二次處理媒體文件。1.驗(yàn)證上傳來(lái)源通過(guò)token防止CSRF并通過(guò)finfo_file檢測(cè)真實(shí)MIME類(lèi)型使用白名單控制;2.重命名文件為隨機(jī)字符串并根據(jù)檢測(cè)類(lèi)型決定擴(kuò)展名存儲(chǔ)至非Web目錄;3.PHP配置限制上傳大小及臨時(shí)目錄Nginx/Apache禁止訪問(wèn)上傳目錄;4.GD庫(kù)重新保存圖片清除潛在惡意數(shù)據(jù)。

在PHP中評(píng)論代碼 在PHP中評(píng)論代碼 Jul 18, 2025 am 04:57 AM

PHP注釋代碼常用方法有三種:1.單行注釋用//或#屏蔽一行代碼,推薦使用//;2.多行注釋用/.../包裹代碼塊,不可嵌套但可跨行;3.組合技巧注釋如用/if(){}/控制邏輯塊,或配合編輯器快捷鍵提升效率,使用時(shí)需注意閉合符號(hào)和避免嵌套。

發(fā)電機(jī)如何在PHP中工作? 發(fā)電機(jī)如何在PHP中工作? Jul 11, 2025 am 03:12 AM

AgeneratorinPHPisamemory-efficientwaytoiterateoverlargedatasetsbyyieldingvaluesoneatatimeinsteadofreturningthemallatonce.1.Generatorsusetheyieldkeywordtoproducevaluesondemand,reducingmemoryusage.2.Theyareusefulforhandlingbigloops,readinglargefiles,or

撰寫(xiě)PHP評(píng)論的提示 撰寫(xiě)PHP評(píng)論的提示 Jul 18, 2025 am 04:51 AM

寫(xiě)好PHP注釋的關(guān)鍵在于明確目的與規(guī)范,注釋?xiě)?yīng)解釋“為什么”而非“做了什么”,避免冗余或過(guò)于簡(jiǎn)單。1.使用統(tǒng)一格式,如docblock(/*/)用于類(lèi)、方法說(shuō)明,提升可讀性與工具兼容性;2.強(qiáng)調(diào)邏輯背后的原因,如說(shuō)明為何需手動(dòng)輸出JS跳轉(zhuǎn);3.在復(fù)雜代碼前添加總覽性說(shuō)明,分步驟描述流程,幫助理解整體思路;4.合理使用TODO和FIXME標(biāo)記待辦事項(xiàng)與問(wèn)題,便于后續(xù)追蹤與協(xié)作。好的注釋能降低溝通成本,提升代碼維護(hù)效率。

學(xué)習(xí)PHP:初學(xué)者指南 學(xué)習(xí)PHP:初學(xué)者指南 Jul 18, 2025 am 04:54 AM

易于效率,啟動(dòng)啟動(dòng)tingupalocalserverenverenvirestoolslikexamppandacodeeditorlikevscode.1)installxamppforapache,mysql,andphp.2)uscodeeditorforsyntaxssupport.3)

如何通過(guò)php中的索引訪問(wèn)字符串中的字符 如何通過(guò)php中的索引訪問(wèn)字符串中的字符 Jul 12, 2025 am 03:15 AM

在PHP中獲取字符串特定索引字符可用方括號(hào)或花括號(hào),但推薦方括號(hào);索引從0開(kāi)始,超出范圍訪問(wèn)返回空值,不可賦值;處理多字節(jié)字符需用mb_substr。例如:$str="hello";echo$str[0];輸出h;而中文等字符需用mb_substr($str,1,1)獲取正確結(jié)果;實(shí)際應(yīng)用中循環(huán)訪問(wèn)前應(yīng)檢查字符串長(zhǎng)度,動(dòng)態(tài)字符串需驗(yàn)證有效性,多語(yǔ)言項(xiàng)目建議統(tǒng)一使用多字節(jié)安全函數(shù)。

快速PHP安裝教程 快速PHP安裝教程 Jul 18, 2025 am 04:52 AM

ToinstallPHPquickly,useXAMPPonWindowsorHomebrewonmacOS.1.OnWindows,downloadandinstallXAMPP,selectcomponents,startApache,andplacefilesinhtdocs.2.Alternatively,manuallyinstallPHPfromphp.netandsetupaserverlikeApache.3.OnmacOS,installHomebrew,thenrun'bre

See all articles