【AntDB高可用性方案设计与最佳实践】基于中间件的开源软件介绍 - 由客户端实现的高可用方案

以 MemCache 为例,客户端同时与多个服务保持连接,按照一定的规则去调用服务,当服务器宕机之后,重新调整规则。当然,如果服务器不做主从备份, 可能会造成部分数据丢失。

MemCache 是一个自由、源码开放、高性能、分布式的内存对象缓存系统,用于动态 Web 应用可减轻数据库的负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高网站访问的速度。MemCache 是一个存储键值对的 HashMap,在内存中对任意的数据(比如字符串、对象等)所使用的 Key-Value 存储,数据可以来自数据库调用、API 调用,或者页面渲染的结果。

MemCache 一次写缓存的流程:

(1) 应用程序输入需要写缓存的数据。

(2) API 将 Key 输入路由算法模块,路由算法根据 Key 和 MemCache 集群服务器列表得到一台服务器编号。

(3) 由服务器编号得到 MemCache 及其 ip 地址和端口号。

(4) API 调用通信模块和指定编号的服务器通信,将数据写入该服务器, 完成一次分布式缓存的写操作。

读缓存和写缓存一样,只要使用相同的路由算法和服务器列表,应用程序查询的是相同的 Key,MemCache 客户端总是访问相同的客户端去读取数据, 只要服务器中还缓存着该数据,就能保证缓存命中。

你可能感兴趣的:(AntDB数据库,中间件,数据库,oracle,架构)