在以下场景中,将 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
更改为另一个缓存,
然后是,将其提取到微服务中,否则不,不,只是将其提取到单体内部的模块中。
我有一堆 EC2 正在处理一个对象(假设这些对象是需要从 Web 下载的图像的唯一 URL)。我有 3 个 Elasticache 数据库:所有三个数据库都跟踪有关图像的不同内容。在决定是处理图像还是丢弃图像之前,我需要查阅 3 个数据库。
我需要决定是每个 EC2 实例应该自己咨询 3 个数据库,还是应该将这 3 个数据库封装在微服务后面,这样每个 EC2 都不直接与数据库通信。
拥有微服务并使用 API 进行通信显然会增加处理时间开销,但通常在扩展时是值得的。但是 ElastiCache 是一种快速的内存中数据库服务,我无法决定开销是否值得。我应该怎么办?或者,在决定之前我应该考虑什么?
微服务架构是一件好事,但它的代价很高:您的系统中将多一个分布式移动部件。
如果您需要:
- 单独部署这个新的微服务,
- 您希望能够为此使用任何您想要的编程语言,
- 您需要单独扩展此功能(您仍然可以单独扩展
Elasticache
,无需微服务)或 - 您需要能够从
Elasticache
更改为另一个缓存,
然后是,将其提取到微服务中,否则不,不,只是将其提取到单体内部的模块中。