Skip to content

Commit 9251cc4

Browse files
yanglbmeactions-user
authored andcommitted
Prettified Code!
1 parent 8e3bd40 commit 9251cc4

7 files changed

+437
-411
lines changed

.docsifytopdfrc.js

+6-6
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
module.exports = {
2-
contents: [ "summary.md" ],
3-
pathToPublic: "pdf/advanced-java.pdf",
4-
pdfOptions: "<options for puppeteer.pdf()>",
5-
removeTemp: true,
6-
emulateMedia: "screen",
7-
}
2+
contents: ["summary.md"],
3+
pathToPublic: "pdf/advanced-java.pdf",
4+
pdfOptions: "<options for puppeteer.pdf()>",
5+
removeTemp: true,
6+
emulateMedia: "screen",
7+
};

README.md

+1-2
Original file line numberDiff line numberDiff line change
@@ -229,7 +229,6 @@ Doocs 技术社区,致力于打造一个内容完整、持续成长的互联
229229
</tr>
230230
</table>
231231

232-
233232
关注「**Doocs 开源社区**」公众号,回复 **PDF**,即可获取本项目离线 PDF 文档(283 页精华),学习更加方便!
234233

235-
![](./images/pdf.png)
234+
![](./images/pdf.png)

docs/extra-page/advanced.md

+1-2
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
11
<p align="center"><iframe frameborder="no" border="0" marginwidth="0" marginheight="0" width=330 height=86 src="//music.163.com/outchain/player?type=2&id=1334849028&auto=1&height=66"></iframe></p>
22
<p align="center">本单曲受版权保护,可<a href="https://music.163.com/#/mv?id=10859500">点击观看 MV</a>。</p>
33

4-
> 受伤的得到疗愈,挣扎的得到出口<br>
5-
> _Let those who hurt heal, let those who struggle find hope_.
4+
> 受伤的得到疗愈,挣扎的得到出口<br> > _Let those who hurt heal, let those who struggle find hope_.
65
76
```
87
告别的时刻已到了
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
## 电商网站的商品详情页系统架构
22

33
### 小型电商网站的商品详情页系统架构
4+
45
小型电商网站的页面展示采用页面全量静态化的思想。数据库中存放了所有的商品信息,页面静态化系统,将数据填充进静态模板中,形成静态化页面,推入 Nginx 服务器。用户浏览网站页面时,取用一个已经静态化好的 html 页面,直接返回回去,不涉及任何的业务逻辑处理。
56

67
![e-commerce-website-detail-page-architecture-1](./images/e-commerce-website-detail-page-architecture-1.png)
@@ -9,11 +10,11 @@
910

1011
```html
1112
<html>
12-
<body>
13-
商品名称:#{productName}<br>
14-
商品价格:#{productPrice}<br>
15-
商品描述:#{productDesc}
16-
</body>
13+
<body>
14+
商品名称:#{productName}<br />
15+
商品价格:#{productPrice}<br />
16+
商品描述:#{productDesc}
17+
</body>
1718
</html>
1819
```
1920

@@ -24,17 +25,17 @@
2425
**坏处**在于,仅仅适用于一些小型的网站,比如页面的规模在几十到几万不等。对于一些大型的电商网站,亿级数量的页面,你说你每次页面模板修改了,都需要将这么多页面全量静态化,靠谱吗?每次渲染花个好几天时间,那你整个网站就废掉了。
2526

2627
### 大型电商网站的商品详情页系统架构
28+
2729
大型电商网站商品详情页的系统设计中,当商品数据发生变更时,会将变更消息压入 MQ 消息队列中。**缓存服务**从消息队列中消费这条消息时,感知到有数据发生变更,便通过调用数据服务接口,获取变更后的数据,然后将整合好的数据推送至 redis 中。Nginx 本地缓存的数据是有一定的时间期限的,比如说 10 分钟,当数据过期之后,它就会从 redis 获取到最新的缓存数据,并且缓存到自己本地。
2830

2931
用户浏览网页时,动态将 Nginx 本地数据渲染到本地 html 模板并返回给用户。
3032

3133
![e-commerce-website-detail-page-architecture-2](./images/e-commerce-website-detail-page-architecture-2.png)
3234

33-
3435
虽然没有直接返回 html 页面那么快,但是因为数据在本地缓存,所以也很快,其实耗费的也就是动态渲染一个 html 页面的性能。如果 html 模板发生了变更,不需要将所有的页面重新静态化,也不需要发送请求,没有网络请求的开销,直接将数据渲染进最新的 html 页面模板后响应即可。
3536

3637
在这种架构下,我们需要**保证系统的高可用性**
3738

3839
如果系统访问量很高,Nginx 本地缓存过期失效了,redis 中的缓存也被 LRU 算法给清理掉了,那么会有较高的访问量,从缓存服务调用商品服务。但如果此时商品服务的接口发生故障,调用出现了延时,缓存服务全部的线程都被这个调用商品服务接口给耗尽了,每个线程去调用商品服务接口的时候,都会卡住很长时间,后面大量的请求过来都会卡在那儿,此时缓存服务没有足够的线程去调用其它一些服务的接口,从而导致整个大量的商品详情页无法正常显示。
3940

40-
这其实就是一个商品接口服务故障导致缓存服务资源耗尽的现象。
41+
这其实就是一个商品接口服务故障导致缓存服务资源耗尽的现象。

docs/micro-services/README.md

+42-42
Original file line numberDiff line numberDiff line change
@@ -1,42 +1,42 @@
1-
# 微服务架构
2-
3-
- [微服务架构整个章节内容属额外新增,后续抽空更新,也欢迎读者们参与补充完善](https://github.com/doocs/advanced-java)
4-
- [关于微服务架构的描述](/docs/micro-services/microservices-introduction.md)
5-
6-
## Spring Cloud 微服务架构
7-
8-
- 什么是微服务?微服务之间是如何独立通讯的?
9-
- Spring Cloud 和 Dubbo 有哪些区别?
10-
- Spring Boot 和 Spring Cloud,谈谈你对它们的理解?
11-
- 什么是服务熔断?什么是服务降级?
12-
- 微服务的优缺点分别是什么?说一下你在项目开发中碰到的坑?
13-
- 你所知道的微服务技术栈都有哪些?
14-
- Eureka 和 Zookeeper 都可以提供服务注册与发现的功能,它们有什么区别?
15-
- ......
16-
17-
---
18-
19-
## 公众号
20-
21-
GitHub 技术社区 [Doocs](https://github.com/doocs) 旗下唯一公众号「**Doocs 开源社区**」​,欢迎扫码关注,**专注分享技术领域相关知识及行业最新资讯**。当然,也可以加我个人微信(备注:GitHub),拉你进技术交流群。
22-
23-
关注「**Doocs 开源社区**」公众号,回复 **PDF**,即可获取本项目离线 PDF 文档(283 页精华),学习更加方便!
24-
25-
![](./images/pdf.png)
26-
27-
<table>
28-
<tr>
29-
<td align="center" style="width: 200px;">
30-
<a href="https://github.com/doocs">
31-
<img src="./images/qrcode-for-doocs.jpg" style="width: 400px;"><br>
32-
<sub>公众平台</sub>
33-
</a><br>
34-
</td>
35-
<td align="center" style="width: 200px;">
36-
<a href="https://github.com/yanglbme">
37-
<img src="./images/qrcode-for-yanglbme.jpg" style="width: 400px;"><br>
38-
<sub>个人微信</sub>
39-
</a><br>
40-
</td>
41-
</tr>
42-
</table>
1+
# 微服务架构
2+
3+
- [微服务架构整个章节内容属额外新增,后续抽空更新,也欢迎读者们参与补充完善](https://github.com/doocs/advanced-java)
4+
- [关于微服务架构的描述](/docs/micro-services/microservices-introduction.md)
5+
6+
## Spring Cloud 微服务架构
7+
8+
- 什么是微服务?微服务之间是如何独立通讯的?
9+
- Spring Cloud 和 Dubbo 有哪些区别?
10+
- Spring Boot 和 Spring Cloud,谈谈你对它们的理解?
11+
- 什么是服务熔断?什么是服务降级?
12+
- 微服务的优缺点分别是什么?说一下你在项目开发中碰到的坑?
13+
- 你所知道的微服务技术栈都有哪些?
14+
- Eureka 和 Zookeeper 都可以提供服务注册与发现的功能,它们有什么区别?
15+
- ......
16+
17+
---
18+
19+
## 公众号
20+
21+
GitHub 技术社区 [Doocs](https://github.com/doocs) 旗下唯一公众号「**Doocs 开源社区**」​,欢迎扫码关注,**专注分享技术领域相关知识及行业最新资讯**。当然,也可以加我个人微信(备注:GitHub),拉你进技术交流群。
22+
23+
关注「**Doocs 开源社区**」公众号,回复 **PDF**,即可获取本项目离线 PDF 文档(283 页精华),学习更加方便!
24+
25+
![](./images/pdf.png)
26+
27+
<table>
28+
<tr>
29+
<td align="center" style="width: 200px;">
30+
<a href="https://github.com/doocs">
31+
<img src="./images/qrcode-for-doocs.jpg" style="width: 400px;"><br>
32+
<sub>公众平台</sub>
33+
</a><br>
34+
</td>
35+
<td align="center" style="width: 200px;">
36+
<a href="https://github.com/yanglbme">
37+
<img src="./images/qrcode-for-yanglbme.jpg" style="width: 400px;"><br>
38+
<sub>个人微信</sub>
39+
</a><br>
40+
</td>
41+
</tr>
42+
</table>

0 commit comments

Comments
 (0)