成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

為什么響應(yīng)式編程并非一時之勢?

JessYanCoding / 2418人閱讀

摘要:編者按本文作者為,文章從程序架構(gòu)與系統(tǒng)的發(fā)展歷程出發(fā),逐步論證了為什么響應(yīng)式編程并非一時之勢,而是能帶來更快處理速度,更高硬件利用率的未來選擇。這就是摩爾定律所說的應(yīng)用程序。響應(yīng)式方法并非一時之勢它是編寫軟件的未來趨勢。

【編者按】本文作者為 David Buschman,文章從程序架構(gòu)與系統(tǒng)的發(fā)展歷程出發(fā),逐步論證了為什么響應(yīng)式編程并非一時之勢,而是能帶來更快處理速度,更高硬件利用率的未來選擇。文章系國內(nèi) ITOM 管理平臺 OneAPM 編譯呈現(xiàn)。

這些年來,程序架構(gòu)和系統(tǒng)發(fā)生了不少變化。大部分情況下,這些變化都跟它們依托的硬件密切相關(guān)。軟件架構(gòu)到底是從何處起源,眾說紛紜,而且對構(gòu)架的實(shí)際構(gòu)成部分也有各種定義。本文將從整體化應(yīng)用的興起來展開討論。

摩爾定律

當(dāng)你的所有資源都在單機(jī)上時,把所有的代碼存在一個地方很合理,而且是軟件設(shè)計(jì)的黃金標(biāo)準(zhǔn)。這種模式一直持續(xù)到 J2EE 時代,整體化應(yīng)用容器的出現(xiàn)。J2EE 的設(shè)計(jì)初衷就是為了能充分利用摩爾定律,因?yàn)檫@是變得越來越龐大的單核 CPU 系統(tǒng)的最佳設(shè)計(jì)方法。

摩爾定律指的是一個觀察發(fā)現(xiàn):在計(jì)算機(jī)硬件發(fā)展史上,密集的集成電路上的晶體管數(shù)量大概每兩年就會翻一倍。

這種構(gòu)架作為黃金標(biāo)準(zhǔn)持續(xù)了幾十年,因?yàn)槿绻覀円饬恳粋€系統(tǒng),就會往它身上“堆”更多硬件。添加更快的 CPU 和更多內(nèi)存來提高應(yīng)用程序的速度。這就是摩爾定律所說的應(yīng)用程序。

多核處理器的興起

就在幾年前,CPU 制造商開始在 CPU 設(shè)計(jì)和速度方面遭遇瓶頸。他們怎么都沒辦法給單核 CPU 提速了。為了解決這個問題,芯片制造商開始“盡情發(fā)揮”,在一個芯片上加了好幾個核,以便獲得更多加速的能力。這意味著過去那種給 J2EE 應(yīng)用程序添加一個時鐘速度更高的 CPU 來提速的老方法行不通了。如果 CPU 無法再提速,應(yīng)用程序如何通過新一代的多核處理器來擴(kuò)大規(guī)模呢?必須改變現(xiàn)有的應(yīng)用程序設(shè)計(jì)和運(yùn)行方式,才能保持競爭力。

而且,事實(shí)證明,Java 企業(yè)級應(yīng)用程序的同步和阻塞 IO 構(gòu)架并不能充分利用這些新處理器的所有核。主要原因是它們的線程模型是“一個請求一個線程”,由于阻塞 I/O 命令,無法工作,這些線程要耗費(fèi)大量時間來“等待 IO”。

阿姆達(dá)爾定律

這時候,阿姆達(dá)爾定律就開始發(fā)揮作用了。在目前的處理器中,該定律是現(xiàn)代新構(gòu)架的驅(qū)動力。現(xiàn)在有了更多核,就需要找到辦法來充分利用我們購置的這些 CPU。要實(shí)現(xiàn)這一點(diǎn),需要減少應(yīng)用程序使用非阻塞 I/O 命令帶來的“IO 等待”時間。這對過去幾十年的運(yùn)行模式而言是一個徹底的改變。

Java 企業(yè)級應(yīng)用程序和一個請求一個線程模型

顯然,Java 企業(yè)構(gòu)架是在單核 CPU 盛行時設(shè)計(jì)的。它對發(fā)送到服務(wù)器的請求采用“一個請求一個線程”思維方式。一旦你的請求獲得一個線程,這個線程就會持續(xù)該請求的整個處理過程。在這種空間常用的函數(shù)庫甚至依賴這種模型才能使用,例如 Hibernate 和 Spring Security。兩個庫都使用“Thread-local”參數(shù)來保持“session”狀態(tài),因?yàn)樗鼈冎劳粋€線程會持續(xù)一個請求的整個周期。這樣做的重大不利影響就是“behavior”不能更改,否則就會破壞現(xiàn)在使用的大部分 JEE 程序的數(shù)據(jù)持久性和應(yīng)用安全代碼。

Lightbend 和響應(yīng)式宣言

Lightbend 公司(前身是 Typesafe)發(fā)布了響應(yīng)式宣言,以記錄未來軟件設(shè)計(jì)時需求的變化,以及當(dāng)代多核 CPU 在未來世界的擴(kuò)展性。這種范式轉(zhuǎn)變太過巨大,因此很難簡單說清兩種構(gòu)架風(fēng)格之間的真正不同,就如同拿蘋果跟橙子做對比一樣。這種轉(zhuǎn)變在行業(yè)內(nèi)帶來了一些混亂,而且還會持續(xù)下去,直到完成過渡,找到讓多核 CPU 充分發(fā)揮潛力的方法。

該宣言列出了構(gòu)架系統(tǒng)時應(yīng)該著重考慮的四條原則,以便新系統(tǒng)能夠滿足所需的處理水平。其中有兩個概念直接適用于解決 Java 企業(yè)應(yīng)用程序的問題,就是非阻塞 I/O 和非同步處理。如果兩項(xiàng)都做好了,應(yīng)用程序可以占用更少的 CPU 和內(nèi)存需求,完成更多任務(wù),從而在任何一個系統(tǒng)、同樣的硬件基礎(chǔ)上,獲得比 Java 企業(yè)應(yīng)用程序更好的處理效果。下圖展示了這種并行處理的好處。

更快,更好,成本更低

這種新的軟件架構(gòu)新方法帶來了更短的處理時間和更高的硬件利用率,從而降低了運(yùn)營成本?,F(xiàn)在運(yùn)行的很多大型系統(tǒng)都是基于響應(yīng)式宣言及其原則打造的。LinkedIn、Twitter、Facebook 等很多企業(yè)使用的系統(tǒng)都是基于非同步和非堵塞 I/O 技術(shù)架構(gòu),因此他們的應(yīng)用程序得以優(yōu)化,能夠最大化地利用硬件資源。這是打造可擴(kuò)展型應(yīng)用程序的新方法,而且正在迅速發(fā)展?!绊憫?yīng)式方法”并非一時之勢——它是編寫軟件的未來趨勢。

OneAPM能為您提供端到端的 Java 應(yīng)用性能解決方案,我們支持所有常見的 Java 框架及應(yīng)用服務(wù)器,助您快速發(fā)現(xiàn)系統(tǒng)瓶頸,定位異常根本原因。分鐘級部署,即刻體驗(yàn),Java 監(jiān)控從來沒有如此簡單。想閱讀更多技術(shù)文章,請?jiān)L問 OneAPM 官方技術(shù)博客。

本文轉(zhuǎn)自 OneAPM 官方博客

原文地址: https://dzone.com/articles/why-reactive-programming-is-not-a-fad

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/64803.html

相關(guān)文章

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<