在实践系统设计时,我决定用微服务架构创建一个假设的邻近服务(比如Google )。假设我们有3类核心功能:
我决定设计以下服务:
users_service处理操作的数据域businesses_service处理操作的数据域search_service的业务域处理搜索操作,它基本上需要只读权限.所有这些都构成了我创建的以下图表:

现在我的问题是:
为业务域提供自己的Users和Businesses只读副本是一个好主意吗?我的选择是什么?我不想将searching的复杂业务逻辑泄漏到businesses数据域,但是searching操作需要访问业务的位置,并且需要执行SQL查询。
欢迎任何相关评论。
发布于 2023-05-26 08:51:54
当搜索服务以优化的方式创建用于搜索的源数据的副本或缓存时,没有什么特别之处。任何搜索索引都是这样的副本。像卢塞尼这样的全文搜索引擎就是这样做的。很明显,像Google或Bing这样的搜索引擎会将来自不同来源的大量索引数据缓存为只读副本。
唯一需要注意的是,源数据的更新与缓存的更新之间存在一定的时间间隔。
所以我看不出这种方法有什么问题。
您可能会问自己,是否将公司/组织(“业务”)分开,另一方面,用户才是真正需要的。这两个术语都用很多共性来描述法人,当你在他们周围的唯一过程是那些CRUD服务的时候,我认为如果把他们分成不同的微观服务真的有必要的话,至少值得再看一看。但是,这只能通过手头有一些更真实的上下文、您有哪些其他流程,以及这些流程是否对用户和公司分别和不同的方式来解决。仍然有一个单独的搜索缓存和或索引是有意义的。
https://softwareengineering.stackexchange.com/questions/445728
复制相似问题