node.js - 如何设计具有微服务架构的 sails.js 项目?

标签 node.js architecture sails.js microservices

我从here了解微服务

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

我能想到的一种方法是:

  1. 将我的一个 sails.js 应用程序分成多个小的 sails.js 子项目/存储库。

  2. 在一个子项目中有一个 Controller 模型。例如,如果我们考虑带有用户、产品、订单等实体的简单电子商务应用程序,那么每个实体都将有单独的 sails.js 存储库,并带有各自的 sails.js 模型 Controller 。然后这个单一的子存储库将来 self 的一个微服务。

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

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

  5. 然后写我自己的API gateway用于 node.js 中的路由,它将负责根据来自客户端的请求从这些子存储库调用方法/网络服务。

这是使用微服务架构设计项目的最佳方式还是其他方式?

使用 sail.js 实现服务间通信、API 网关的最佳方式是什么?如果用上述方法设计的一个微服务变得更大,如果我必须将它分成 2 个,应该如何更改 sails.js 模型?

最佳答案

设计微服务最重要的方面是关注点分离,这意味着每个微服务都将有一个定义的边界,它们需要在该边界下工作。

每个微服务都旨在完成定义的工作,因此,首先您需要在您的项目中找到独立的功能,并尝试为其创建一个微服务。

需要注意的最重要的一点是,您应该首先从单体架构开始,如果您发现某些功能需要分离,那么您可以从中创建微服务。

就 sails 而言,它是 MVC 的一个很好的候选者,如果项目是单体的,但如果微服务的数量很大,那么它不是一个好的选择,因为使用 sails.js 运行大量微服务会消耗更多的系统 RAM.Sails.js 内部使用了很多您不需要的库。您可以只使用 node.js 核心模块创建一个简单的微服务,它们也会消耗更少的内存。

此外,当每个微服务处理小功能时, 代码会更少,并且不需要 mvc 架构。您可以使用更少的库来创建它。

结论

  1. 如果服务数量较少并且您不担心系统 RAM,则可以使用多个 sails 应用程序。
  2. 如果服务的数量会更多,那么请尝试在不使用风 sails 的情况下提供您的服务

关于node.js - 如何设计具有微服务架构的 sails.js 项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39672919/

相关文章:

javascript - Sequelize js 'include' 和 'raw'

javascript - Sequelize 创建 2 个条目而不是 1 个

javascript - 无法将文件复制到目录

java - 从哪里开始编写软件代码?

mysql - 风 sails js : select records from mysql?

javascript - 在 Sails.js 开发中使用 sails-linker 的重要性?

javascript - Express 中的 EJS 变量引用显示为未定义

javascript - 通过 JavaScript 访问 REST Web 服务

asp.net-mvc - 不传递实体以查看的好处

javascript - Sails.js "Could not tear down ORM hook"错误与 sails-mongo