在以下场景中,将 ElastiCache 置于微服务背后是否值得?

Is putting a ElastiCache behind a microservice worth it in the following scenario?

我有一堆 EC2 正在处理一个对象(假设这些对象是需要从 Web 下载的图像的唯一 URL)。我有 3 个 Elasticache 数据库:所有三个数据库都跟踪有关图像的不同内容。在决定是处理图像还是丢弃图像之前,我需要查阅 3 个数据库。

我需要决定是每个 EC2 实例应该自己咨询 3 个数据库,还是应该将这 3 个数据库封装在微服务后面,这样每个 EC2 都不直接与数据库通信。

拥有微服务并使用 API 进行通信显然会增加处理时间开销,但通常在扩展时是值得的。但是 ElastiCache 是一种快速的内存中数据库服务,我无法决定开销是否值得。我应该怎么办?或者,在决定之前我应该​​考虑什么?

微服务架构是一件好事,但它的代价很高:您的系统中将多一个分布式移动部件。

如果您需要:

  • 单独部署这个新的微服务,
  • 您希望能够为此使用任何您想要的编程语言,
  • 您需要单独扩展此功能(您仍然可以单独扩展 Elasticache,无需微服务)或
  • 您需要能够从 Elasticache 更改为另一个缓存,

然后是,将其提取到微服务中,否则不,不,只是将其提取到单体内部的模块中。