gpt4 book ai didi

heroku - 如何在 Heroku 上部署微服务

转载 作者:行者123 更新时间:2023-12-01 22:38:33 25 4
gpt4 key购买 nike

我已经阅读了很多有关微服务的内容,并且想用这种方法构建我的应用程序。到目前为止我所知道的是我需要一些服务,例如:

  • 负载均衡器 - 处理每个请求,并将其转发到另一个服务
  • 授权服务 - 授权我的用户
  • 数据库 - 用于我的微服务。我想为每项服务使用一个具有不同架构的数据库实例。
  • 服务 A - 用于功能 A
  • 服务 B - 用于功能 B

  • 等。等等等等

我发现 Heroku 是部署应用程序的有趣地方。我的问题是我完全不理解他们的意识形态。到目前为止,我所做的是创建/注册一些“应用程序”:

  • 我的应用程序身份验证
  • 我的应用负载均衡器
  • 等等。等等

我明白了,Heroku 为每个应用程序提供了一些公共(public)主机名,这就是我担心的地方。我应该使用公共(public)主机名部署内部服务吗?我不这么认为。我的问题来了:

任何人都可以为我提供一些指导,如何处理 Heroku 上的微服务吗?我应该如何部署它们?我应该如何定义我的负载均衡器,并将内部服务 Hook 到它?什么是 JHipster?我需要它吗?我该如何使用它?我应该使用 Heroku 工具(例如 CLI)还是可以继续使用我的 gitlab 存储库?我在互联网上找不到任何关于这一点的掌握点。

最佳答案

Heroku 是一家非常简单的平台即服务公司。 Heroku 的工作方式非常简单:

  • 您在 Git 存储库中有多个项目(服务)。
  • 您为每个项目(每个 Git 存储库)创建一个 Heroku 应用。
  • 然后,您可以将代码从每个 Git 存储库推送到各自的 Heroku 应用程序。
  • Heroku 会为您拥有的每个应用分配一个公共(public) URL。
  • 如果您的每个服务现在都在 Heroku 上运行,它们可以通过公共(public) HTTP 相互发送 API 请求。

现在——关于 Heroku 上面向服务的架构的问题。

如果您在 Heroku 上实现 SOA,则需要让每个服务通过 HTTPS 公开相互通信。这是典型的“模式”。

因为 Heroku 为每个应用程序提供免费的 SSL,并且每个应用程序都位于同一 Amazon 区域 - 通过 HTTPs 在您的服务之间进行来回通信非常快速且安全。

每个 Heroku 应用程序都有自动负载平衡,因此无需担心负载平衡器。

这里的下一个选项(如果您不想遵循典型模式)是使用 RabbitMQ 或 Amazon SQS(排队服务)之类的东西,并在不同服务之间共享“消息”。

在此模式中,每个服务仍将有一个 Heroku 应用程序,但您不再通过 HTTPs 相互通信,而是通过 Rabbit 或 SQS 等排队协议(protocol)与其他服务通信。这有一些速度优势。

关于身份验证服务,您可以使用多个提供程序来提供此功能。我所知道的最受欢迎的是 Stormpath 。如果您查看Heroku addon marketplace ,您也可以找到其他人。

最后,对于数据库内容:您可以使用任何您想要的数据库提供程序。最受欢迎的可能是 Heroku Postgres 。它是 PostgreSQL 的托管版本,非常可靠/易于使用。

您可以在所有服务之间共享一个数据库,也可以为每个服务拥有一个数据库。这两种策略都可以正常工作。

关于heroku - 如何在 Heroku 上部署微服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41795612/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com