【发布时间】:2021-11-03 12:52:55
【问题描述】:
我们有一组微服务,它们都执行特定的功能。为了配置、操作和监控这些服务,我们有一个 Web 应用程序。目前这仍然是一个巨石。
微服务部署在我们的客户处,但并非所有客户都需要这些微服务。这意味着 Web 应用程序包含许多客户未使用的功能,必须隐藏起来。
我们希望拆分 Web 应用程序,以便我们可以仅部署客户需要或拥有许可证的那些 UI 组件。
为此,我们一直在研究微前端。但是,到目前为止,我遇到的所有示例都没有涉及多租户和动态组件的主题。
我们的应用程序目前是用 React 编写的。我一直在研究 Next.js、System.JS、Piral 和 Single-SPA 作为我们解决方案的选项,但不知道这些工具是否可以帮助我们实现目标。
那么有没有人知道如何创建一个容器应用程序来动态加载已部署微服务后端的 UI 组件?
【问题讨论】:
-
添加权限微服务,如果登录用户有权限,则加载组件?
-
这将是解决方案的一部分,但前端如何“知道”哪些组件可用?这会像服务注册表一样工作吗?像 webpack 这样的工具需要知道这个编译时间(这还为时过早),除了 Piral(还不是版本 1)我还没有看到可以使用配置文件、服务等来动态加载它的工具。至少,我还没有看到解释如何可能的文档或示例。
-
我提到的想法在编译期间不起作用,至少据我所知不是。我们有一个类似的场景,某些类型的用户可以做某些事情。因此,我们将根据从后端接收到的权限数组来切换 UI 组件。我相信我使用 React Permissible 来实现这一点。因此,后端会将权限映射到每个用户,然后一旦收到它就会被添加到 redux 存储中,因此整个前端应用程序都可以访问它并相应地使用它。
标签: reactjs microservices micro-frontend