日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

Akka Netty 比较

發(fā)布時(shí)間:2023/12/13 综合教程 33 生活家
生活随笔 收集整理的這篇文章主要介紹了 Akka Netty 比较 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

從Akka出現(xiàn)背景來說,它是基于Actor的RPC通信系統(tǒng),它的核心概念也是Message,它是基于協(xié)程的,性能不容置疑;基于scala的偏函數(shù),易用性也沒有話說,但是它畢竟只是RPC通信,無法適用大的package/stream的數(shù)據(jù)傳輸,這也是Spark早期引入Netty的原因。

那么Netty為什么可以取代Akka?首先不容置疑的是Akka可以做到的,Netty也可以做到,但是Netty可以做到,Akka卻無法做到,原因是啥?在軟件棧中,Akka相比Netty要Higher一點(diǎn),它專門針對(duì)RPC做了很多事情,而Netty相比更加基礎(chǔ)一點(diǎn),可以為不同的應(yīng)用層通信協(xié)議(RPC,F(xiàn)TP,HTTP等)提供支持,在早期的Akka版本,底層的NIO通信就是用的Netty;其次一個(gè)優(yōu)雅的工程師是不會(huì)允許一個(gè)系統(tǒng)中容納兩套通信框架,惡心!最后,雖然Netty沒有Akka協(xié)程級(jí)的性能優(yōu)勢(shì),但是Netty內(nèi)部高效的Reactor線程模型,無鎖化的串行設(shè)計(jì),高效的序列化,零拷貝,內(nèi)存池等特性也保證了Netty不會(huì)存在性能問題。

Spark基于這個(gè)思想在上述的Network的基礎(chǔ)上實(shí)現(xiàn)一套自己的RPC Actor模型,從而取代Akka。其中RpcEndpoint對(duì)于Actor,RpcEndpointRef對(duì)應(yīng)ActorRef,RpcEnv即對(duì)應(yīng)了ActorSystem。

RpcEnv相對(duì)于ActorSystem:

首先它作為一個(gè)Server,它通過NettyRpcHandler來提供了Server的服務(wù)能力,
其次它作為RpcEndpoint的容器,它提供了setupEndpoint(name,endpoint)接口,從而實(shí)現(xiàn)將一個(gè)RpcEndpoint以一個(gè)Name對(duì)應(yīng)關(guān)系注冊(cè)到容器中,從而通過Server對(duì)外提供Service
最后它作為Client的適配器,它提供了setupEndpointRef/setupEndpointRefByURI接口,通過指定Server端的Host和PORT,并指定RpcEndpointName,從而獲取一個(gè)與指定Endpoint通信的引用。

RpcEndpointRef即為與相應(yīng)Endpoint通信的引用,它對(duì)外暴露了send/ask等接口,實(shí)現(xiàn)將一個(gè)Message發(fā)送到Endpoint中。

總結(jié)

以上是生活随笔為你收集整理的Akka Netty 比较的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。