关于 Nestjs 的 http 微服务架构问题
Question about architecture of microservices over http for Nestjs
Nestjs docs 状态:“在 Nest 中,微服务基本上是一个使用与 HTTP 不同的传输层的应用程序。”
这是实现微服务的一种可能的方式,也可能是一种奇特的方式,但我想从简单的方式开始我的实验。只需构建一个在自己的 docker 容器中包含 2 或 3 个服务的应用程序。使用他们自己的 mongo-db(在另一个单独的容器中)。然后让这些与 rest-api 调用进行通信。
比方说一个授权服务、一个post服务和一个评论服务。
如果我希望它们成为单独的实体,在它们自己的容器中,我是否只使用 cli: nest new <service-name>
创建 3 个单独的应用程序?这将给我完整的应用程序,包括应用程序模块等。它应该可以工作,但这是推荐的方法吗?
我尝试使用谷歌搜索并查看文档,但也许这个问题太基础了,所以没有人费心写任何关于它的东西。
这绝对是一个选择。使用基于 HTTP 的微服务方法需要注意的是,端点几乎暴露在 public 流量中。如果您使用 RabbitMQ 或 Redis 之类的服务,则没有 public 面向端点可以被攻击并且必须得到保护,只有 API 网关需要担心。
但是对于你的问题:是的,这种方法很好并且可能是最好的方法,除非你想制作一个 monorepo 并将它们全部保存在同一个 repo 中(我建议 Nx 如果那是你要去的路线)
Nestjs docs 状态:“在 Nest 中,微服务基本上是一个使用与 HTTP 不同的传输层的应用程序。”
这是实现微服务的一种可能的方式,也可能是一种奇特的方式,但我想从简单的方式开始我的实验。只需构建一个在自己的 docker 容器中包含 2 或 3 个服务的应用程序。使用他们自己的 mongo-db(在另一个单独的容器中)。然后让这些与 rest-api 调用进行通信。
比方说一个授权服务、一个post服务和一个评论服务。
如果我希望它们成为单独的实体,在它们自己的容器中,我是否只使用 cli: nest new <service-name>
创建 3 个单独的应用程序?这将给我完整的应用程序,包括应用程序模块等。它应该可以工作,但这是推荐的方法吗?
我尝试使用谷歌搜索并查看文档,但也许这个问题太基础了,所以没有人费心写任何关于它的东西。
这绝对是一个选择。使用基于 HTTP 的微服务方法需要注意的是,端点几乎暴露在 public 流量中。如果您使用 RabbitMQ 或 Redis 之类的服务,则没有 public 面向端点可以被攻击并且必须得到保护,只有 API 网关需要担心。
但是对于你的问题:是的,这种方法很好并且可能是最好的方法,除非你想制作一个 monorepo 并将它们全部保存在同一个 repo 中(我建议 Nx 如果那是你要去的路线)