【问题标题】:How to manage microservices that are live如何管理实时的微服务
【发布时间】:2019-01-25 11:09:33
【问题描述】:

我最近一直在测试微服务,使用 springboot 创建微服务项目。我对设置了解得越多,我面临的问题就越多。

  1. 如何管理所有正在运行的微服务?开发人员如何通过中心位置管理、部署或更新微服务?
  2. 在部署多个微服务实例时,是让端口在运行时决定,还是应该预先定义?

我相信以后会有更多的问题出现。 使用的链接:

提前致谢。

【问题讨论】:

  • 在这里请求场外资源完全是题外话。请从您的问题中删除该部分,或改写它以适应该社区的范围。
  • 您好 GhostCat,对于任何误解,我提前道歉。我不明白“要求场外资源”的部分。你能解释一下我在哪里这样做,以便我可以纠正它。
  • 请求库、工具、教程......所有不在这个社区的东西。问题是此类问题通常会吸引各种垃圾邮件。然后:迟早,链接会中断。然后这个答案就变得毫无用处了。
  • 明白,我会改写我的问题。
  • 好的,当你这样做的时候给我留言,这样我就可以撤销我的近距离投票。

标签: java spring spring-boot microservices


【解决方案1】:

微服务确实迟早会失控。面对如此多的服务,您需要提前考虑部署和监控策略。

这两个问题都不是一个简单的问题,但是您可以使用很多工具。

从 CI/CD 开始。在它周围搜索,您会找到解决方法。一种选择是使用 Jenkins 进行蓝/绿部署 在这种情况下,jenkins 将是您管理部署的一个中心位置(但这只是一个示例,我们确实围绕此构建了很多工具,可以根据您的需求更好地帮助您)

这个问题的另一部分在于您倾向于在哪里部署东西?不同的云提供商有自己特定的处理微服务的方式,这取决于你的主机。但另一种选择是使用容器。

如果您直接使用像 docker 这样的原始容器,您将不得不处理映射端口(如果它们部署在同一台主机上),但是您可以在此之上使用抽象,就像您在 AWS 上一样,那么您可以考虑 ECS 或 docker swarms,或者我个人更喜欢 Kubernetes。您无需担心它们所在的端口,并且可以通过负载均衡器直接与您的服务通信。这里缺少很多东西,您确实需要选择一个这样的工具并深入挖掘,但有一些选项供您探索。

接下来是监控,如果您使用 kubernetes,您会得到很多开箱即用的监控工具,可以帮助您访问服务日志、查询它们等。但是您还需要确保从开发的角度来看您这样做提供相关性 id、api 指标、响应时间,因为当涉及到微服务时,您将需要它们来调试问题,特别是与延迟相关的问题。如果您不在 kubernetes 上,您仍然可以单独添加所有这些功能,例如用于日志监控的 ELK 堆栈(因为您不想去每个服务检查日志)、用于跟踪的 zipkin、用于服务的 API 网关和负载均衡器发现并与容器对话。

希望这可以帮助您入门。

【讨论】:

    【解决方案2】:

    你可以从以下开始:

    监控:

    Start with spring-boot-admin and prometheus.
    https://github.com/codecentric/spring-boot-admin
    

    部署:

    Start with docker and docker-compose and move to kubernetes.
    

    docker compose 的几个例子:

    1. https://github.com/jinternals/spring-cloud-stream
    2. https://github.com/jinternals/spring-micrometer-demo

    【讨论】:

      【解决方案3】:

      有可用的容器服务/容器管理系统,例如 Amazon ECS、Azure 容器服务、Kubernetes 等,它们负责通过 Amazon ECR 等集中存储库进行自动部署,自动扩展/缩减微服务实例,利用动态端口分配以在单个实例/主机上运行同一服务的多个实例,并为您提供集中式仪表板来监控资源使用情况和基础设施事件。

      您可以使用任何一种来获得所有问题的答案,因为它们都提供了管理微服务所需的大部分功能。

      【讨论】:

      • 这清除了我的一些想法。我将研究 aws 以更好地了解如何使用它。
      猜你喜欢
      • 1970-01-01
      • 2019-01-03
      • 2020-02-20
      • 2019-11-03
      • 1970-01-01
      • 1970-01-01
      • 2021-11-18
      • 2020-04-26
      • 2020-01-31
      相关资源
      最近更新 更多