高階併發:Akka Actors和JavaEE7的EJB比較
隨著Facebook 190億美金收購WhatsApp,其背後的Erlang語言受到關注,本質上Erlang的新型物件訊息模型被抽象為Actors模型,作為Actors模型的Akka框架有Java和Scala兩個版本,最近,Dr Gerald Loeefler在2014年LSUG大會發表了從Java併發的高階層次將Actors模型與Java EE7的Enterprise JavaBeans,特別是無狀態的會話bean和JMS的訊息驅動bean進行比較,它們之間是有共性。
作為一個高階整合架構師,應該在程式正規化的高階層次定義併發,基於元件級別的併發,並且儘可能地避免涉及執行緒概念以及執行緒池等底層概念。
該談話圍繞了 Active Objects(活動物件)設計模式,從活動物件模式角度看,這兩種併發元件模型有如下特點:
1. Akka Actors :接收任意物件的訊息,透過郵箱排隊方式。這些訊息被一個公共介面被明確管理和定位
2.無態會話bean: 暴露非同步方法,在應用伺服器中執行,由容器管理其生命週期管理。
3.JMS訊息Bean: 接受處理來自JMS queue/topic的訊息. 這些訊息是容器管理的,類似會話Bean
這三者的共性都是來自一個執行緒池的執行緒非同步執行,能夠依次訪問同一個例項。
Gerald使用了三個模式總結這三個型別:
1.本地單向非同步請求Local One-Way Asynchronous Request:
從請求者傳送一個非同步請求到應答者,應答者不會回應。
2.超越上下文的非同步請求Request Asynchronous Out-of-Context Request ,請求者傳送一個訊息給響應者,響應者發回返回訊息,當請求者接受到響應以後必須重新建立上下文。
3.上下文內的非同步外請求Request Asynchronous In-Context Request 當返回訊息被請求者接受後,當時的上下文也被保留下來。
具體Actors模型講解:http://www.jdon.com/actors.html
點按標題檢視該英文PDF,文件中使用Scala程式碼演示了Actors和無態Bean以及MDB的三種模式實現。
總結:三種方法都使用執行緒池,並能夠垂直和水平縮放,重要的差異體現在:異常處理,主管策略和事務處理。
相關文章
- ejb 和 javabean的比較JavaBean
- 使用GPars實現JVM併發和Actors模型JVM模型
- 併發模型比較模型
- Go 高階併發Go
- WebSphere5.0開發EJB,工具比較篇 (轉)Web
- 高併發中nginx較優的配置Nginx
- 什麼牌子的高階遊戲本比較好?遊戲
- 三種高階比較排序演算法排序演算法
- 併發程式設計:DEMO:比較Stream和forkjoin框架的效率程式設計框架
- 比較Java與Node.js的併發性和效能- maxantJavaNode.js
- Oracle Stream(3)--Stream與高階複製和邏輯Dataguard的比較Oracle
- 不要將Actors用於併發程式設計程式設計
- 讓併發和容錯更容易:Akka示例教程
- Nginx支援比Apache高併發的原因NginxApache
- Java中不同的併發實現的效能比較Java
- EJB與MQ(IBM MQ6)的比較MQIBM
- 如何處理業務系統中併發比較高的表資料清理工作
- 【Akka】在併發程式中使用Future
- Android 高階面試-3:Java、同步和併發相關Android面試Java
- 遊戲服務端的高併發和高可用遊戲服務端
- js 深比較和淺比較JS
- Java中幾個常用併發佇列比較 | BaeldungJava佇列
- 對banq大哥"EJB3與EJB2架構比較"一文的提問架構
- 構建高併發&高可用&安全的IT系統-高併發部分
- [分散式][高併發]高併發架構分散式架構
- 索引的分析和比較索引
- ImageMagic 和 GraphicsMagick 的比較
- akka-grpc - 基於akka-http和akka-streams的scala gRPC開發工具RPCHTTP
- 關於Redis的幾件小事 | 高併發和高可用Redis
- Go和Python比較的話,哪個比較好?GoPython
- 直播原始碼:一對一視訊聊天app哪個比較高階?原始碼APP
- Pandas高階教程之:Dataframe的合併
- Java、Rust、Go、NodeJS、TypeScript併發程式設計比較 - foojayJavaRustGoNodeJSTypeScript程式設計
- Oracle date 型別比較和String比較Oracle型別
- SQL Server約束和DML觸發器的比較SQLServer觸發器
- 海量資料和高併發的解決方案
- PHP高併發和大流量的解決方案PHP
- TreeMap和HashMap的元素比較HashMap