首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MicroFrontends与MicroService后端槽单通道/websocket的通信模式

MicroFrontends与MicroService后端槽单通道/websocket的通信模式
EN

Stack Overflow用户
提问于 2018-10-16 10:44:36
回答 1查看 1.4K关注 0票数 3

我们目前正面临一些棘手的架构问题,如何将多个Web组件与单个后端服务集成在一个复合web中,使其成为一个平滑的web应用程序。

在(可谈判的)设计决策中存在一些制约因素:

  1. 一个MicroService应该服务于它自己的前端( WebComponent ),我们希望使用HTML来允许将这样一个WebComponent包含到复合UI中
  2. 前端WebComponent需要能够从它的后端MicroService接收实时更新/事件
  3. 页面(组合UI中使用的Web组件之和)只能使用一个连接/永久占用端口与后端通信

我画了一个草图,代表我们的抽象/非技术要求,以供进一步讨论:

据我所知,这个问题可以重新表述为:我们如何

( a)集中交流进入

( b)在离开时分发来文

两端的单一传输路径。

这两项任务需要在运输路径的两边解决,例如。后端和前端。

对于后端,我非常希望采用BFF模式不仅仅是山姆·纽曼所描述的可以满足我们的需求。然后,上面草图的右半部分(后端)看起来类似于这样:

传输路径可能最好使用标准化的网络技术,例如。httpswebsocket (wss)是最需要的双向通信。我热衷于了解在网络技术领域具有相当高使用率的替代品。

对于前端,我们目前缺乏关于以前描述的模式或框架的想法和知识。

棘手的是,多个基本独立的WebComponents需要一起查找,以便使用一个中心通信路径。例如,如果通过实现一个(大)角度应用程序来实现前端,我们将实现并注入一个"BackendConnectorService“(需要讨论的名称),并注入到我们的各个组件中。

但是,由于我们希望使用解耦的Web组件,因此不存在用于共享业务逻辑和依赖项注入的背景层。我们是否应该编写一个专有的JS库,如果还没有从我们的每个组件中加载到窗口上下文中,它应该被用来(按照惯例)与后端通信吗?

这将大致与下面的草图相结合:

我们是不是想错了/设计了应用程序?

我感谢每一个合理的想法或暗示一个行之有效的模式/框架。

此外,您对问题和体系结构的看法可能有助于解决我们目前面临的问题。

EN

回答 1

Stack Overflow用户

发布于 2018-10-17 06:59:27

我将采用您在前端后端使用的相同方法。创建一个HTTP或WS网关,前端组件将对请求进行轮询。它将连接到后端BFF,在那里您解决了所有的问题。无论何时您想要交换组件、传输或体系结构,其中一个并不依赖于另一个组件。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52833650

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档