首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >搜索API微服务如何适应事件驱动的体系结构?

搜索API微服务如何适应事件驱动的体系结构?
EN

Software Engineering用户
提问于 2020-08-11 16:54:40
回答 1查看 291关注 0票数 1

如果这听起来很奇怪我很抱歉。我是非常新的系统设计,并刚刚阅读事件驱动的系统。为了更好地理解和完善我的思维过程,我决定尝试设计一个非常简单的食品点菜/配送系统(比如优步饮食)。下面我所解释的只是整个系统的一个子集,并且只针对少数用户。

我最初的设计是在中间有一个像Kafka这样的消息经纪人,并且拥有订单、支付、餐厅、通知微服务--所有这些都是消费事件。餐厅微型服务将负责所有与餐厅相关的行为,如接受客户订单、更新客户订单等。我还希望这个微型服务负责诸如增加一家新餐厅、更新一家餐厅等业务。这里是我面临的一个问题。

当用户决定搜索“墨西哥”时,我希望将此查询指向搜索微服务,该服务将查询Restaurant数据库并返回结果。但是,由于其他的微服务使用事件相互通信,这个搜索微服务可以绕过Restaurant微服务,直接查询Restaurant数据库吗?这是一个可以接受的设计吗?还是我应该完全放弃message设计,设计一些通过REST调用进行通信的东西?

EN

回答 1

Software Engineering用户

发布于 2020-08-12 06:50:07

当用户决定搜索“墨西哥”时,我希望将此查询指向搜索微服务,该服务将查询Restaurant数据库并返回结果。

这种设计违背了微服务的原则,即每个服务只能访问自己的数据库。如果需要来自其他服务的信息,那么应该通过API请求这些信息,或者服务需要将信息镜像到自己的数据库中。

使用API从另一个服务请求信息并不意味着您也不能使用message来传递更合适的事件。

但是,如果这个Search服务总是需要从Restaurant服务获取信息(或者它需要几乎完全复制Restaurant数据库)才能完成它的工作,那么将它作为一个单独的服务的决定是非常值得怀疑的。它看起来更像是应该是Restaurant服务的一部分。

票数 4
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/414722

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档