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

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

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

Feb 27, 2025 am 08:27 AM

The 8 Fallacies of Distributed Computing for PHP Developers

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

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

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

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

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

  1. 延遲為零

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

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

  1. 帶寬無限

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

  • 有59億移動用戶。
  • 有12億擁有3G覆蓋範(fàn)圍的移動網(wǎng)絡(luò)用戶。
  • 移動設(shè)備佔(zhàn)全球點(diǎn)擊量的8.49%。

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

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

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

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

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

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

不會嗎?真的嗎?它不會改變,還是我們只是不知道?當(dāng)我們將應(yīng)用程序託管給其他人時(shí),我們只是不知道。如果提供商重新配置他們的數(shù)據(jù)中心、升級它、調(diào)整它,無論出於何種原因,拓?fù)浣Y(jié)構(gòu)都會發(fā)生變化。鑑於前面提到的智能手機(jī)使用率的提高,拓?fù)浣Y(jié)構(gòu)經(jīng)常發(fā)生變化。從用戶和提供商的角度來看,拓?fù)浣Y(jié)構(gòu)幾乎每天都在變化!如果拓?fù)浣Y(jié)構(gòu)發(fā)生變化,並且它依賴的外部服務(wù)無法再訪問,導(dǎo)致例如無法訪問數(shù)據(jù)庫,那麼這肯定是一個(gè)問題。但是,如果在我們的提供商內(nèi)部發(fā)生變化,並且應(yīng)用程序繼續(xù)運(yùn)行,那麼它可能不是問題。當(dāng)然,編寫一個(gè)小型且以簡單配置託管的應(yīng)用程序很容易。但應(yīng)用程序會發(fā)生變化,那些越來越受歡迎的應(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ù)庫和Web服務(wù)器支持,”你說。好吧,假設(shè)那是您的應(yīng)用程序,真的只有一個(gè)管理員嗎?如果真的只有一個(gè)管理員,你會真的相信提供商會處理你的應(yīng)用程序嗎?如果他們生病或休假,我會討厭想到會發(fā)生什麼。通常,至少會有幾個(gè)管理員,儘管每個(gè)管理員的技術(shù)和更廣泛的敏銳程度可能不同。應(yīng)該制定策略,例如網(wǎng)絡(luò)入侵檢測和其他安全策略,但不能保證他們都會以相同的徹底性和盡職盡責(zé)來遵守這些策略。鑑於當(dāng)今可用的眾多託管提供商以及更新DNS記錄所需的時(shí)間很少,我們有很多選擇和靈活性,如果一個(gè)提供商沒有滿足我們的需求和期望,我們可以轉(zhuǎn)向另一個(gè)提供商。您是否考慮過這會如何影響您?如果您無法輕鬆更換供應(yīng)商怎麼辦?如果您有大量的供應(yīng)商鎖定,或者移動成本很高怎麼辦?如果您的應(yīng)用程序架構(gòu)不夠靈活怎麼辦?您可以採取哪些措施來減輕此類風(fēng)險(xiǎn)?

  1. 傳輸成本為零

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

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

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

結(jié)論

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

(圖片保持不變)

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

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

熱AI工具

Undress AI Tool

Undress AI Tool

免費(fèi)脫衣圖片

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io

Clothoff.io

AI脫衣器

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整合開發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

如何在PHP中實(shí)施身份驗(yàn)證和授權(quán)? 如何在PHP中實(shí)施身份驗(yàn)證和授權(quán)? Jun 20, 2025 am 01:03 AM

tosecurelyhandleauthenticationandationallizationInphp,lofterTheSesteps:1.AlwaysHashPasswordSwithPassword_hash()andverifyusingspasspassword_verify(),usepreparedStatatementStopreventsqlineptions,andStoreSeruserDatain usseruserDatain $ _sessiveferterlogin.2.implementrole-2.imaccessccsccccccccccccccccccccccccc.

如何在PHP中安全地處理文件上傳? 如何在PHP中安全地處理文件上傳? Jun 19, 2025 am 01:05 AM

要安全處理PHP中的文件上傳,核心在於驗(yàn)證文件類型、重命名文件並限制權(quán)限。 1.使用finfo_file()檢查真實(shí)MIME類型,僅允許特定類型如image/jpeg;2.用uniqid()生成隨機(jī)文件名,存儲至非Web根目錄;3.通過php.ini和HTML表單限製文件大小,設(shè)置目錄權(quán)限為0755;4.使用ClamAV掃描惡意軟件,增強(qiáng)安全性。這些步驟有效防止安全漏洞,確保文件上傳過程安全可靠。

PHP中==(鬆散比較)和===(嚴(yán)格的比較)之間有什麼區(qū)別? PHP中==(鬆散比較)和===(嚴(yán)格的比較)之間有什麼區(qū)別? Jun 19, 2025 am 01:07 AM

在PHP中,==與===的主要區(qū)別在於類型檢查的嚴(yán)格程度。 ==在比較前會進(jìn)行類型轉(zhuǎn)換,例如5=="5"返回true,而===要求值和類型都相同才會返回true,例如5==="5"返回false。使用場景上,===更安全應(yīng)優(yōu)先使用,==僅在需要類型轉(zhuǎn)換時(shí)使用。

如何在PHP( - , *, /,%)中執(zhí)行算術(shù)操作? 如何在PHP( - , *, /,%)中執(zhí)行算術(shù)操作? Jun 19, 2025 pm 05:13 PM

PHP中使用基本數(shù)學(xué)運(yùn)算的方法如下:1.加法用 號,支持整數(shù)和浮點(diǎn)數(shù),也可用於變量,字符串?dāng)?shù)字會自動轉(zhuǎn)換但不推薦依賴;2.減法用-號,變量同理,類型轉(zhuǎn)換同樣適用;3.乘法用*號,適用於數(shù)字及類似字符串;4.除法用/號,需避免除以零,並註意結(jié)果可能是浮點(diǎn)數(shù);5.取模用%號,可用於判斷奇偶數(shù),處理負(fù)數(shù)時(shí)餘數(shù)符號與被除數(shù)一致。正確使用這些運(yùn)算符的關(guān)鍵在於確保數(shù)據(jù)類型清晰並處理好邊界情況。

如何與PHP的NOSQL數(shù)據(jù)庫(例如MongoDB,Redis)進(jìn)行交互? 如何與PHP的NOSQL數(shù)據(jù)庫(例如MongoDB,Redis)進(jìn)行交互? Jun 19, 2025 am 01:07 AM

是的,PHP可以通過特定擴(kuò)展或庫與MongoDB和Redis等NoSQL數(shù)據(jù)庫交互。首先,使用MongoDBPHP驅(qū)動(通過PECL或Composer安裝)創(chuàng)建客戶端實(shí)例並操作數(shù)據(jù)庫及集合,支持插入、查詢、聚合等操作;其次,使用Predis庫或phpredis擴(kuò)展連接Redis,執(zhí)行鍵值設(shè)置與獲取,推薦phpredis用於高性能場景,Predis則便於快速部署;兩者均適用於生產(chǎn)環(huán)境且文檔完善。

我如何了解最新的PHP開發(fā)和最佳實(shí)踐? 我如何了解最新的PHP開發(fā)和最佳實(shí)踐? Jun 23, 2025 am 12:56 AM

TostaycurrentwithPHPdevelopmentsandbestpractices,followkeynewssourceslikePHP.netandPHPWeekly,engagewithcommunitiesonforumsandconferences,keeptoolingupdatedandgraduallyadoptnewfeatures,andreadorcontributetoopensourceprojects.First,followreliablesource

什麼是PHP,為什麼它用於Web開發(fā)? 什麼是PHP,為什麼它用於Web開發(fā)? Jun 23, 2025 am 12:55 AM

PHPbecamepopularforwebdevelopmentduetoitseaseoflearning,seamlessintegrationwithHTML,widespreadhostingsupport,andalargeecosystemincludingframeworkslikeLaravelandCMSplatformslikeWordPress.Itexcelsinhandlingformsubmissions,managingusersessions,interacti

如何設(shè)置PHP時(shí)區(qū)? 如何設(shè)置PHP時(shí)區(qū)? Jun 25, 2025 am 01:00 AM

tosetTherightTimeZoneInphp,restate_default_timezone_set()functionAtthestArtofyourscriptWithavalIdidentIdentifiersuchas'america/new_york'.1.usedate_default_default_timezone_set_set()

See all articles