Skip to content

Commit

Permalink
feat: add new post
Browse files Browse the repository at this point in the history
  • Loading branch information
Xuezenghuigithub committed Oct 23, 2021
1 parent 5e7fd11 commit c63757e
Showing 1 changed file with 55 additions and 0 deletions.
@@ -0,0 +1,55 @@
---
title: "《阿里云运维架构实践秘籍》读书笔记"
date: "2021-10-16T22:43:40+08:00"
tags: ["读书笔记", "运维", "架构"]
keywords: ["阿里云运维架构实践秘籍", "运维", "架构"]
categories: ["Tech"]
dropCap: false
toc: false
slug: "reading-notes-for-a-li-yun-yun-wei-jia-gou-shi-jian-mi-ji"
---

## 食之有味
###### P73. CAP 定理:
CAP 定理(CAP theorem)指出,对于一个..分布式..系统来说,其不可能..同时满足..以下 3 点:

- Consistency(一致性):所有节点在同一时间具有相同的数据。
- Availability(可用性):保证每个请求不管成功或者失败都得到响应。
- Partition tolerance(分区容错性):系统中任意信息的丢失或失败不会影响系统的继续运作。

> 这里推荐阮一峰的 [《CAP 定理的含义》](https://www.ruanyifeng.com/blog/2018/07/cap.html)协助理解,各数据库模型的实现其实就是对 CAP 定理三个特性的不同取舍。
---

###### P79. SQL 语句优化:

- 80% 的数据库性能问题都出在 ..SQL语句..上。
- 80% 的 SQL 语句性能问题都是由..索引..引起的。

> 这让我又想起曾经遇到的[业务问题](../projects/#委外设备管理系统),事出正是慢查询,而处理这个性能问题时也正是通过先优化 MongoDB 的查询语句——前置业务查询条件及分页查询条件,再优化数据库索引得以缓解。这属实是慢查询的最佳实践了🎉。
---

###### P192. 存储引擎与服务器配置:

由于 MongoDB 存储引擎基于**内存映射**,因此..高内存..的配置能有效提升 MongoDB 的性能。

---

###### P254. K8S 部署应用:
在使用容器编排技术时,为了让对应容器高可用,也为了让机器性能的利用率更高,因此容器会根据状态是否存活,以及机器性能使用高低的情况,**在不同的节点之间调度漂移**。加上本身 K8S 就会消耗机器性能,所以总体来说,**K8S 不适合部署对性能配置依赖很高的应用**。这就间接说明了为什么我们一般很少将数据库部署在应用中,而是把业务代码部署在容器中,因为这样可以实现快速部署。

###### P278. 云端 DevOps 最佳实践:

GitLab + Jenkins + K8S + 微服务是云端 DevOps 的最佳实践。

> 没错,正是我们当下在做的!

###### P333. 缓存五分钟法则:

即如果一条记录被频繁访问,就应该考虑放到缓存里。否则的话客户端就按需要直接去访问数据库,而这个临界点就是**五分钟**

## 余味回甘
###### 使用缓存牺牲了什么?
书中一直有一个说法:「缓存是一种典型的以牺牲数据时效性换取访问性能的技术」,我不太赞成这种说法。因为这样的表达是在说:使用缓存的缺点是**没有或者减少了数据的时效性**,我觉得这没有结合实际业务中使用缓存的前提——开发者肯定是在需要使用缓存的业务情景下才使用缓存的,也就是说我们为某个数据使用了缓存是..知其可用性..的,并没有牺牲什么实质性的时效性,这不算作是使用缓存的一种牺牲,缓存,就是临时存储在内存中的一组数据,该用时用,不该用时不用。

0 comments on commit c63757e

Please sign in to comment.