在谷歌应用引擎中,使用端点在同一应用程序中通信模块是个好主意



我正在开发一个基于微服务设计的Web应用程序。在我的项目中,每个微服务都将是文档推荐的同一应用程序中的一个模块。但是,如果我想这些微服务是如何在API REST中相互通信的,我会想(如果我离开了GAE),但我读到了关于端点的文章,我不知道与模块通信谁是最好的方式。

关于这一点(模块之间的通信)的文档有点糟糕,没有说明如何进行通信,只说明如何共享数据存储中的信息。

有模块和沟通经验的人可以告诉我,在模块之间进行良好沟通的最佳方式是什么?

有时我认为GAE并不是部署一个应用程序的最佳平台,该应用程序包含许多相互通信的微服务。

非常感谢你。

对于模块之间的通信来说,使用REST(或端点)可能有些过头了,因为您实际上并不是在应用程序外部与进行通信。例如,不必要地串行化和/或编码/解码数据会浪费CPU时间。

如果在一个模块中您需要由另一个模块存储的数据,您可以简单地从数据存储中获取数据。您可以将模型间通信建模为简单的API,或者(我更喜欢)直接建模为对象方法。通过直接传递密钥来解决数据存储最终的一致性问题也更简单——更安全,因为它都在应用程序中。

如果需要在模块之间传递事件,可以使用纯url请求、任务队列请求或延迟任务等。

相关内容

最新更新