買這商品的人也買了...
-
$1,140Effective Java, 2/e (Paperback)
-
$2,800$2,744 -
$1,740$1,653 -
$280$252 -
$2,050$1,948 -
$1,540$1,217 -
$1,040ZooKeeper: Distributed process coordination (Paperback)
-
$1,000$900 -
$1,650$1,568 -
$1,056Learning Chef: A Guide to Configuration Management and Automation (Paperback)
-
$825Machine Learning with Spark - Tackle Big Data with Powerful Spark Machine Learning Algorithms (Paperback)
-
$1,590$1,511 -
$650$553 -
$300$255 -
$520$411 -
$301特徵工程入門與實踐 (Feature Engineering Made Easy)
-
$680$578 -
$880$695 -
$380$342 -
$580$458 -
$680$530 -
$690$345 -
$1,900$1,805 -
$505編程的邏輯:如何用面向對象方法實現復雜業務需求
-
$760$501
相關主題
商品描述
商品描述(中文翻譯)
避免在使用 Akka 工具包和運行時構建分散式、非同步、高效能軟體時常見的錯誤。作者 Jamie Allen 提供了這本簡明指南,根據多年使用演員模型的經驗,整理出一系列最佳實踐。本書還包括演員應用類型的範例以及兩種主要的演員使用模式:Extra Pattern 和 Cameo Pattern。
Allen 是 Typesafe 的顧問總監,該公司是 Akka 和 Scala 程式語言的創造者,他在全書中以銀行服務的使用案例來探討演員,並使用 Akka 和 Scala 中的範例。如果您對 Akka 有任何經驗,這本指南是必不可少的。
- 深入了解以領域驅動和工作分配為基礎的演員應用
- 理解為什麼演員只應該執行一項工作是重要的
- 通過將邏輯委派給 Future 來避免線程阻塞
- 盡可能簡化模型互動,以避免過早優化
- 創建明確的互動,並確切了解可能發生的失敗
- 學習為什麼您永遠不應該將演員視為普通類別
- 透過監控所有內容來跟蹤生產環境中的狀況
- 使用 Typesafe Console 調整 Akka 應用
與《Effective Akka: Patterns and Best Practices》作者 Jamie Allen 的問答
**問:為什麼這本書現在對人們來說很重要?**
答:多核心平台的出現意味著開發人員擁有比以往更多的處理資源,這些資源以「核心」的形式提供。傳統的程式設計結構無法讓開發人員充分利用這些核心。隨著每個新平台的推出,計算機的核心數量不斷增加,開發人員需要找到方法來最大化這些資源的利用率。Akka 提供了一個平台來實現這一點,並允許您的應用隨著資源的增加而擴展。
**問:讀者在閱讀《Effective Akka》後會獲得什麼?**
答:在閱讀《Effective Akka》後,讀者應該能夠牢牢掌握在使用演員開發時可能遇到的各種編碼問題,無論他們使用的是 Scala/Akka 還是 Erlang。許多概念對於編寫非同步代碼但不使用演員的開發人員同樣適用。《Effective Akka》提供了有關編碼風格和最佳實踐的指導,幫助開發人員避免常見的陷阱。
**問:模式和最佳實踐有什麼令人興奮和重要的地方?**
答:轉向「反應式」解決方案。如今,開發人員可以通過使用非同步來執行更多的工作——不浪費執行阻塞操作的線程,而是定義可以在工作完成時自動應用的工作。許多技術在這個領域中不斷湧現,例如 ReactiveJava、Node.js、Go、Clojure 的 core.async 和 Scala 的 futures、演員及非同步支持。開發人員從未擁有如此多有用的工具來編寫互動性強、低延遲、容錯和可擴展的應用。每種語言和平台都在尋求在這個領域提供解決方案。
**問:在使用 Akka 構建高效能軟體時,您能給我們幾個建議嗎?**
答:
1. 對於從代碼塊外部關閉狀態要非常小心。通過將狀態放入本地變數來捕獲和穩定這些狀態,以便在實際需要時知道您將擁有不變的值。
2. 保持代碼簡單。創建更多原子方法和函數,讓它們只做一件事,然後將它們組合起來以達成您的目標。
3. 永遠不要從演員內部引用關鍵字 'this'。不要使用它,也不要在其他地方註冊它。盡可能假裝這個概念不存在。學會以 'ActorRef' 的方式思考,並在所有時候使用它們,即使是在與自己通信時。
4. 通過將線程池資源分配給特定的演員組來創建應用中的失敗區域。這樣,如果一個演員因計算密集型活動而壟斷了一個線程,只有有限的其他演員會受到影響,因為他們無法使用該資源。
5. 儘量避免阻塞。除非有特定的代碼塊必須發生阻塞,否則始終編寫非同步代碼。將任何此類阻塞任務放在自己的線程上,或使用 Scala 的 Managed Blocking 來防止其他資源因缺乏線程而被餓死。