我正在使用 NestJS 创建几个微服务。
例如,我有x、y和z服务都通过GRPC相互连接,但我希望服务x在特定实体更改时向Web应用程序发送更新,因此我考虑使用服务器发送事件 [欢迎使用其他更好的解决方案]。
根据NestJS文档,它们有一个在n间隔运行的函数来处理SSE路由,似乎很耗费资源。是否有一种方法可以在有更新时实际发送事件。
假设我在同一个服务中有另一个API调用,该调用是由另一个Web应用程序上的按钮单击触发的,那么如何仅在单击按钮时触发事件,而不是持续发送事件。如果您知道任何可实现此目的的惯用方法,将不会编写hacky代码,这将受到赞赏,希望它成为最后的手段。
[奖励问题]
我也考虑使用MQTT来发送事件。但我感觉不能让单个服务同时具备MQTT和gRPC。我对使用MQTT持怀疑态度,因为它的延迟如何影响内部消息传递。如果我可以将其限制为外部客户端,那就太好了(即x服务使用gRPC进行内部连接,而MQTT仅需要一个路由暴露给Web应用程序)。 (PS:我是微服务的新手,所以请对您的解决方案进行全面说明:p)