【问题标题】:Cache Implementation in Microservices best practises微服务中的缓存实现最佳实践
【发布时间】:2018-03-30 17:54:05
【问题描述】:

我想问一个与设计相关的问题,因为我们有多个微服务,我们想为它们实现缓存。

有可能让不同的服务访问同一个缓存以从该缓存中设置和获取数据 那么最好的方法应该是什么。

假设我们有使用客户数据更新缓存的客户服务,并且我们有一个购物车缓存,它确实需要将此数据设置在包含此客户数据的购物车对象中,因此对于这种情况,最好的实现方式是什么这个。

【问题讨论】:

  • 最佳实践可能是写“练习”而不是“练习”!
  • 你的设计中是否有任何类型的队列??
  • 感谢@Arash Kazemi 的建议..但除此之外你知道有什么想法或者只是在这里突出错误..
  • Nopes.. 没有任何类型的队列。但如果需要,可以添加。顺便说一句,你的建议是什么。是否需要一些消息队列。

标签: caching microservices


【解决方案1】:

你可以考虑以下,

实现您的 CustomerService 和 CartService(作为微服务)。然后,每当在 CartService 中创建购物车实体时,它都会向 CustomerService 发送一个请求(通过消息队列),其中包含识别客户实体所需的信息。将 Customer 数据发送回 CartService,可用于丰富 Cart 实体。

您可能想知道缓存在哪里?好吧,如果仍然需要,您可以在 CartService 正在运行的同一节点中将其实现为 Singleton 服务(我的意思是“靠近”服务),并在将请求发布到 CustomerService 之前检查那里。

您最终会在不同的机器上存储可能相同的客户信息的多个缓存,但这不应该是一个问题(或者在您的情况下是这样吗?)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-10-25
    • 1970-01-01
    • 2020-04-07
    • 1970-01-01
    • 2016-09-09
    • 1970-01-01
    • 2015-05-31
    相关资源
    最近更新 更多