数据缓存后,使其可供其他微服务使用

问题描述 投票:0回答:1

有多个微服务消耗公共数据。因此,如果我的微服务正在访问数据,那么它应该缓存在 1 个位置,其他微服务可以引用该缓存数据。 请帮助我进行架构设计。 我们还有其他方法可以保存通用数据吗? (数据将在运行时决定,不是静态数据) 谢谢

有一个集中式缓存的选项,但我不确定它的架构如何以及哪种缓存适合

caching redis memcached spring-cache
1个回答
0
投票

您所需要的只是一个集中式存储引擎。有多种选项可供您选择:

  • 分布式缓存系统,例如Redis或Memcache,用于具有简单的key-value数据结构的高性能场景。我推荐 Redis 作为缓存系统,因为它支持更复杂的数据结构,如哈希、列表和排序集,并且还提供数据持久性。

  • 像MySQL这样的集中式数据库用于结构化数据和持久数据存储,利用基于磁盘的数据持久性。 MySQL还支持ACID和事务,保证数据的一致性和完整性。一般来说,类似条件下MySQL的性能不如Redis。

对于您的微服务架构,您可以在数据存储之前实现数据访问服务,以避免多个服务的直接连接,通过不将数据源暴露给所有服务来保护您的数据。然后,所有其他服务将从数据访问服务请求数据以访问共享数据。

或者,如果不考虑简单性,您可以直接连接到所有需要的微服务的数据源

© www.soinside.com 2019 - 2024. All rights reserved.