0 0 0

Erlang / OTP并发编程实战.pdf

风中独舞
2天前 110
我用夸克网盘分享了「 Erlang / OTP并发编程实战.pdf」,点击链接即可保存。打开「夸克APP」在线查看,支持多种文档格式转换。
作者: [美] Martin Logan/[美] Eric Merritt/[瑞典] Richard Carlsson 出版社: 人民邮电出版社 原作名: Erlang and OTP in Action 译者: 连城 出版年: 2012-7-12 页数: 356 定价: 79.00元 装帧: 平装 丛书: 图灵程序设计丛书 ISBN: 9787115285591

内容简介

内容简介: 通过提高CPU时钟频率来制造更快的单核芯片的技术已经到达了极限。多核、并发、分布式等概念和技术也随之走出象牙塔,成为每个一线开发者的必备技能。由通信巨头爱立信研发的Erlang/OTP大放异彩,二十多年来,在传统电信领域高并发、高可靠、高容错的严酷环境下,Erlang语言和OTP平台被锻炼得坚如磐石,浓郁的函数式特质更是恰到好处地弥补了传统命令式语言在并发编程上的固有缺陷,大大降低了构筑并发、容错、分布式应用的门槛。 如果将Erlang语言看成才华横溢的钢琴家,那么OTP平台就是一架能让钢琴家把才能发挥得淋漓尽致的钢琴。本书除了全面介绍Erlang语言和OTP平台的基础知识外,还通过一系列实用案例引领你深入了解OTP的高级特性,一步步构建一个大型生产系统,并加以优化和完善。三位作者在Erlang领域拥有极其丰富的实战经验,细致入微地剖析了OTP开发与部署的全过程。要想真刀真枪地上战场,本书才是你明智的选择!

作者简介

作者简介: Martin Logan 从1999年开始活跃于Erlang社区,后来全职从事Erlang研发。目前任职于全球最大的在线旅游公司Orbitz Worldwide,为基于大规模分布式服务的基础设施开发解决方案。Erlware联合创始人,核心开发人员,Erlang/OTP软件包管理系统Faxien的主要开发者。 Eric Merritt 专注并发编程和分布式系统。曾任职于Amazon.com,现为eCD Market软件工程师。Erlware联合创始人,Erlang芝加哥用户组核心成员。Erlware团队开源产品核心开发人员,Erlang/OTP构建系统Sinan的主要开发者。 Richard Carlsson 瑞典乌普萨拉大学高性能Erlang计划(HiPE)早期成员,研究Erlang技术达17年,曾为标准库、Erlang编译器、运行时系统和Erlang语言本身都作出过不少贡献。此外,他还是Erlang文档系统EDoc和单元测试框架EUnit的创建者。目前加入了Kreditor,致力于高可用性支付系统的Erlang开发。 译者简介: 连城 百度资深软件工程师,《Erlang并发编程(第一部分)》社区翻译项目组织者及主要译者。对分布式存储、分布式消息系统、程序语言设计实现抱有浓厚兴趣。

网友热评

阿丹: 现在来看,内容有部分过时,并且也没有足够深入。 Apocalypse: 把erlang应用到工业环境所需的大部分技术 大雨晴空: 深入浅出啊~~, 偏工程,但是好像少了热更新啊

图书目录

目  录 第一部分 Erlang起步:OTP基础 第1章 Erlang/OTP平台 2 1.1 基于进程的并发编程 3 1.1.1 理解并发 3 1.1.2 Erlang的进程模型 4 1.1.3 4种进程通信范式 5 1.1.4 用Erlang进程编程 8 1.2 Erlang的容错架构 10 1.2.1 进程链接如何工作 10 1.2.2 监督与退出信号捕捉 10 1.2.3 进程的分层容错 12 1.3 分布式Erlang 13 1.4 Erlang运行时系统和虚拟机 13 1.4.1 调度器 14 1.4.2 I/O与调度 15 1.4.3 进程隔离与垃圾回收器 15 1.5 函数式编程:Erlang的处世之道 16 1.6 小结 16 第2章 Erlang语言精要 18 2.1 Erlangshell 19 2.1.1 启动shell 19 2.1.2 输入表达式 20 2.1.3 shell函数 21 2.1.4 退出shell 21 2.1.5 任务控制基础 22 2.2 Erlang的数据类型 23 2.2.1 数值与算术运算 24 2.2.2 二进制串与位串 25 2.2.3 原子 26 2.2.4 元组 27 2.2.5 列表 27 2.2.6 字符串 28 2.2.7 pid、端口和引用 29 2.2.8 将函数视作数据:fun函数 30 2.2.9 项式的比较 30 2.2.10 解读列表 31 2.3 模块和函数 33 2.3.1 调用其他模块中的函数(远程调用) 33 2.3.2 不同元数的函数 34 2.3.3 内置函数和标准库模块 34 2.3.4 创建模块 35 2.3.5 模块的编译和加载 36 2.3.6 独立编译器erlc 37 2.3.7 已编译模块与在shell中求值 37 2.4 变量与模式匹配 38 2.4.1 变量的语法 39 2.4.2 单次赋值 39 2.4.3 模式匹配:加强版的赋值 41 2.4.4 解读模式 42 2.5 函数与子句 44 2.5.1 带副作用的函数:文本打印 44 2.5.2 用模式匹配在多个子句中进行选择 45 2.5.3 保护式 46 2.5.4 模式、子句和变量作用域 47 2.6 Case和if表达式 48 2.6.1 Erlang的布尔型if-then-else 分支选择 48 2.6.2 If表达式 49 2.7 fun函数 49 2.7.1 作为现有函数别名的fun函数 49 2.7.2 匿名fun函数 50 2.8 异常与try/catch 52 2.8.1 抛出(触发)异常 52 2.8.2 运用try...catch 53 2.8.3 try...of...catch 53 2.8.4 after 54 2.8.5 获取栈轨迹 54 2.8.6 重抛异常 55 2.8.7 传统的catch 55 2.9 列表速构 56 2.9.1 列表速构记法 56 2.9.2 映射、过滤和模式匹配 56 2.10 比特位语法与位串速构 57 2.10.1 构造位串 57 2.10.2 比特位语法中的模式匹配 58 2.10.3 位串速构 59 2.11 记录语法 59 2.11.1 记录声明 60 2.11.2 创建记录 60 2.11.3 记录的字段以及模式匹配 60 2.11.4 更新记录字段 60 2.11.5 记录声明应该放在哪儿 61 2.12 预处理与文件包含 61 2.12.1 宏的定义和使用 61 2.12.2 文件包含 62 2.12.3 条件编译 63 2.13 进程 64 2.13.1 操纵进程 64 2.13.2 消息接收与选择性接收 65 2.13.3 注册进程 66 2.13.4 消息投递与信号 67 2.13.5 进程字典 67 2.14 ETS表 68 2.14.1 为何ETS表被设计成这样 68 2.14.2 ETS表的基本用法 68 2.15 以递归代替循环 69 2.15.1 从迭代到递归 69 2.15.2 理解尾递归 71 2.15.3 累加器参数 72 2.15.4 谈谈效率 72 2.15.5 编写递归函数的窍门 73 2.16 Erlang编程资源 78 2.16.1 图书 78 2.16.2 在线资料 79 2.17 小结 79 第3章 开发基于TCP的RPC服务 80 3.1 你所创建的是什么 81 3.1.1 基础知识提醒 82 3.1.2 行为模式基础 82 3.2 实现RPC服务器 85 3.2.1 行为模式实现模块的典型布局 85 3.2.2 模块首部 85 3.2.3 API段 88 3.2.4 回调函数段 92 3.3 运行RPC服务器 98 3.4 浅谈测试 99 3.5 小结 100 第4章 OTP应用与监督机制 101 4.1 OTP应用 101 4.1.1 OTP应用的组织形式 102 4.1.2 为应用添加元数据 103 4.1.3 应用行为模式 104 4.1.4 应用结构小结 105 4.2 用监督者实现容错 105 4.2.1 实现监督者 106 4.2.2 监督者重启策略 107 4.2.3 编写子进程规范 108 4.3 启动应用 109 4.4 生成EDoc文档 110 4.5 小结 110 第5章 主要图形化监测工具的使用 112 5.1 Appmon 112 5.1.1 AppmonGUI 112 5.1.2 WebTool版Appmon 115 5.2 Pman 116 5.3 调试器 118 5.4 表查看器TV 121 5.5 工具栏 123 5.6 小结 123 第二部分 构建生产系统 第6章 打造一套缓存系统 126 6.1 故事背景 126 6.2 缓存的设计 127 6.3 创建OTP应用的基本骨架 130 6.3.1 应用目录结构的布局 130 6.3.2 创建应用元数据 130 6.3.3 实现应用行为模式 131 6.3.4 实现监督者 131 6.4 从应用骨架到五脏俱全的缓存 133 6.4.1 编写sc_element进程 134 6.4.2 实现sc_store模块 138 6.4.3 打造应用层API模块 142 6.5 小结 144 第7章 Erlang/OTP中的日志与事件 处理 145 7.1 Erlang/OTP中的日志 146 7.1.1 日志概述 146 7.1.2 Erlang/OTP内置的日志设施 147 7.1.3 标准日志函数 147 7.1.4 SASL与崩溃报告 149 7.2 用gen_event编写自定义事件 处理器 153 7.2.1 gen_event行为模式简介 153 7.2.2 事件处理器示例 154 7.2.3 处理错误事件 155 7.3 为SimpleCache添加自定义事件流 157 7.3.1 事件流API 157 7.3.2 将处理器整合进SimpleCache 159 7.3.3 订阅自定义事件流 161 7.4 小结 162 第8章 分布式Erlang/OTP简介 163 8.1 Erlang分布式基础 163 8.1.1 复制式进程间通信 164 8.1.2 位置透明性 165 8.2 节点与集群 166 8.2.1 节点的启动 166 8.2.2 节点的互联 167 8.2.3 Erlang节点如何定位其他节点并与之建立通信 169 8.2.4 magiccookie安全系统 170 8.2.5 互联节点间的消息传递 171 8.2.6 使用远程shell 173 8.3 资源探测攻略 175 8.3.1 术语 175 8.3.2 算法 176 8.3.3 实现资源探测应用 177 8.4 小结 182 第9章 用Mnesia为cache增加分布 式支持 183 9.1 分布式缓存 184 9.1.1 选取通信策略 184 9.1.2 同步缓存和异步缓存 186 9.1.3 分布式表 188 9.2 用Mnesia实现分布式数据存储 189 9.2.1 建立项目数据库 189 9.2.2 初始化数据库 191 9.2.3 建表 192 9.2.4 向表中录入数据 195 9.2.5 执行基本查询 197 9.3 基于Mnesia的分布式缓存 199 9.3.1 用Mnesia取代ETS 199 9.3.2 让缓存识别出其他节点 202 9.3.3 用资源探测定位其他缓存 实例 205 9.3.4 动态复制Mnesia表 206 9.4 小结 209 第10章 打包、服务和部署 210 10.1 从系统的角度看应用 210 10.1.1 结构 211 10.1.2 元数据 211 10.1.3 系统如何管理运行中的 应用 212 10.2 制作发布镜像 213 10.2.1 发布镜像 213 10.2.2 准备发布代码 214 10.2.3 发布镜像的元数据文件 214 10.2.4 脚本与启动文件 216 10.2.5 系统配置 217 10.2.6 启动目标系统 218 10.3 发布镜像打包 219 10.3.1 创建发布镜像包 219 10.3.2 发布镜像包的内容 220 10.3.3 定制发布镜像包 222 10.4 安装发布镜像 223 10.5 小结 223 第三部分 集成与完善 第11章 为缓存添加HTTP接口 226 11.1 实现TCP服务器 226 11.1.1 高效TCP服务器的设计 模式 227 11.1.2 搭建tcp_interface应用的 骨架 228 11.1.3 填充TCP服务器的实现 逻辑 228 11.1.4 简单文本协议 231 11.1.5 文本接口实现 232 11.2 打造一套全新的Web接口 234 11.2.1 HTTP简介 234 11.2.2 实现一套通用的Web服务 器行为模式 237 11.2.3 初识REST 248 11.2.4 用gen_web_server实现 REST式协议 249 11.3 小结 252 第12章 用端口和NIF集成外围代码 253 12.1 端口和NIF 254 12.1.1 普通端口 255 12.1.2 链入式端口驱动 256 12.1.3 原生函数(NIF) 257 12.2 用端口来集成解析器 257 12.2.1 Erlang方面的端口 257 12.2.2 C方面的端口 260 12.2.3 编译运行 271 12.3 开发链入式驱动 272 12.3.1 初识链入式驱动 273 12.3.2 驱动的C语言部分 274 12.3.3 编译驱动代码 278 12.3.4 驱动的Erlang部分 279 12.4 将解析器实现为NIF 280 12.4.1 NIF的Erlang部分 280 12.4.2 NIF的C代码部分 281 12.4.3 编译与运行代码 287 12.5 小结 288 第13章 用Jinterface实现Erlang和 Java间的通信 289 13.1 利用Jinterface在Erlang中集成 Java 290 13.1.1 OtpNode类 290 13.1.2 OtpMbox类 291 13.1.3 Erlang数据结构的Java 映射 291 13.1.4 示例:Java中的消息处理 292 13.1.5 在Erlang中与Java节点 通信 294 13.2 安装和配置HBase 296 13.2.1 下载和安装 296 13.2.2 配置HBase 296 13.3 为SimpleCache和HBase牵线 搭桥 297 13.3.1 Erlang方面:sc_hbase.erl 298 13.3.2 HBaseConnector类 299 13.3.3 Java中的消息处理 301 13.3.4 HBaseTask类 304 13.4 在SimpleCache中整合HBase 306 13.4.1 查询 306 13.4.2 插入 307 13.4.3 删除 307 13.5 运行集成系统 308 13.6 小结 310 第14章 优化与性能 311 14.1 如何进行性能调优 312 14.1.1 设定性能目标 312 14.1.2 设定基线 313 14.1.3 系统性能分析 313 14.1.4 确定需要解决的问题 313 14.1.5 测定优化成果 313 14.2 Erlang代码性能分析 314 14.2.1 用cprof计算调用次数 314 14.2.2 用fprof测定执行时间 316 14.3 Erlang编程语言的缺陷 320 14.3.1 基本数据类型的性能特点 321 14.3.2 内置函数和运算符的性能 324 14.3.3 函数 325 14.3.4 进程 327 14.4 小结 329 附录A 安装Erlang 330 附录B 列表与引用透明性 332

Erlang

版权说明

1、本站不保存、不存储任何实质资源,以上二维码指向为网盘资源链接,其内容归对应版权方所有
2、如有侵犯版权的情况,请点击下面举报/反馈按钮反馈或发送邮件76556431@qq.com投诉说明情况
3、我们核实后将第一时间删除相关页面内容,谢谢理解和配合

这些人下载过 (12)
  • 我不会变
  • 你若盛开蝴蝶自来
  • 暗社狠徒
  • 凡事清韵
  • 覆灭神话
  • 待你语毕
  • 说你太烂像是我在夸你
  • 红漫过了眼
  • 没她没命
  • 顽皮灬贝贝
  • 妹子我面了没
  • 先舔一舔我不想泡一泡
最新回复 (0)

    暂无评论

请先登录后发表评论!

返回
请先登录后发表评论!