如何用微服务架构devise一个sails.js项目?

我从这里了解到微服务

现在,我想在我的下一个sails.js项目中使用微服务架构。

我能想到的一个方法是:

  1. 打破我的一个sails.js应用程序到多个小sails.js子项目/存储库。

  2. 在一个子项目中有一个控制器模型。 例如,如果我们考虑简单的电子商务应用程序与实体说用户,产品,订单等,那么将分别为每个他们与sails.js模型控制器分别sails.js存储库。 然后这个单一的子库会从我的一个微服务。

  3. 每个子存储库显然都有自己的configuration。

  4. 这些微服务将使用一些HTTP节点模块相互通信。

  5. 然后编写我自己的API网关在node.js中进行路由,这将负责根据来自客户端的请求从这些子库调用方法/ web服务。

这是最好的方法吗?还是有其他的方法来devise你的项目使用微服务架构?

用sail.js实现服务器间通讯,API网关的最佳方式是什么? 如果用上面提到的方法devise的一个微服务变得更大了,如果我必须把它拆分成2,sails.js模型应该如何改变?

devise微服务的最重要的方面是关注的分离,这意味着每个微服务将有一个他们需要工作的界限。

每个微服务都被devise为做一个定义的工作,所以首先你需要在你的项目中find独立的function,并尝试为它创build一个微服务。

最重要的是要注意的是,你应该首先从一个单一的体系结构开始,如果你确定某些function需要分离,那么你可以创build一个微服务。

至于帆考虑,那么它是MVC的一个很好的候选人,如果该项目是单一的,但如果微服务的数量是大的,那么它不是一个好的select,因为运行sails.js的微服务将消耗更多的系统RAM.Sails.js在内部使用你不需要的很多库。 你可以使用node.js核心模块做一个简单的微服务,它们也会消耗更less的内存。

另外,当每个微服务处理小function时,代码量将会减less,并且不需要mvc arcitecture。 您可以使用较less的数字库来创build它。

结论

  1. 如果服务的数量less,你不担心系统RAM然后去多个帆应用程序。
  2. 如果更多的服务将尝试使您的服务没有使用风帆

我同意以前的答案,我想补充一点,Sails是集群的一个很好的候选人,在一个您可能希望水平扩展以提高可用性的环境中。 我不相信帆是微服务体系结构的合适人选,但它最可能是一个应用程序的重点,它本身就需要使用多个服务。

我使用消息服务将多个应用程序粘合在一起,使用这些消息来更新网页。 我可能会将这些应用程序看作提供更小的服务,并将界定的边界和我的风帆应用程序作为前端,控制器粘贴满足最终用户需求的必要条件。