我最近一直在使用springboot测试微服务,以创建微服务项目。我对设置的了解越多,我面临的问题就越多。
我相信以后会有更多的问题出现。使用的链接:
提前谢谢。
发布于 2018-08-19 14:30:22
微服务确实倾向于早晚失控。有如此多的服务漂浮在周围,您需要提前考虑部署和监控策略。
这两个都不是一个容易的问题,但您有相当多的工具可供使用。
从CI/CD开始。在它周围搜索一下,你会找到一条路。一种选择是使用Jenkins进行蓝/绿部署,在这种情况下,jenkins将是您管理部署的一个中心位置(但这只是一个示例,我们围绕此构建了相当多的工具,可以根据您的需求更好地帮助您)
这个问题的另一部分在于你倾向于在什么地方部署东西?不同的云提供商有自己的处理微服务的特定方式,这取决于您的主机。但另一种选择是使用容器。
如果你直接使用原始容器,比如docker,你将不得不处理映射端口(如果它们被部署在同一主机上),但你可以在此基础上使用抽象,如果你在AWS上,那么你可以考虑ECS或docker集群,或者我个人更喜欢Kubernetes。您不需要担心它们所在的端口,并且可以通过负载均衡器直接与您的服务对话。这里缺少了很多东西,你真的需要选择一个这样的工具并深入挖掘,但还有其他选择供你探索。
下一步是监控,如果你使用kubernetes,你会得到很多现成的监控工具,可以帮助你访问服务日志,查询它们等等。但你也需要确保从开发的角度来看,你确实提供了关联id,api指标,响应时间,因为当涉及到微服务时,你将需要它们来调试问题,特别是与延迟相关的问题。如果你不在kubernetes上,你仍然可以单独添加所有这些功能,比如用于日志监控的ELK堆栈(因为你不想去每个服务检查日志),用于跟踪的zipkin,用于服务发现和与容器对话的API网关和负载均衡器。
希望这篇文章能帮助你入门。
发布于 2018-08-19 03:19:25
您可以从以下内容开始:
监控:
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的几个示例:
发布于 2018-08-19 16:54:52
有容器服务/容器管理系统可用,例如Amazon ECS、Azure容器服务、Kubernetes等,它们通过集中式存储库(如Amazon ECR等)进行自动化部署,自动扩展/缩减微服务实例,利用动态端口分配在单个实例/主机上运行同一服务的多个实例,并为您提供一个集中式仪表板来监控资源使用和基础设施事件。
您可以使用任何一个来获取所有问题的答案,因为所有这些问题都提供了管理微服务所需的大多数功能。
https://stackoverflow.com/questions/51911797
复制相似问题