我正在开发一个基于微服务设计的webapp。在我的项目中,每个微服务都将是文档中建议的同一个应用程序中的模块。但是,如果我认为这些微服务如何相互通信,我认为(如果我不在GAE中)在API REST中,但我读到了端点,我不知道以最好的方式传达模块。
关于此问题的文档(Communication between modules)有点差,并且没有说明通信方式如何,只说明如何从数据存储区共享信息。
对模块及其沟通有经验的人可以说我在他们之间进行良好沟通的最佳方式是什么?
有时候我认为GAE并不是部署具有许多微服务的应用程序的最佳平台。
非常感谢你。
答案 0 :(得分:0)
使用REST(或端点)对于模块之间的通信可能过度,因为您实际上并未与应用程序之间的进行通信。例如,您将浪费CPU时间(de)序列化和/或不必要地编码/解码数据。
如果在模块中您需要由另一个模块存储的数据,您只需从数据存储中获取数据即可。您可以将模型间通信建模为普通API或(我的偏好)直接作为对象方法。通过直接传递密钥来解决数据存储最终的一致性问题也更简单 - 更安全,因为它都在您的应用程序中。
如果需要在模块之间传递事件,可以使用普通网址请求,任务队列请求或延期任务等。