Consistent Hashing And Python Implement

本文内容大致来源于 CS168: The Modern Algorithmic Toolbox Lecture #1: Introduction and Consistent Hashing 0X00 假设你对 cache 进行水平扩展,那么你便希望将数据较均匀地存储到每一台 cache 中。Hash 算法可以帮助你,比如 MD5(id) % cache_num。 »

缓存更新策略

DB 查询是比较昂贵的,而且在高并发下容易 crash。所以对于查询量大的数据,可以放到缓存中减轻 DB 的压力。没有什么万全的解决办法。比如下面这种常见的套路其实仔细想想还是比较有问题的: 先从缓存查数据,若有结果则直接返回;没有结果则从 DB 中查数据然后放到缓存中 数据更新时先把数据存到 DB 中,成功后,再写入缓存 第一点如果同时过来 n 个请求他们都发现 cache 没有数据(或者失效) »

浅谈 API Gateway

写一点最近的工作经验 何为 SOA SOA(Service-Oriented Architecture,面向服务的架构)是一种设计方法,其中包含多个服务,而服务之间通过配合最终会提供一系列功能。一个服务通常以独立的形式存在于操作系统进程中。服务之间通过网络调用,而非采用进程内调用的方式进行通信。 人们逐渐认识到 SOA 可以用来应对臃肿的单块应用程序,从而提高软件的可重用性,比如多个终端用户应用程序可以共享同一个服务。它的目标是在不影响其他任何人的情况下透明地替换一个服务,只要替换之后的服务的外部接口没有太大的变化即可。这种性质能够大大简化软件维护甚至是软件重写的过程 引用自 <<微服务设计>> 帖子 »