我需要创建一个集群微服务(意味着它是一个在不同节点上运行,复制的服务)。该服务需要“超快”用于“GET”操作,例如:当接收用户名然后用用户令牌响应时。 此服务在其他令牌操作(如保存/更新/删除)上可能会很慢。
问题和假设:
我已经开始将Redis视为缓存和存储用户会话的流行语,但,我发现人们很困惑,并且没有正确的答案以上问题。 Redis是一个Cached数据库,这意味着它在内存中运行,但它不能在我的情况下使用,因为我是一个具有本地内存副本的集群服务,REDIS无法同步我的本地缓存(或者它)。 Redis不能给我这个问题的解决方案,REDIS驱动程序没有同步我的HashMap,虽然我想到Redus的一些pub / sub来解决这个问题,但仍然是它的陈旧数据!
我认为“超级快”是使用本地Java HashMap,启动时的每个微服务都会从某个DB(谁关心哪个DB)获取Tokens数据,并且在READ生成时,只需从中提供数据本地内存,但是,当更新/删除/保存时,然后将消息发送到消息队列,并等待消息队列扇出所有消息给订户(其他副本)。
我不确定我是否在这里发明了这个轮子,我的意思是,这是分布式缓存的常见问题,还有其他任何已知的解决方案吗?记住,只有GET操作需要快速。