摘要:
### 楔子 **在 GitHub 上面发现了一个非常有趣的库,叫 deepface,简直是人间宝藏。这个库主要是做人脸识别和面部属性分析的,它集合了目前全球最顶尖的开源人脸识别算法,使用卷积神经网络(CNN)对图像进行特征提取,以实现高精度的人脸识别。实验表明,人类在面部识别任务上的准确率为 97 阅读全文
摘要:
### 什么是 base64 **我们知道一个字节可以表示的范围是 0 ~ 255,并且在 ASCII 码表中会对应一个字符,比如:字符 97 对应字符 'a'、90 对应字符 'Z' 等等。而在 ASCII 码表中有很多字符都是不可见字符,那么当数据在网络上传输时,由于不同设备对字符的处理会有一些 阅读全文
摘要:
### 楔子 **在 etcd v2 时,存在的若干局限,如仅保留最新版本 key- value 数据、丢弃历史版本。而 etcd 的核心特性 watch 又依赖历史版本,因此 etcd v2 为了缓解这个问题,会在内存中维护一个较短的全局事件滑动窗口,保留最近的 1000 条变更事件。但是在集群写 阅读全文
摘要:
### 楔子 **etcd 的一个典型的应用场景是 Leader 选举,那么 etcd 为什么可以用来实现 Leader 选举?核心特性实现原理又是怎样的?** **本篇文章就来聊一聊 Leader 选举背后的技术点之一:租约(Lease), 通过解析它的核心原理、性能优化思路,从而对 Lease 阅读全文
摘要:
### 楔子 **前面我们已经知道了如何使用 etcd 存储数据,但 etcd 作为云原生的基石,也大量应用在微服务上面。而提到微服务,你应该知道多租户的概念,多个用户使用同一个集群。那么这个时候如何实现隔离呢?因为如果不隔离,那么 A 用户可能会将 B 用户的数据覆盖掉,或者越权访问。** **e 阅读全文
摘要:
### 楔子 **通过前面两篇文章,我们已经对 etcd 有了一个基本的了解,那么接下来就要安装 etcd 了。安装完之后,再来全面介绍 etcd 的语法,etcd 的功能还是很强大的。** **下面就来安装 etcd。** ### 安装 etcd **先说一下配置,首先操作系统是 CentOS 7 阅读全文
摘要:
### 楔子 **在上一篇文章介绍 etcd 的时候,我们多次提到 Raft 协议,etcd 正是基于 Raft 协议实现高可用以及数据强一致性的。那么 Raft 到底是什么样的协议,它解决了分布式系统的哪些痛点呢?我们就来聊一聊。** **首先为什么会有 Raft 协议呢?回想一下,早期我们使用的 阅读全文
摘要:
### 楔子 **本次来介绍 etcd,它负责 k8s 元数据的存储,k8s 的状态数据全部存储在 etcd 上面。随着 k8s 的火热,etcd 也越来越受到重视,截止到此刻,它在 GitHub 的 star 数已经达到了 43.5k,很多软件工程师都在使用 etcd 去解决业务场景中遇到的痛点。 阅读全文
摘要:
楔子 最近在我的交流群里面,大家聊到了 Python 的异步框架,并有人给出了一个网站的 benchmark。 Python 异步框架还真不少,其中大家最熟悉的莫过于 FastAPI,只是它的并发量其实没有想象中的那么高。但宣传的很到位,加上生态不错,之前一直是我的第一选择。不过排名第一的 blac 阅读全文
摘要:
楔子 到现在我们已经了解了 asyncio 提供的大部分功能,使用前面文章中介绍的 asyncio 模块,你应该能完成几乎所有你需要完成的任务。但对于更高级的使用场景,你可能还需要使用一些鲜为人知的技术,在设计自己的 asyncio API 时尤其如此。 在本篇文章中,我们将学习 asyncio 中 阅读全文