【发布时间】:2016-09-17 12:51:47
【问题描述】:
我一直在研究如何缩放 Meteor,并有一个使用 Meteor Cluster package 的想法;
- 创建一个用户连接的超级服务*,其中包含每个微服务使用的通用核心包(api、app、salesSite 等将使用其包),
- 然后,超级服务路由到适当的微服务(例如应用程序),为其提供自己的包的功能。
(* - 就像在 super- 和 sub- 中一样,并不是说它很棒...我的意思是它是但是...)
我可以将每个服务级联为超级服务的超集。这也将允许我以级联服务风格巧妙地继承其他服务的功能。例如,
unauthedApp > guestApp > userApp > modApp > adminApp,
对于应用程序,前一个服务的功能被继承到前一个服务(例如,沿着该链越靠右,添加和继承的额外功能越多)。
这可能吗?
编辑:如果可能,是否提供了如何使用微服务实现这种模式的示例?
[[[[[大编辑#2:]]]]]
认为我正在尝试制定适合问题的解决方案,所以让我重新解释一下,以便可以根据问题而不是我尝试实施的解决方案来回答这个问题。
基本上,我想“继承”(因为没有更好的词)依赖于所需功能的包,这样就不会通过线路不必要地发送任何代码。
因此,从核心包开始,其中包含我希望我的所有服务都拥有的库,然后我想根据需要进一步“添加”功能。然后,如果提供基于页面的服务(而不是不呈现页面的 API 服务),我想添加页面包,然后添加适当的基于角色的页面包等,直到最具体的包已添加。
我的想法是,我可以制作服务链,使我可以从最通用的服务遍历到最具体的服务,并最终以来自多个服务的包的组合结束。因此,例如 guestApp,可能是核心包 + 通用页面包 + 通用应用包 + unauthApp 包 + guestApp 包,因此不会添加不必要的包。
此外,通过我所描述的这种虚构模式,我不需要将所有核心包添加到每个微服务 - 我可以在我讨论过的包遍历顶部的核心包中处理它们以上,不必担心忘记将包添加到“继承”包中。
希望我在这里的推理是有道理的,我希望你们知道这样做的最佳实践。谢谢!
【问题讨论】:
-
集群包现在好像没有激活
-
@EliezerSteinbock :( 看起来你在看问题日志是对的。你碰巧知道 Meteor 上的微服务架构的其他包吗?
-
它仍然适用于很多人
-
我没有提到任何问题,但在这里列出了它们:github.com/meteorhacks/cluster/issues 然而,很多人都在“毫无问题”地使用集群,所以你绝对应该在关闭它之前尝试一下。
-
那是我自己对这些东西的体验的一篇文章。集群是我扩展的第一个选项,但我最终主要使用 nginx
标签: meteor package cluster-computing microservices