江苏印刷价格联盟

勘误2—《亿级流量网站架构核心技术》

只看楼主 收藏 回复
  • - -
楼主

如果发现书中错误,麻烦在公众号留言,感谢支持。对造成的阅读不便深感抱歉~


如果您买到的是第四次印刷版本,勘误已经修订。



新书购买地址



补充内容

反向代理与Real-IP和X-Forwarded-For

spring-retry重试与熔断详解—《亿级流量》内容补充


勘误列表

4

无论是第一年人事软件开发的工程师,还是工作多年的资深人士,均可从本书中受益。

改为

无论是第一年从事软件开发的工程师,还是工作多年的资深人士,均可从本书中受益。

 

 

8  XIII

多极缓存 

改为

缓存

 

前言 XV

阅读本书需要对Java OpenRestyNginx+Lua)、RedisMysQl 等技术有一定了解,

改为

阅读本书需要对Java OpenRestyNginx+Lua)、RedisMySQL等技术有一定了解,

 

P9 P344

假设一个读服务需要如下数据。

目标数据  

数据A

数据B

数据C

数据D

数据E

获取时间

10ms

15ms

10ms

20ms

5ms

 

如果串行获取,那么需要60ms

而如果数据C 依赖数据A 和数据B 、数据D 谁也不依赖、数据E 依赖数据C ,那么我们可以这样来获取数据。

如果并发化获取,则需要30ms,能提升一倍的性能。

假设数据C 还依赖数据F5ms ),而数据F 是在数据C 服务中获取的,此时,就可以考虑在取A/B/D服务数据时,并发预取数据 F,那么整体性能就变为25ms

 

P15

压测方案(线上、线上等)

改为

压测方案(线上、线下等)

 

P32

首先,upstream 服务启动,我们通过管理后台向Consule注册服务。

改为

首先,upstream 服务启动,我们通过管理后台向Consul注册服务。

 

P44 P58

改为


P76

Stringlimit = "3"; //限流大小

改为

String limit = "3"; //限流大小

 

P195

则会构建一个包含ByteArrayEntity BasicHttpResonse对象

改为

则会构建一个包含ByteArrayEntity BasicHttpResponse对象



P40

proxy_timeout 配置与客户端或上游服务器连接的两次成功读/写操作的超时时间

改为

proxy_timeout 配置与客户端或上游服务器连接两次/写操作的超时时间

 

P119

client_body_timeout time :设置读取客户端内容体超时时间,默认为60s,此超

时时间指的是两次成功读操作间隔时间,

改为

client_body_timeout time :设置读取客户端内容体超时时间,默认为60s,此超

时时间指的是连续两次读操作间隔时间,

 

P120

send_timeout time :设置发送响应到客户端的超时时间,默认为60s,此超时时

间指的也是两次成功写操作间隔时间,而不是发送整个响应的超时时间。

改为

send_timeout time :设置发送响应到客户端的超时时间,默认为60s,此超时时

间指的也是连续两次写操作间隔时间,而不是发送整个响应的超时时间。

 

P124

proxy_read_timeout time :设置从后端/上游服务器读取响应的超时时间,默认

60s,此超时时间指的是两次成功读操作间隔时间,而不是读取整个响应体

改为

proxy_read_timeout time :设置从后端/上游服务器读取响应的超时时间,默认

60s,此超时时间指的是连续两次读操作间隔时间,而不是读取整个响应体

 

P125

proxy_send_timeout time :设置往后端/上游服务器发送请求的超时时间,默认

60s,此超时时间指的是两次成功写操作间隔时间,而不是发送整个请求的

改为

proxy_send_timeout time :设置往后端/上游服务器发送请求的超时时间,默认

60s,此超时时间指的是连续两次写操作间隔时间,而不是发送整个请求的

 

P361

因此,在生成环境中会通过把CPU绑定给Nginx

改为

因此,在生产环境中会通过把CPU绑定给Nginx

 

P84

桶计算时间窗口(1.5 秒)= 速率(2r/s/ 桶容量(3

改为

桶计算时间窗口(1.5 秒)= 桶容量(3/ 速率(2r/s

 

P87

桶计算时间窗口(1.5 秒)= 速率(2r/s/ 桶容量(3

改为

桶计算时间窗口(1.5 秒)= 桶容量(3/ 速率(2r/s

 

P11

开关前置化:如架构是NginxTomcat,可以将开关前置到Nginx 接入层,在

Nginx 层做开关,请求流量回源后端应用或者只是一小部分流量回源。

改为

开关前置化:如架构是NginxTomcat,可以将开关前置到Nginx 接入层,在

Nginx 层做开关,请求流量回源后端Tomcat应用或者只是一小部分流量回源。


P137

在实际开发中,不要轻视超时时间,很多重大事故都是因为超时时间不合理导致的,

设置超时时间一定是只有好处没有坏处的,请立即Review你的代码吧。

改为

在实际开发中,不要轻视超时时间,很多重大事故都是因为超时时间不合理导致的,

设置超时时间一定是只有好处没有坏处的,请立即Review你的代码吧。

 

spring-retry项目实现了重试和熔断功能,目前已用于SpringBatchSpring Integration等项目。请扫描如下二维码前往学习。


spring-retry实现重试和熔断


P91

throttleFirst/throttleLast 是基于决定时间做的处理,

改为

throttleFirst/throttleLast 是基于绝对时间做的处理,

 

P235

也就是,说假设我们有500个连接池,每个连接执行1Statement,最坏的情况

下会创建:

1+500×1=501个线程。

假设一个应用中有三个MySQL库,那么最坏情况下有:

改为

也就是,说假设我们有500个连接池,每个连接执行1Statement,最坏的情况

下会创建:

1+500×1=501个线程。

假设一个应用中有三个Oracle库,那么最坏情况下有:

 

P26

不过,proxy_passhttp://c0.3.cn是支持动态域名解析的。

改为

不过,set $backend "http://c0.3.cn";proxy_pass $backend; 是支持动态域名解析的。并要配置nginx resolver指令。注意:nginx proxy_pass对变量是动态解析的,nginx 1.1.9版本之前对resolver DNS解析结果总是缓存5分钟。

 

P123

一种简单的办法是使用如下方式,每次都会动态解析域名,这种情况在多域名情况下比较麻烦,实现不优雅。

    location /test {

        proxy_pass http://c0.3.cn;

}

改为

一种简单的办法是使用proxy_pass+变量方式实现动态解析域名,这种情况在多域名情况下比较麻烦,实现不优雅。

location /test {

        set $backend "http://c0.3.cn";

        proxy_pass $backend;

}

 

 

P123

可以考虑proxy_passhttp://p.3.local/prices/mgets$is_args$args),然后配合resolver来实现。

改为

可以考虑proxy_pass变量配合resolver实现域名动态解析:set$backend "http://c0.3.cn"; proxy_pass $backend;

 

P18

因此,外网DNS 应该用来实现用GSLB(全局负载均衡)进行流量调度

改为

外网DNS 实现GSLB(全局负载均衡)进行流量调度

 


举报 | 1楼 回复

友情链接