当前位置:主页 > 计算机电子书 > 程序设计 > Akka下载
Akka实战:快速构建高可用分布式应用

Akka实战:快速构建高可用分布式应用 PDF 影印版

  • 更新:2019-07-11
  • 大小:137.1 MB
  • 类别:Akka
  • 作者:杜云飞
  • 出版:机械工业出版社
  • 格式:PDF

  • 资源介绍
  • 相关推荐

Akka实战:快速构建高可用分布式应用

Akka实战:快速构建高可用分布式应用

读者评价

国人写的难得好书 Actor模型和Akka 特性解释的特别清晰 个人以为比「Akka in Action」说的明白 尤其是有几章写了 Akka Stream 和 Akka HTTP 这些高级扩展 非常受用 美中不足的是 这本书的例子是Java写的 有利有弊吧 对于初学者上手容易些 但是看起来很变扭 瑕不掩瑜!
作为首版原创Akka书籍,我认为还是OK的,里面以Java版作为基础进行讲解我认为也算是和其他同类书籍的差异化亮点了,因为Scala相关的书籍其实已经有了(貌似是翻译的...)
这本书不厚,着重实战讲解,对Stream的覆盖不够多(这块儿内容其实可以独立成书),版本的话个人认为是合适的,实际上生产环境并不一定就是用最新的。。。
总体来说,我觉得已经很好了,另外原创本身值得鼓励,可以为很多人打开了Akka的大门啊

内容介绍

本书一共分为10章,全面介绍了Akka的基础架构、Actor模型、常用组件、分布式&集群、微服务等。下面是各个章节的简介及阅读说明。第1章介绍了Akka的技术背景、应用场景及架构体系,为大家日后做技术选型提供参考依据。第2章介绍了Actor的相关概念、常见用法、生命周期、容错处理等。第3章介绍了Dispatcher的用途和常见配置方法。第4章介绍了邮箱的常见类型及配置,同时也给出了一个自定义邮箱类型的简单案例。第5章介绍了消息路由器的基本概念和创建方式(Pool和Group),然后分别演示了几种常见路由策略。第6章介绍了Akka的一些实用工具包,如Future、EventBus等。第7、8章介绍了Akka分布式&集群相关的内容。第9章介绍了如何使用Akka构建HTTP和WebSocket服务,并完整实现了一个图文聊天系统。第10章介绍了一款“全家桶式”的微服务框架Lagom。

目录

  • 前言
  • 第1章 认识Akka1
  • 1.1 Akka简介1
  • 1.1.1 技术背景1
  • 1.1.2 Akka是什么3
  • 1.2 Akka应用场景4
  • 1.3 Akka架构体系4
  • 1.3.1 Actor模型4
  • 1.3.2 体系结构4
  • 1.4 本章小结7
  • 第2章 走进Actor8
  • 2.1 Actor组件8
  • 2.1.1 Akka中的Actor8
  • 2.1.2 ActorSystem与监管9
  • 2.1.3 生命周期监控9
  • 2.1.4 引用与路径10
  • 2.2 Akka环境搭建10
  • 2.2.1 环境准备11
  • 2.2.2 使用Lightbend Activator平台12
  • 2.3 创建一个Actor14
  • 2.3.1 定义Actor14
  • 2.3.2 创建Actor实例14
  • 2.3.3 工厂模式---Props/Creator15
  • 2.4 发送-接收消息16
  • 2.4.1 tell方法16
  • 2.4.2 ask方法17
  • 2.4.3 消息转发18
  • 2.5 查找一个Actor18
  • 2.6 消息不可变21
  • 2.7 Actor行为切换21
  • 2.8 Actor生命周期25
  • 2.9 停掉一个Actor26
  • 2.10 监督与容错处理29
  • 2.11 Circuit Breaker(熔断)33
  • 2.12 配置相关35
  • 2.13 本章小结36
  • 第3章 线程调度38
  • 3.1 什么是Dispatcher?38
  • 3.2 Executor选择39
  • 3.3 配置Dispatcher39
  • 3.4 使用Dispatcher41
  • 3.5 PinnedDispatcher41
  • 3.6 本章小结42
  • 第4章 邮箱43
  • 4.1 消息处理顺序43
  • 4.2 默认邮箱配置44
  • 4.3 内置邮箱45
  • 4.3.1 内置邮箱说明45
  • 4.3.2 自定义优先级45
  • 4.3.3 控制指令优先48
  • 4.4 Actor使用邮箱的多种方式49
  • 4.4.1 配置Actor邮箱49
  • 4.4.2 配置dispatcher邮箱49
  • 4.4.3 实现RequiresMessageQueue接口50
  • 4.5 自定义邮箱类型50
  • 4.6 本章小结52
  • 第5章 消息路由53
  • 5.1 Router和Routee53
  • 5.2 路由器及路由逻辑53
  • 5.3 路由Actor56
  • 5.3.1 Pool方式56
  • 5.3.2 Group方式58
  • 5.4 常见路由类型59
  • 5.4.1 广播-Broadcast60
  • 5.4.2 最快响应-ScatterGatherFirstCompleted61
  • 5.4.3 随机-最快响应-TailChopping62
  • 5.4.4 创建可修改容量的池62
  • 5.5 特殊消息处理63
  • 5.5.1 Broadcast消息64
  • 5.5.2 PoisonPill消息64
  • 5.5.3 其他管理类消息64
  • 5.6 本章小结65
  • 第6章 实用工具67
  • 6.1 定时调度—Scheduler67
  • 6.2 处理并发结果—Future68
  • 6.2.1 Future常规用法68
  • 6.2.2 函数式Future70
  • 6.3 事件总线72
  • 6.3.1 实现事件总线72
  • 6.3.2 事件流处理74
  • 6.4 日志处理75
  • 6.4.1 基础配置76
  • 6.4.2 使用slf4j76
  • 6.5 Akka扩展78
  • 6.5.1 TypedActor初探78
  • 6.5.2 自定义扩展81
  • 6.5.3 集成Spring83
  • 6.6 Akka I/O87
  • 6.6.1 TCP服务87
  • 6.6.2 UDP服务90
  • 6.7 Akka Streams91
  • 6.7.1 Streams组件91
  • 6.7.2 组合Source、Sink94
  • 6.7.3 案例:日志处理95
  • 6.7.4 错误处理99
  • 6.7.5 关联Actor101
  • 6.8 本章小结102
  • 第7章 远程103
  • 7.1 远程介绍103
  • 7.1.1 Java RPC103
  • 7.1.2 Akka远程106
  • 7.2 创建远程ActorSystem107
  • 7.3 Actor远程访问108
  • 7.4 创建远程Actor109
  • 7.5 远程路由器110
  • 7.6 远程事件113
  • 7.7 序列化114
  • 7.7.1 Protobuf框架114
  • 7.7.2 序列化API115
  • 7.8 本章小结116
  • 第8章 集群117
  • 8.1 Akka集群概述117
  • 8.1.1 种子节点118
  • 8.1.2 领导节点118
  • 8.1.3 节点状态及生命周期118
  • 8.1.4 故障检测119
  • 8.2 创建Akka集群119
  • 8.2.1 代码及集群配置119
  • 8.2.2 启动集群122
  • 8.2.3 加入集群123
  • 8.2.4 akka-cluster集群工具123
  • 8.3 集群示例—实现文章单词统计125
  • 8.3.1 示例分析125
  • 8.3.2 代码实现127
  • 8.4 使用路由133
  • 8.4.1 Group路由133
  • 8.4.2 Pool路由133
  • 8.5 集群指标136
  • 8.5.1 指标收集136
  • 8.5.2 基于指标的负载均衡138
  • 8.6 集群单例139
  • 8.7 集群客户端140
  • 8.7.1 集群客户端概述140
  • 8.7.2 使用 ClusterClient141
  • 8.7.3 事件监听142
  • 8.8 集群分片143
  • 8.8.1 分片概念143
  • 8.8.2 持久化Actor144
  • 8.8.3 分片示例148
  • 8.9 本章小结155
  • 第9章 HTTP服务156
  • 9.1 HTTP协议156
  • 9.1.1 header信息157
  • 9.1.2 状态码159
  • 9.2 Akka HTTP159
  • 9.2.1 配置依赖159
  • 9.2.2 HTTP服务端160
  • 9.2.3 请求和响应160
  • 9.2.4 HTTP客户端163
  • 9.2.5 使用Routing DSL163
  • 9.2.6 常用Directive165
  • 9.3 Akka WebSocket166
  • 9.3.1 WebSocket协议167
  • 9.3.2 Akka WebSocket167
  • 9.3.3 WebSocket应用之聊天室169
  • 9.4 本章小结176
  • 第10章 微服务全家桶之Lagom177
  • 10.1 Lagom简介177
  • 10.2 Lagom初探178
  • 10.3 搭建Lagom服务181
  • 10.3.1 项目结构181
  • 10.3.2 编写Lagom服务182
  • 10.4 持久化实体186
  • 10.4.1 持久化简介186
  • 10.4.2 PersistentEntity API187
  • 10.4.3 持久化示例187
  • 10.4.4 MySQL支持191
  • 10.5 Lagom部署(SandBox)192
  • 10.5.1 安装ConductR SandBox192
  • 10.5.2 部署Maven项目195
  • 10.6 本章小结199

资源下载

资源下载地址1:https://pan.baidu.com/s/1Jtw1V8uhtD5UYYWvbfV3vQ

相关资源

网友留言

网友NO.23561
许力强

业务需要,小组内部搭建了一个基于akka简单的分布式集群,尽量轻量级。 业务场景,简要说下,目前业务数据量比较大,且还在以每天几十万的数据量递增,现在需要根据这些历史数据,从不同的维度,且维度可能组合,统计相关业务数据,其中包括数据挖掘,数据运营,同时还有可能业务告警,同时还要求数据尽量及时,而且考虑到后续可扩展,可以增加任意其他维度,能够快速响应等, 从上面的描述中,我们可以提供几个关键字,大数据,实时统计,多维度统计,快速接入等,这些其实公司内部是有些平台和框架可以满足的,用hadoop跑job来解决,但不够实时,且接入还是有点麻烦,所以我们产生了一个想法,自己搭建一个小型集群,毕竟数据量不是很大,而且akka这个框架,宣传还是挺强大的,也比较成熟,但也需要能够驾驭它,引入一种新技术,最好还是能够解决一些问题,并且有足够的驾驭能力,否则发布到线上,有问题的话,那就死翘翘了,这里我将分几个部分,把最近学习的一些akka心得,记录在此,前面我写过的文章可能都虎头蛇尾,但后续会慢慢补上,零碎的时间比较多,没法集中精力和时间来系统学习,只能能够用这种方式来写这些文章了。

网友NO.43143
潘和同

Actor是什么 曾经看到知乎上有人提过actor就是cpu上的时间片,这种说法非常贴切。Actor之间通过消息进行通讯,一切都是异步的。可以说Actor就像现实生活中的一群人,他们各司其职,互相通过消息进行交流,一个actor收到另外一个actor发来的消息后会按照消息的内容去执行指定的任务,接着再将新任务传递下去或者将执行结果返回给消息发送方。Actor这种模型很好地解决了传统java并发带来的各种问题。 Actor和线程的区别 Actor规避了传统多线程中锁的问题,在Actor中是没有共享变量的,一切都是无状态的,尽管我们可以在actor中去调用一个新的线程去进行一些异步操作,但是这并不符合Actor本身的理念,并且会破坏Actor的整体设计。要记住一点,Actor是单线程运行的,一个Actor同时只能处理一条消息,我们可以通过增加Actor的数量来提高系统并行处理的能力。 Actor是如何执行的 AKKA中使用dispatcher对actor进行执行,当一个actor启动之后会将自身绑定到一个dispatcher上,我们可以在系统配置中定义自己的dispathcer。Dispatcher本身其实是一个线程池,默认的dispatcher是一个fork-join-executor,读者可以参考下表来了解不通的dispatcher。