登入帳戶  | 訂單查詢  | 購物車/收銀台(0) | 在線留言板  | 付款方式  | 聯絡我們  | 運費計算  | 幫助中心 |  加入書簽
會員登入   新用戶註冊
HOME新書上架暢銷書架好書推介特價區會員書架精選月讀2023年度TOP分類閱讀雜誌 香港/國際用戶
最新/最熱/最齊全的簡體書網 品種:超過100萬種書,正品正价,放心網購,悭钱省心 送貨:速遞 / 物流,時效:出貨後2-4日

2024年10月出版新書

2024年09月出版新書

2024年08月出版新書

2024年07月出版新書

2024年06月出版新書

2024年05月出版新書

2024年04月出版新書

2024年03月出版新書

2024年02月出版新書

2024年01月出版新書

2023年12月出版新書

2023年11月出版新書

2023年10月出版新書

2023年09月出版新書

『簡體書』响应式架构:消息模式Actor实现与Scala、Akka应用集成

書城自編碼: 2848432
分類: 簡體書→大陸圖書→工業技術電子/通信
作者: [美]Vaughn Vernon[沃恩 弗农]
國際書號(ISBN): 9787121291135
出版社: 电子工业出版社
出版日期: 2016-06-01
版次: 1 印次: 1
頁數/字數: 440/
書度/開本: 16开 釘裝: 平塑

售價:NT$ 743

我要買

share:

** 我創建的書架 **
未登入.



新書推薦:
刻意练习不生气
《 刻意练习不生气 》

售價:NT$ 179.0
大宋理财:青苗法与王安石的金融帝国(全彩插图本)
《 大宋理财:青苗法与王安石的金融帝国(全彩插图本) 》

售價:NT$ 500.0
安全感是内心长出的盔甲
《 安全感是内心长出的盔甲 》

售價:NT$ 305.0
快人一步:系统性能提高之道
《 快人一步:系统性能提高之道 》

售價:NT$ 505.0
我们为什么会做梦:让梦不再神秘的新科学
《 我们为什么会做梦:让梦不再神秘的新科学 》

售價:NT$ 352.0
算法图解(第2版)
《 算法图解(第2版) 》

售價:NT$ 356.0
科学的奇幻之旅
《 科学的奇幻之旅 》

售價:NT$ 352.0
画艺循谱:晚明的画谱与消闲
《 画艺循谱:晚明的画谱与消闲 》

售價:NT$ 653.0

建議一齊購買:

+

NT$ 285
《 现代传感技术及应用 》
+

NT$ 593
《 电力电子变换器的周期平衡态与分岔分析 》
+

NT$ 668
《 电子技术完全手册(第5版) 》
+

NT$ 818
《 Scala程序设计 第2版 》
+

NT$ 885
《 实现领域驱动设计英文版 》
+

NT$ 668
《 JavaEE开发的颠覆者: Spring Boot实战 》
編輯推薦:
AKKA项目创始人为原书作序,国内Scala倡导者和践行者邓草原为译著作序,可见本书地位之显赫。
用先进的ACTOR模型,能创建更简单、性能及可伸缩性更高的系统。
函数响应式编程Functional Reactive Programming具前景,本书首度剖析其架构理念与实践思路。
本书作者前作《实现领域驱动设计》畅销至今,对DDD理解深刻,目前更是AKKA模型屈指可数的专家。
使用响应式结构通过全方位简化编程工作的各个层面,消除编程复杂性的方式
Actor系统和Actor对象的特点,以及通过Akka框架使它们拥有更强大功能的方式
怎样创建可以在一个或多个计算节点中自由伸缩的系统
创建通道机制的方式,以及怎样选择适当的通道解决应用程序的开发和整合难题
应使消息拥有怎样的结构,才能将消息发送者的意图清晰地告知消息接收者
由领域驱动的应用程序实现处理过程管理器的方式。
降低消息源和消息目的地之间的耦合性,和将适当的业务逻辑整合到消息路由器中的方式
在应用程序开发和整合环境中会用到的各种消息转换方式
使用事件溯源模式和符合CQRS原则的响应式视图,实现持久化Ac
內容簡介:
通过Actor模型使用响应式消息传输模式,可编写出具有高性能、高响应性、高可伸缩性和高韧性的并发应用程序。本书由10章构成,详细介绍了使用Actor模型中响应式消息传输模式的理论和实用技巧。其中包括:Actor模型和响应式软件的主要概念、Scala语言的基础知识、Akka框架与Akka集群功能、Actor模型中的通道机制和技术、降低消息源与消息目的地之间耦合性的方式、持久化Actor对象和幂等接收者。附录A中还介绍了通过.NET平台和C#语言使用Actor模型的方式。
關於作者:
作者具有很高的翻译水平和写作水平,从事与本书所讲内容相关的工作多年,具有丰富的理论知识和实践经验。本书翻译质量极佳,相信能成为一本销量很好的图书。 Vaughn Vernon 是一位资深的软件开发者,并且是一位简化软件设计和实现思想的领袖人物。他是畅销书Implementing Domain-Driven Design 的作者,这本书也是由Addison-Wesley 出版社出版的。他还为来自世界各地的数百位软件开发者教授IDDD Workshop 课程。Vaughn Vernon 经常在计算机行业大会上发表演讲。他擅长的领域包括分布式计算和消息传输,而且尤为擅长Actor 模型。在2012 年,他在一个GIS 系统中第一次使用了Akka 框架。此后,他就一直专门研究通过由领域驱动的设计模式应用Actor 模型的技术。通过关注Vaughn Vernon 的博客(www.VaughnVernon.co)和微博(Twitter 网站的VaughnVernon 用户),可以了解他的最新著作。
目錄
目录
第1章 Actor模型和企业级软件概述. ................................... 1
为什么企业级软件难以开发........1
响应式应用程序简介....................4
响应性 ....................................5
韧性 ...6
灵活性 ....................................6
消息驱动 ................................7
企业级应用程序............................8
Actor模型 ..9
Actor模型的起源 ................10
了解 Actor模型 ................... 11
Actor模型的明晰性 .....................20
下章提要.21
第2章 使用Scala语言和Akka框架实现Actor模型............. 22
怎样获取Scala语言和Akka框架 23
使用 Typesafe Activator编辑器 ..............................23
使用 sbt ................................23
使用 Maven ..........................24
使用 Gradle ..........................25
使用Scala语言编写程序 .............26
Scala概要教程 ....................27
使用Akka框架编写程序.............39
Actor系统 ............................40
实现 Actor对象 ...................46
监督 .52
远程处理 ..............................55
集群功能 ..............................68
测试 Actor对象 ...................94
CompletableApp类 .............98
小结.......100
第3章 性能情结. ........................ 101
晶体管...101
时钟频率....................................103
核心和高速缓存........................104
可伸缩性....................................106
多线程技术的难点....................109
Actor模型的作用 ....................... 114
处理伪共享 ........................ 116
设计模式.................................... 117
第4章 通过Actor对象传递消息. . 119
消息通道....................................120
消息.......121
管道和过滤器............................126
消息路由器................................131
消息译码器................................134
消息端点....................................135
小结.......137
第5章 消息通道. ........................ 138
点对点通道................................140
发布—订阅通道........................143
本地事件流 ........................143
分布式发布—订阅通道 ....149
数据类型通道............................157
非法消息通道............................159
死信通道....................................161
确保送达机制............................164
通道适配器................................172
消息桥...174
消息总线....................................180
小结.......189
第6章 消息结构. ........................ 190
命令消息....................................191
文档消息....................................192
管理处理流程和处理过程 194
事件消息....................................195
请求—回复模式........................197
返回地址....................................199
相关标识符................................203
消息序列....................................204
消息有效期................................206
格式标识符................................209
小结.......213
第7章 消息路由. ........................ 214
基于内容的路由器....................215
消息过滤器................................219
动态路由器................................223
接收者列表................................232
分离器...241
聚合器...245
重新定序器................................252
组合消息处理器........................259
分散—聚集路由器....................260
传送名单....................................274
处理过程管理器........................282
消息经纪人路由器....................298
小结.......301
第8章 消息转换. ........................ 302
封装器...303
内容丰富器................................305
不可变的 DoctorVisitCompleted消息...................309
是否应在本地系统中创建 AccountingEnricherDispatcher对象 ..............309
内容过滤器................................310
存放证...313
标准化器....................................321
规范化消息模型........................322
Actor系统需要标准 ..........323
小结.......324
第9章 消息端点. ........................ 325
消息传输网关............................326
消息传输映射............................332
事务型客户端 Actor对象 .........339
事务型客户端 ....................341
事务型 Actor对象 .............342
轮询消费者................................350
资源轮询 ............................354
由事件驱动的消费者................358
具有竞争性的消费者................359
消息调度器................................361
选择性消费者............................364
持久订阅者................................367
幂等接收者................................370
避免处理消息副本 ............370
使消息具有相同的效果 ....371
使状态切换操作不受收到消息副本的影响 .........372
服务激活剂................................378
小结.......379
第10章 系统管理和基础结构...... 380
控制总线....................................380
改道器...382
窃听器...384
消息元数据历史记录 ...............385
消息日志存储器 .......................389
智能代理....................................392
测试消息....................................397
通道净化器................................399
小结.......401
附录A .NET平台上的Akka工具集:Dotsero. ................... 402
Dotsero的Actor系统 ..................402
通过C#和.NET使用Actor对象 .405
Dotsero实现 ...............................410
小结.......413
参考资料.. 414
內容試閱
推荐序
终于有一本围绕企业应用和架构来讲解Actor 模型和Akka 的书了。很期待这类书的出现,希望能引领Actor 模型开始向企业应用的回归。
本书作者Vaughn Vernon 恰好也是《实现领域驱动设计》(ImplementingDomain Driven Design)一书的作者,这在某种程度上印证了,近十来年的领域驱动设计(DDD)理想在Actor 模型和Akka 上终于找到了现实的技术实现。
DDD 希望能在业务领域层面就把模型和逻辑设计清楚(业务模型和逻辑是最稳定的),并一一对应到实现中。或者说,领域有什么,实现中才应该有,也应该有。但由于计算机性能限制、语言实现难度等方面的原因,这一理想在现实中一直没能得到很大程度的实现。
而近二十年来,Java 及其生态一直占据着企业应用领域的主导地位。尤其从20 世纪90 年代末以来,J2EE 规范(现在叫Java EE)也试图围绕业务领域,为企业应用提供从建模到分层,涵盖事务、持久化、分布式的整套解决方案,并提出Entity Bean、Session Bean 及Message Bean 等试图对应到业务领域的模型。
遗憾的是,基于当时的技术,Java EE 也并没有很好地实现初衷,这在我看来至少有以下几方面的原因:
? EJB 规范起初的一个主要价值对分布式应用进行事务管理,在实践中几乎很少被使用,反倒引入了整个架构的复杂性。
? Entity Bean 不能在集群中分片部署,而这本应是分布式系统最需要解决的问题之一。
? 只有Message Bean 是异步的,但它却不是Entity Bean。这意味着系统很难在时间维度解耦。
2005 年前后,Hibernate、Spring 等技术逐渐兴起,以轻量化的角度切入了企业应用领域,并在互联网领域异军突起。
对于Spring Hibernate 的方案,保存在持久层的业务实体的数据 状态需要反复被业务逻辑存取。为了解决这个性能瓶颈,不得不引入Ehcache、Memcached、Redis 等中间缓存。这样,在数据扩张时,为了解决这些缓存数据的分片(sharding)问题,这些缓存方案还需要进一步引入和实现集群分片的支持,这带来了复杂性。可即便如此,它解决的是缓存数据的分布,而并没有解决Beans 本身的分布。Beans 仍然受限于Bean 容器的缓存大小,而不得不经常去中间缓存甚至持久层要数据。
那么,在企业应用领域,Actor 模型能带来更合适的解决范式吗?
Carl Hewitt 在1973 年对Actor 模型进行了如下定义:Actor 模型是一个把Actor作为并发数字计算的通用原语的数学理论。。这个定义跟我常说的Actor 是最适合并行计算的最小颗粒是相通的。
Actor 是异步驱动、可以并行和分布式部署及运行的最小颗粒。也即,它可以被分配、分布、调度到不同的CPU、不同的节点,乃至不同的时间片上运行,而不影响最终的结果。因此,Actor 是在空间(分布式)和时间(异步驱动)上解耦的。
Akka 是Lightbend(前身是Typesafe)公司在JVM 上的Actor 模型实现,它同时是一个可扩展、引入了多种分布式范式的框架。而且,Akka 2.3.0 开始支持带状态的Actors 的分片集群,以及根据journalsnapshot 形式对事件流和状态快照实施持久化和回放。
Akka 的Actor 模式本身可以保证在单个Actor 实例中每个行为的原子性,并行的粒度可以细化到单个Actor 实例。也即,当行为被封装在一个Actor 实例中时,该行为不会阻塞其他Actors 实例的行为,从而很难出现整个系统被阻塞的情况。
从EJB 角度看,Akka Actor 提供了什么对应的角色呢?
首先,从各类Bean 的角色看。Akka Actor 支持持久化,所以有一类Actor 可以设成Entity Bean;Actor 实例可以维护自己的状态,所以它也可以是StatefulSession Bean;而不需要关心其状态的Actor,自然可以担当Stateless SessionBean;最后,对Actor 的存取、调用,都是通过异步的消息传递来实现的,因此,它们都是Message Bean。
其次,从架构层面看。Actor 能同时担当实体Beans 和中间缓存的角色,并且是异步驱动的,且具备分片集群下的水平扩展能力。而akka-persistent 进一步将持久化、HA 一并细粒度地实现了。与SSHJava EE 相比,Actor 减少了数据反复在各种形态(数据库、缓存、业务层中的实体对象实例)间转化的消耗,减少了线程阻塞的消耗,并提供了一致的并行和分布式机制。
再次,从业务领域看。Actor 可以非常自然地直接对应到业务实体。某类Actor 的一个实例可以是一个人、一个物品、一部设备,等等。这些实体Actor 都是通过接收命令或者事件,来驱动完成一次状态的变化或者完成一次任务会话。Akka 的每个Actor 仍由自己的scheduler 来完成各类定时任务,也可以理解为它们同时可以由时钟事件来驱动。而一次任务会话也可以抽象为一个会话Actor 的实例,它跟踪会话的进度、事务状态、发送事件等。
最后,就像前面提到的,对Actor 实例的存取、调用是通过异步的消息传递来实现的,这带来一种担心:性能代价会不会很高?
这确实是很多年前,采用异步消息驱动来设计、实现系统的架构师、程序员的最大障碍,因为那时的机器不仅性能有限,多核的物理机制也少见且昂贵,而且多线程的切换代价高昂。
但对于现在的计算机而言,多核处处可见,CPU 的计算能力、线程的调度和切换能力也有了极大的提高,上面这些问题已经不再是障碍。比如,Akka 在单核的CPU 上,每秒可以处理的异步消息数是5000 万以上。尤其是,现代JVM的线程切换时间已经在微秒级,线程切换的代价变得非常小。小到在大量场景下,采用异步处理所带来的整体性能和效率的提升已经足够将其代价忽略。
还有一种担心来自:用Akka 会引入复杂的架构吗?
从DDD 的理念和实践来看,恰恰相反,因为处处都是同样的模型(Actor、Async Message Driven、Event Streaming),系统实际上更具一致性和弹性(包括对需求的弹性)。
这些年,我本人一直在尝试将Actor 模式及Akka 用于企业应用,包括证券交易及计算领域,以及在豌豆荚实现的若干实时系统。实际上最近十年做来做去无非是同一件事:将现实(直接)映射到计算机体系的Actor 模型。而实践效果充分验证了,采用异步消息驱动以及小粒度的并行和持久化机制,在性能和内存的使用上都不是问题。更重要的是,模型及架构与领域的自然对应大大降低了系统进化和维护的成本。而得益于Akka 的集群、高可用及事件溯源(Event-Souring)的持久化机制,这几个系统也几乎都能无故障地持续运行。运行时间最长的一个,超过了两年没有重启。
本书的内容是基于Akka 2.3.4 版本的,这个版本包含了Akka 框架主要的功能和实现(包括sharding 和persistent),非常新且全面。而且作为一个长期从事企业应用领域的设计和实现的专家,作者非常熟悉在企业业务领域需要用到的知识和术语以及思维方式,并很好地融入了Akka 的实践。
豌豆荚资深程序员 邓草原

 

 

書城介紹  | 合作申請 | 索要書目  | 新手入門 | 聯絡方式  | 幫助中心 | 找書說明  | 送貨方式 | 付款方式 台灣用户 | 香港/海外用户
megBook.com.tw
Copyright (C) 2013 - 2024 (香港)大書城有限公司 All Rights Reserved.