微服务、服务器发送的事件和浏览器限制

microservices, server-sent events, and browser limitations

在面向微服务的架构中,每个微服务都提供一个 SSE 端点以将事件流式传输到客户端,HTTP 连接在客户端和服务之间打开并保持活动状态。不幸的是,当客户端在 Web 浏览器中运行时,这种方法几乎不切实际,因为 Web 浏览器对可以在同一服务器上同时打开的 HTTP 连接数有限制(如果我没记错的话,按域名)。

很遗憾,因为 SSE 是一项用于流式传输事件的伟大技术。

那么,当客户端在浏览器中运行时,在面向微服务的体系结构中流式传输事件的最佳方法是什么?

我认为您应该使用 API 网关。与往常一样,这取决于,但如果您需要 stop/start/scale-up/down 微服务,您将必须有这样一个网关来对 Web 客户端隐藏内部 MS 架构并在 devops 期间保持它们连接。