elasticsearch 微服务体系结构中的弹性搜索,elasticsearch,design-patterns,microservices,elasticsearch,Design Patterns,Microservices" /> elasticsearch 微服务体系结构中的弹性搜索,elasticsearch,design-patterns,microservices,elasticsearch,Design Patterns,Microservices" />

elasticsearch 微服务体系结构中的弹性搜索

elasticsearch 微服务体系结构中的弹性搜索,elasticsearch,design-patterns,microservices,elasticsearch,Design Patterns,Microservices,我正在设计一个系统,其中我们有两个不同的微服务来管理两种不同的数据类型。常见的方法是每个微服务都有数据库,但如果Elasticsearch取代了数据库,您会怎么想?我应该为每个微服务提供Elasticsearch实例(集群)来声明我的体系结构漂亮而有光泽,还是一个具有多个索引的实例(集群)就可以了? 我希望得到“视情况而定”这样的答案,但我还是想知道您对此的想法。即使您使用的是关系数据库,也有一些方法可以实现持久化数据封装,而不是为每个服务提供单独的数据库实例。每个架构都有一个单独的模式,这是一

我正在设计一个系统,其中我们有两个不同的微服务来管理两种不同的数据类型。常见的方法是每个微服务都有数据库,但如果Elasticsearch取代了数据库,您会怎么想?我应该为每个微服务提供Elasticsearch实例(集群)来声明我的体系结构漂亮而有光泽,还是一个具有多个索引的实例(集群)就可以了?
我希望得到“视情况而定”这样的答案,但我还是想知道您对此的想法。

即使您使用的是关系数据库,也有一些方法可以实现持久化数据封装,而不是为每个服务提供单独的数据库实例。每个架构都有一个单独的模式,这是一个仍然可以让您的架构“漂亮而闪亮”的选择。私人拥有的桌子也是如此。只要您遵循这样的意图,即在没有任何跨域依赖关系或约束的情况下保持事物的分离,同时设置一些障碍以防止其他微服务团队作弊,您仍然站在有利的一边

这一切也适用于Elasticsearch。我会利用它的多租户功能,只使用索引来分割所有权。考虑到您只有两个用户(微服务),这应该是干净和简单的。您可以考虑添加基于角色的索引所有权的弹性搜索屏蔽插件,以防止其他团队为一个真正闪亮的解决方案作弊。使用Elasticsearch,这变得非常灵活,因为您可以根据每个微服务的负载和数据量定制索引

由于您可以获得所需的封装程度,再加上您具有特定于服务的配置(通过索引),因此我认为您的第二个选项是可以的,因为它仍然符合体系结构的意图