EVCache

EVCache是一个开源、快速的分布式缓存 是基于Memcached的内存存储和Spymemcached客户端实现的 是Netflix(网飞)公司开发的。

E:Ephemeral:数据存储是短暂的,有自身的存活时间

V:Volatile:数据可以在任何时候消失

Memcached:基于内存的键值对缓存服务器

Mnemonic:基于硬盘(SSD)的嵌入式键值对存储服务器,封装了RocksDB(是一种SSD的技术)

#########

EVCache集群在峰值每秒可以处理200kb的请求, Netflix生产系统中部署的EVCache经常要处理超过每秒3000万个请求,存储数十亿个对象, 跨数千台memcached服务器。整个EVCache集群每天处理近2万亿个请求。 EVCache集群响应平均延时大约是1-5毫秒,最多不会超过20毫秒。 EVCache集群的缓存命中率在99%左右

#########

EVCache典型用例

购物推荐,电影推荐

EVCache部署

单节点部署

 多可用区的部署与跨可用区复制

 EVCache的跨可用区复制(不保证实时一致性)

  • 1.EVCache客户端库包发送SET到缓存系统的本地地区的一个实例服务器中。
  • 2.EVCache客户端库包同时也将写入元数据(包括key,但是不包括要缓存的数据本身)到复制消息队列 (Kafka)
  • 3.本地区的“复制转播”的服务将会从这个消息队列中读取消息。
  • 4.转播服务会从本地缓存中抓取符合key的数据
  • 5.转播会发送一个SET请求到远地区的“复制代理”服务。
  • 6.在远地区,复制代理服务会接受到请求,然后执行一个SET到它的本地缓存,完成复制。
  • 7.在接受地区的本地应用当通过GET操作以后会在本地缓存看到这个已经更新的数据值。

 EVCache安装流程

#安装libevent库
yum install libevent libevent-devel gcc-c++
#下载最新的memcached
wget http://memcached.org/latest
#解压
tar -zxvf latest
#进入目录
cd memcached-1.6.6
#配置
./configure --prefix=/usr/memcached
#编译
make
#安装
make install
#启动
memcached -d -m 1000 -u root -l 192.168.127.131 -p 11211 -c 256 -P
/tmp/memcached.pid
-d 选项是启动一个守护进程
-m 是分配给Memcache使用的内存数量,单位是MB,我这里是10MB
使用EVCache Client
1、pom
-u 是运行Memcache的用户,我这里是root
-l 是监听的服务器IP地址,我这里指定了服务器的IP地址192.168.127.131
-p 是设置Memcache监听的端口,我这里设置了11211(默认),最好是1024以上的端口
-c 选项是最大运行的并发连接数,默认是1024,我这里设置了256,按照你服务器的负载量来设定
-P 是设置保存Memcache的pid文件,我这里是保存在 /tmp/memcached.pid

猜你喜欢

转载自blog.csdn.net/qq_42773863/article/details/121492517