Giter Club home page Giter Club logo

fenix_architecture_book's Introduction

《凤凰架构:构建可靠的大型分布式系统》勘误

  本工程为《凤凰架构:构建可靠的大型分布式系统》纸质书的勘误,根据读者反馈持续更新,可通过issues提交新的勘误。 本仓库仅作勘误之用,如对书籍具体内容有建议或疑惑,欢迎到本书主页(https://icyfenix.cn/)对应章节的页面中提出。

勘误列表:

  • Page 147:那把令牌放到内存里面,压根不考虑持久化【那是】最理想的方案。
    更正:那把令牌放到内存里面,压根不考虑持久化【才是】最理想的方案。

  • Page 158:而讽刺的是,由于停止后许多政府网站【被无法被浏览】
    更正:而讽刺的是,由于停止后许多政府网站【无法被浏览】

  • Page 208:【只许】设置一两个开关参数就可以开启对某个服务甚至全部服务的重试机制
    更正:【只需】设置一两个开关参数就可以开启对某个服务甚至全部服务的重试机制

以下勘误内容已在第4次重印版(2021-11-17日)修正


  • Page 2:此时的微型计算机系统通常具有 16 位寻址能力、不足 5MHz 时钟频率的处理器和 128 KB 左右的内存地址空间。
    这句话容易引起误解,修改为:
    此时的微型计算机系统通常具有 16 位寄存器、不足 5MHz 时钟频率的处理器,不超过 1 MB 的最大内存和 64KB 单段偏移地址

  • Page 59:这可能是相对【重负载操作】
    更正:这可能是相对【重负载的操作】

  • Page 137:这页有3处【隐私授权】,均为笔误,应为【隐式授权】

  • Page 166:如果使用三块硬盘存储则是【0.00125%】,四块是 【0.0000625%】,换而言之,这已经保证了数据在一年内有超过【99.9999%】的概率是安全可靠的
    更正:如果使用三块硬盘存储则是【0.0125%】,四块是 【0.000625%】,换而言之,这已经保证了数据在一年内有超过【99.999%】的概率是安全可靠的

  • Page 225-226:【JKWS】 顾名思义就是一组 JWK 的集合,支持 【JKWS】 的系统……
    更正:【JWKS】 顾名思义就是一组 JWK 的集合,支持 【JWKS】 的系统……

以下勘误内容已在第3次重印版(2021-9-12日)修正


  • Page 201:表8-1:出错的地方在一定时间【类】不可用
    更正:出错的地方在一定时间【内】不可用

  • Page 320-321:# 访问模式为【RXO】\ # 支持【RXO】访问模式
    更正:# 访问模式为【RWO】 \ # 支持【RWO】访问模式

  • Page 363-364:有3处【UDPA】笔误写成了【UDAP】,请编辑下次重印时修正一下。

以下勘误内容已在第2次重印版(2021-8-25日)修正


  • Page 231:通过财报上的营收、净利、毛利、资产、【负载】
    更正:通过财报上的营收、净利、毛利、资产、【负债】

  • Page 40:Google API 【Deign】 Guide
    更正:Google API 【Design】 Guide

以下勘误内容已在第1次重印版(2021-8-15日)修正


  • Page 28:笔者曾经在“原始分布式时代”中介绍过 【DEC】,这是历史上第一次对分布式有组织的探索尝试,由于 【DEC】 本身是基于 UNIX 操作系统的,所以 【DEC】/RPC 通常也仅适合于 UNIX 系统程序之间使用
    更正:笔者曾经在“原始分布式时代”中介绍过 【DCE】,这是历史上第一次对分布式有组织的探索尝试,由于 【DCE】 本身是基于 UNIX 操作系统的,所以 【DCE】/RPC 通常也仅适合于 UNIX 系统程序之间使用

  • Page 30:【DEC】/RPC 与 ONC RPC 都有很浓厚的 Unix 痕迹
    更正:【DCE】/RPC 与 ONC RPC 都有很浓厚的 Unix 痕迹

  • Page 42:POST /appointmentService?action=【comfirm】 HTTP/1.1
    更正:POST /appointmentService?action=【confirm】 HTTP/1.1

  • Page 76:同时依【然能够或者在】绝大多数时候保证处理结果的准确性
    更正:同时依然【能够在】绝大多数时候保证处理结果的准确性

  • Page 269:这个容器是整个 Pod 中第一个启动的容器,只有【几十万字节】大小(代码只有很短的几十行,
    更正:这个容器是整个 Pod 中第一个启动的容器,只有【几百 KB】大小(代码只有很短的几十行,
    (上面这些英文都不应该进行翻译,我复审的时候没有检查出来)

  • Page 212:TCP 协议的【阻塞控制(Congestion Control)】
    更正:TCP 协议的【流量控制(Flow Control)】

  • Page 234:再譬如,当前方法的返回值是个【映射】,开发期的调试数据只做了三五个【实体】,觉得遍历一下把具体内容打到日志里面没什么问题,到了生产期,这个【映射】里面有可能存放了成千上万个【实体】,这时候打印日志就相当于引用慢操作
    更正:再譬如,当前方法的返回值是个【Map】,开发期的调试数据只做了三五个【Entity】,觉得遍历一下把具体内容打到日志里面没什么问题,到了生产期,这个【Map】里面有可能存放了成千上万个【Entity】,这时候打印日志就相当于引用慢操作
    (上面这些英文都不应该进行翻译,我复审的时候没有检查出来)

  • Page 279:从 2018 年起,Helm 项目被托管到 【CNFC】
    更正:从 2018 年起,Helm 项目被托管到 【CNCF】

  • Page 351:或者代理主动从【约定的好的】位置获取
    更正:或者代理主动从【约定好的】位置获取

  • Page 378:可见族群运作的复杂度【就越高】,治理难度也越高。
    更正:可见族群运作的复杂度【越高】,治理难度也越高。

fenix_architecture_book's People

Contributors

fenixsoft avatar hanxu2018 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

fenix_architecture_book's Issues

12章299页 错误

第二行 源ip:veth0的ip,即 192.168.31.1

192.168.31.1 这个应该不对,应该是192.168.1.10/192.168.1.11/192.168.1.12 三个地址中过的一个吧

P201 表8-1 Typo

沉默失败一栏,"一定时间内" 误写为 "一定时间类"

第一章 P18 第5行

纸质版中,“持续的500错”改为“持续的500错误”更通顺一点。

本地事务 关于数据库采用MVCC在具体的web应用场景?

周老师好!在线阅读网站,github的登录跳转后无法显示Gitalk,因此在此处留言,希望有空能指点迷津。
在分布式事务章节的留言中,有一位同学提到了可重复读MVCC下的应用场景。
image

SELECT quantity FROM books WHERE id=1 lock in share mode;		/* 时间顺序:1,事务: T1 */

/*事务: T1 运算后将quantity改为2  因为MVCC方案中事务2的select并不会加读锁,所以这条语句可以顺利执行并commit*/
UPDATE books SET quantity=2 WHERE id=1					/* 时间顺序:3,事务: T1 */
commit

在我们web应用中,假设一个库存服务有上述的扣减库存的事务操作,在单线程下,这是一个读-写场景。但是web服务下,经常是会有多个前端请求的,那么这样的一个操作就已经变成了一个写-写的场景了。老师在文中提到的,现在的web应用中经常会在数据库表中加version的版本号字段,做并发的乐观锁控制。
那么MVCC的技术,除了在读-写场景的一个优化作用,在现代的web应用中,又有哪些什么应用意义呢?是不是只要读提交的隔离级别就够了,MVCC就变成累赘了?

勘误:147 页第 8 行

2021 年 8 月,第 1 版,第 2 次印刷

原文:“那把令牌放到内存里面,压根就不考虑持久化那是最理想的方案”
推断应为:“那把令牌放到内存里面,压根就不考虑持久化那才是最理想的方案”
或者:“那把令牌放到内存里面,压根就不考虑持久化才是最理想的方案”

原文中是否少了一个 “才” 字

markdown错别字

什么是“凤凰架构”
谈论它们可能要面临【则】“一百个人眼中有一百个哈姆雷特”的困境
谈论它们可能要面临【着】“一百个人眼中有一百个哈姆雷特”的困境

第8章 214页 漏桶限流描述

在提到难以确定漏桶的两个参数时描述是否不准确?
原文:

难点在于如何确定漏桶的两个参数:桶的大小和水的流出速率。如果桶设置的太大,那服务依然可能遭遇流量过大的冲击,不能完全发挥限流的作用;如果设置的太小,那很可能误杀掉一部分正常的请求,...

对于桶设置太大,个人理解是整体请求响应的时间会延长,在水的流出速率不变的情况下,是不会造成大流量冲击的吧?

P56倒数第12行 数据库的隔离级别是否是一种设定

原文
以上四种隔离级别属于数据库理论的基础知识,多数大学的计算机课程应该都会讲到,可惜的是不少教材、资料将它们当作数据库的某种固有属性或设定来讲解,这导致很多同学只能对这些现象死记硬背。

根据 mysql官方文档 https://dev.mysql.com/doc/refman/8.0/en/innodb-transaction-isolation-levels.html#isolevel_repeatable-read
image
隔离级别是一种标准,innodb实现了这种标准,我的理解隔离级别就是一种设定~

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.