【问题标题】:Deploy and secure microservices communication - best practices部署和保护微服务通信 - 最佳实践
【发布时间】:2020-06-04 16:20:10
【问题描述】:

我有 2 个微服务,每个都连接到一个数据库和两个 API,我问自己在生产中部署它们的最佳实践是什么。

首先,我考虑将所有代码放在同一台服务器上。每个微服务都将位于一个 docker 容器中,并且与 API 相同。我不会将 docker 用于数据库(Mongo 和 MariaDB),而是将它们直接安装在服务器上。只有 API 的端口将被打开,它们将通过 TCP 与微服务通信。 其次,我想知道如何保护微服务或是否需要。验证逻辑将仅在 API 上。

谢谢!

【问题讨论】:

  • 我建议你使用 rabbitmq 这样的消息代理进行通信。
  • @rudreshsolanki 你能说说为什么吗?有什么好处,我只有2个微服务?
  • 这取决于你想在哪里托管它们。例如如果您使用任何云提供商或本地?如果您想在容器上部署,您是否打算使用任何容器编排,例如 AWS ECS、Kubernetes 等?
  • 我说过我会将它们托管在同一台服务器上(来自数字海洋的简单 vps)。我将使用 docker,但没有编排。

标签: node.js microservices nestjs


【解决方案1】:

一些思考的食物:

  • 部署同一容器的多个副本以提高可靠性和弹性。要管理负载平衡和副本,您可以使用例如 kubernetes
  • 如果您的容器相互通信,您可以考虑启用 mTLS。
  • 只公开需要的端口。
  • 如果您将它们部署在自己的服务器中,请注意底层操作系统的维护。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-04-06
    • 1970-01-01
    • 1970-01-01
    • 2012-07-02
    • 1970-01-01
    • 2018-09-28
    • 2013-09-02
    • 1970-01-01
    相关资源
    最近更新 更多