4.1 小型网站或企业应用的缓存实现架构
缓存的概念来源于操作系统,我们知道CPU通过load和store的指令实现寄存器和内存的交互,将需要执行的指令缓存起来准备执行。我们的企业应用也面临同样的需要,对于频繁使用的用户信息或者数据查询,也需要放在一个缓存系统里,目的是提升效率和减少对底层资源的耗时操作。
为中小型的网站或者企业应用设计一个缓存系统很简单,设计一个面向内存使用的键/值存储的CacheServer即可,并且可以实现主备切换,以保证可靠性,如图4-1所示。
图4-1 中小型的网站或者企业应用的缓存系统架构图
我们可以通过ParkServer去实现小型缓存,利用domain/node进行键/值的存储即可,因为domain/node都是内存操作而且读写锁分离,同时拥有复制备份领导者切换功能,完全满足缓存的高性能与可靠性需求。直接启动一个ParkServer,分别在两个Java进程中使用ParkLocal的create和get方法即可实现缓存的读写操作(详见4.2节中的demo)。
但是对于大型互联网应用,高峰访问量上百万的并发读写吞吐量,会超出单台服务器的承受能力,我们需要改进上面的设计,考虑解决负载和扩容等问题。