【发布时间】:2020-07-09 18:46:16
【问题描述】:
假设我有两个微服务,如下所示:
我有一项服务可以存储所有问题及其答案选项。第二个服务创建将使用来自第一个服务的问题的模块。
所以我们有Question Service 和Module Service。
当我们创建模块时:
- 客户将查询问题
- 客户端将发送带有模块数据的
question_id
用户何时尝试完成此模块:
- 客户端将查询模块
-
question_id会收到问题,并将其选项显示为测试。
现在有一个主要问题。 模块服务如何知道用户的答案是否正确?
现在我认为解决这个问题的方法有两种:
客户端会询问
Question Service这个答案是否正确,然后将结果发送给Module Service。但是,这种方法是不可靠的,因为来自 Client 的请求可能是伪造的,Module Service会存储错误的结果客户端将向
Module Service发送应答检查请求,然后通过直接HTTP调用向Question Service发送请求。这也是一个糟糕的解决方案,因为这使得Module Service与Question Service紧密耦合。
是否有任何解决方案可以将Module Service 与Question Service 解耦?
【问题讨论】:
标签: architecture microservices decoupling