我从here了解微服务
现在,我想在我的下一个 sails.js 项目中使用微服务架构。
我能想到的一种方法是:
将我的一个 sails.js 应用程序分成多个小的 sails.js 子项目/存储库。
在一个子项目中有一个 Controller 模型。例如,如果我们考虑带有用户、产品、订单等实体的简单电子商务应用程序,那么每个实体都将有单独的 sails.js 存储库,并带有各自的 sails.js 模型 Controller 。然后这个单一的子存储库将来 self 的一个微服务。
每个子存储库显然都会有自己的配置。
这些微服务将使用一些 HTTP Node 模块相互通信。
然后写我自己的API gateway用于 node.js 中的路由,它将负责根据来自客户端的请求从这些子存储库调用方法/网络服务。
这是使用微服务架构设计项目的最佳方式还是其他方式?
使用 sail.js 实现服务间通信、API 网关的最佳方式是什么?如果用上述方法设计的一个微服务变得更大,如果我必须将它分成 2 个,应该如何更改 sails.js 模型?
最佳答案
设计微服务最重要的方面是关注点分离,这意味着每个微服务都将有一个定义的边界,它们需要在该边界下工作。
每个微服务都旨在完成定义的工作,因此,首先您需要在您的项目中找到独立的功能,并尝试为其创建一个微服务。
需要注意的最重要的一点是,您应该首先从单体架构开始,如果您发现某些功能需要分离,那么您可以从中创建微服务。
就 sails 而言,它是 MVC 的一个很好的候选者,如果项目是单体的,但如果微服务的数量很大,那么它不是一个好的选择,因为使用 sails.js 运行大量微服务会消耗更多的系统 RAM.Sails.js 内部使用了很多您不需要的库。您可以只使用 node.js 核心模块创建一个简单的微服务,它们也会消耗更少的内存。
此外,当每个微服务处理小功能时, 代码会更少,并且不需要 mvc 架构。您可以使用更少的库来创建它。
结论
- 如果服务数量较少并且您不担心系统 RAM,则可以使用多个 sails 应用程序。
- 如果服务的数量会更多,那么请尝试在不使用风 sails 的情况下提供您的服务
关于node.js - 如何设计具有微服务架构的 sails.js 项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39672919/