Mastering Akka

Christian Baxter

  • 出版商: Packt Publishing
  • 出版日期: 2016-10-21
  • 售價: $2,110
  • 貴賓價: 9.5$2,005
  • 語言: 英文
  • 頁數: 436
  • 裝訂: Paperback
  • ISBN: 1786465027
  • ISBN-13: 9781786465023
  • 相關分類: Java 相關技術
  • 海外代購書籍(需單獨結帳)

買這商品的人也買了...

商品描述

Key Features

  • This book will help you cure anemic models with domain-driven design
  • We cover major Akka programming concepts such as concurrency, scalability, and reactivity
  • You will learn concepts like Event Sourcing and CQRS via Akka Persistence, Akka Streams, Akka Http as well as Akka Clustering

Book Description

For a programmer, writing multi-threaded applications is critical as it is important to break large tasks into smaller ones and run them simultaneously. Akka is a distributed computing toolkit that uses the abstraction of the Actor model, enabling developers to build correct, concurrent, and distributed applications using Java and Scala with ease.

The book begins with a quick introduction that simplifies concurrent programming with actors. We then proceed to master all aspects of domain-driven design. We ll teach you how to scale out with Akka Remoting/Clustering. Finally, we introduce Conductr as a means to deploy to and manage microservices across a cluster.

What you will learn

  • Use Akka actors to enable parallel execution
  • Build out domain-driven design based components like entities and aggregates
  • Respond to command requests on that aggregate root that affect the internal state
  • Leverage Akka Persistence, protobuf and Cassandra to save the persistent state of you entities
  • Build out complex processing graphs with the Graph Builder DSL
  • Understand the dynamic push/pull nature of backpressure handling within Akka Streams
  • Route HTTP requests to an actor and return a response
  • Deploy actor instances across a set of nodes via Conductr for high availability

About the Author

Christian Baxter, from an early age, has always had an interest in understanding how things worked. Growing up, he loved challenges and liked to tinker with and fix things. This inquisitive nature was the driving force that eventually led him into computer programming. While his primary focus in college was life sciences, he always set aside time to study computers and to explore all aspects of computer programming. When he graduated from college during the height of the Internet boom, he taught himself the necessary skills to get a job as a programmer. He s been happily programming ever since, working across diverse industries such as insurance, travel, recruiting, and advertising. He loves building out high-performance distributed systems using Scala on the Akka platform.

Christian was a long time Java programmer before making the switch over to Scala in 2010. He was looking for new technologies to build out high throughput and asynchronous systems and loved what he saw from Scala and Akka. Since then, he's been a major advocate for Akka, getting multiple ad tech companies he s worked for to adopt it as a means of building out reactive applications. He's also been an occasional contributor to the Akka codebase, identifying and helping to fix issues. When he s not hacking away on Scala and Akka, you can usually find him answering questions on Stackoverflow as cmbaxter.

Table of Contents

  1. Building a Better Reactive App
  2. Simplifying Concurrent Programming with Actors
  3. Curing Anemic Models with Domain-Driven Design
  4. Making History with Event Sourcing
  5. Separating Concerns with CQRS
  6. Going with the Flow with Akka Streams
  7. REST Easy with Akka HTTP
  8. Scaling Out with Akka Remoting/Clustering
  9. Managing Deployments with ConductR
  10. Troubleshooting and Best Practices

商品描述(中文翻譯)

主要特點



  • 本書將幫助您使用領域驅動設計來解決貧血模型的問題

  • 我們涵蓋了Akka編程的主要概念,如並發性、可擴展性和反應性

  • 您將通過Akka Persistence、Akka Streams、Akka Http以及Akka Clustering學習事件溯源和CQRS等概念

書籍描述


對於一個程序員來說,編寫多線程應用程序至關重要,因為將大型任務分解為較小的任務並同時運行它們是很重要的。Akka是一個分佈式計算工具包,使用Actor模型的抽象,使開發人員能夠輕鬆地使用Java和Scala構建正確、並發和分佈式應用程序。


本書首先簡要介紹了使用Actor簡化並發編程的方法。然後我們深入探討了領域驅動設計的各個方面。我們將教您如何使用Akka Remoting/Clustering進行擴展。最後,我們介紹了Conductr作為在集群中部署和管理微服務的手段。

您將學到什麼



  • 使用Akka actors實現並行執行

  • 構建基於領域驅動設計的組件,如實體和聚合

  • 對影響內部狀態的聚合根的命令請求做出回應

  • 利用Akka Persistence、protobuf和Cassandra保存實體的持久狀態

  • 使用Graph Builder DSL構建複雜的處理圖

  • 了解Akka Streams中背壓處理的動態推送/拉取特性

  • 將HTTP請求路由到一個actor並返回響應

  • 通過Conductr在一組節點上部署actor實例以實現高可用性

關於作者


Christian Baxter從小就對了解事物的運作方式感興趣。在成長過程中,他喜歡挑戰並喜歡修理和改造東西。這種好奇心最終將他帶入了計算機編程的領域。雖然他在大學的主要專業是生命科學,但他總是抽出時間學習計算機和探索計算機編程的各個方面。畢業時正值互聯網繁榮時期,他自學了必要的技能,找到了一份程序員的工作。從那時起,他一直快樂地從事編程工作,涉足保險、旅遊、招聘和廣告等不同行業。他喜歡使用Scala和Akka平台構建高性能的分佈式系統。


Christian在2010年之前一直是一名Java程序員,然後轉向Scala。他正在尋找新技術來構建高吞吐量和異步系統,並對Scala和Akka的表現印象深刻。從那時起,他一直是Akka的主要支持者,讓他所工作的多家廣告技術公司都採用它來構建反應式應用程序。他還偶爾為Akka代碼庫做出貢獻,識別並幫助解決問題。當他不忙於Scala和Akka的開發時,你通常可以在Stackoverflow上找到他回答問題,他的用戶名是cmbaxter。

目錄



  1. 構建更好的反應式應用程序

  2. 使用Actor簡化並發編程

  3. 使用領域驅動設計解決貧血模型問題

  4. 使用事件溯源創造歷史

  5. 使用CQRS分離關注點

  6. 使用Akka Streams流動起來

  7. 使用Akka HTTP輕鬆實現REST

  8. 使用Akka Remoting/Clustering進行擴展

  9. 使用ConductR管理部署

  10. 故障排除和最佳實踐