微服务真的很火,看看码云上那些基于各种 Spring Xxxx 的项目,不需要怎么推广就有很多人关注。其实我还是蛮好奇的,到底是什么样的应用在使用微服务,微服务适合什么规模的系统。因为火的都是一些跟业务无关的框架。
我今天想说的不是微服务到底怎样的问题,想说的是既然你都已经微服务了,那么 J2Cache 是你的不二之选!
为什么呢?
在微服务架构中,一个系统会根据业务被拆分成多个独立的服务,服务和服务之间规定了各种协调和通讯机制,这些服务在物理上都是独立的进程。
但是,你再怎么做到独立的业务模块拆分,服务间总是会有一些相同的数据要访问,例如用户资料。
于是大家不约而同的上了 Redis 类的集中式缓存服务。
当系统用户越来越多的时候,假设你的系统有 10 个微服务,连接同一个 Redis ,你想过 Redis 服务承受的压力吗?读操作太频繁了,没准 Redis 机器的千兆网卡带宽已经跑满,然后你可能会发现系统非常缓慢,但找不出问题来,因为每个服务都很正常(包括 Redis),但是就是没注意看看网卡的流量。
因为千兆网卡,当你的流量跑到六七百兆的时候,网络吞吐性能急剧下降。
于是大家不约而同的又想到了 Redis 集群。但其实这个时候 Redis 上的数据并不是很多。
这时候你有两个选择:
- 买更多的服务器来跑 Redis 集群、分区(这得花不少钱)
- 缓存组件换成 J2Cache
而第二个方案才是你的最佳选择哦,因为 J2Cache 可以降低你至少 95% 以上的 Redis 读操作。因为 J2Cache 在进程内增加了一个一级的内存缓存,这并不会增加太多的内存消耗,因为你可以设置内存中缓存数据的数量。
你可以在 https://gitee.com/ld/J2Cache 中了解关于 J2Cache 更详细的介绍和使用方法。