在.NET中實(shí)現(xiàn)Actor模型的不同方式是怎樣的,相信很多沒有經(jīng)驗(yàn)的人對此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個(gè)問題。
成都創(chuàng)新互聯(lián)作為成都網(wǎng)站建設(shè)公司,專注重慶網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì),有關(guān)成都定制網(wǎng)頁設(shè)計(jì)方案、改版、費(fèi)用等問題,行業(yè)涉及成都除甲醛等多個(gè)領(lǐng)域,已為上千家企業(yè)服務(wù),得到了客戶的尊重與認(rèn)可。
《實(shí)現(xiàn)領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)》(Implementing Domain-Driven Design)一書的作者Vaughn Vernon,發(fā)布了Dotsero,這是一個(gè)使用C#編寫的、基于.NET的Actor模型工具包,它的實(shí)現(xiàn)參考了Akka API。Akka工具包是對Actor模型的一種實(shí)現(xiàn),目前為止已經(jīng)有對應(yīng)Java和Scala版本的API。
今年早些時(shí)候,微軟Research部門也發(fā)布了一個(gè)基于Actor模型的框架,Orleans框架的預(yù)覽版。這個(gè)框架采用了云端編程模型,編寫這個(gè)框架的目的在于盡可能減少創(chuàng)建互動(dòng)式的服務(wù)時(shí)所面對的各種挑戰(zhàn),這些服務(wù)往往對伸縮性和可靠性有較高要求。
Orleans團(tuán)隊(duì)認(rèn)為,雖然Erlang和Akka這些Actor平臺(tái)已經(jīng)在簡化分布式系統(tǒng)編程方面前進(jìn)了一步,但由于它們提供了相對較低層次的抽象與系統(tǒng)服務(wù),因此自身的復(fù)雜性依然很高。開發(fā)者們必須要成為分布式系統(tǒng)方面的專家,才有可能使用這些工具創(chuàng)建正確的解決方案。為了避免這些復(fù)雜性,并吸引主流開發(fā)者,Orleans團(tuán)隊(duì)提升了Actor的抽象層次。雖然它仍然基于Actor模型,但與任何現(xiàn)有的基于Actor模型的平臺(tái)所不同的是:它將Actor視為抽象的,而不是物理的實(shí)體。
最近,Vaughn與Orleans項(xiàng)目的帶頭人,來自微軟Research部門的Sergey Bykov在twitter上進(jìn)行了一番討論。Vaughn認(rèn)為,Orleans本質(zhì)上并非是一種基于Actor模型的實(shí)現(xiàn),其中部分原因在于它缺少了用以支持有限狀態(tài)機(jī)(FSM)的Become和Unbecome方法,而Vaughn認(rèn)為這是Actor原始的定義中所必需的一部分。他同時(shí)也認(rèn)為,由于在Orleans中Actor是始終存在的,那么當(dāng)客戶端對某個(gè)本應(yīng)不存在的Actor發(fā)起請求時(shí),它難以意識到這一點(diǎn),從而容易引發(fā)問題。
Sergey在回應(yīng)中表示,Become只是讀取定義的其中一種方式,并非Actor模型所必需的一部分。而從他的經(jīng)驗(yàn)來看,由于Orleans中的Actor始終存在,因而減少了競態(tài)條件的產(chǎn)生,并且簡化了恢復(fù)操作,從這方面來看由此可能產(chǎn)生問題的可能性比Vaughn所說要小很多。如果某個(gè)Actor不應(yīng)該存在,那么可以通過由應(yīng)用程序邏輯返回一個(gè)錯(cuò)誤狀態(tài)的方式進(jìn)行處理,雖然他也承認(rèn)這種方式并不夠理想,但比起在創(chuàng)建Actor時(shí)遇到競態(tài)條件的情況還是要更好一些。
最近, Azure方面的一位微軟MVP,Richard Astbury創(chuàng)建了一個(gè)簡單的物聯(lián)網(wǎng)網(wǎng)關(guān)應(yīng)用程序,以此表明他對Orleans的觀點(diǎn),即Orleans能夠幫助開發(fā)者在云端創(chuàng)建大規(guī)模、低延遲并且適應(yīng)性良好的.NET應(yīng)用程序。Richard表示,雖然這只是個(gè)簡單的示例,但它已經(jīng)包含了創(chuàng)建更復(fù)雜的場景時(shí)所需的各種基礎(chǔ)構(gòu)建塊了。
看完上述內(nèi)容,你們掌握在.NET中實(shí)現(xiàn)Actor模型的不同方式是怎樣的的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!
網(wǎng)站標(biāo)題:在.NET中實(shí)現(xiàn)Actor模型的不同方式是怎樣的
標(biāo)題鏈接:http://sd-ha.com/article36/jochsg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站改版、企業(yè)建站、定制網(wǎng)站、網(wǎng)站收錄、ChatGPT、品牌網(wǎng)站設(shè)計(jì)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)