开发者社区 问答 正文

单体架构适用于中小型产品前期快速迭代验证

单体架构适用于中小型产品前期快速迭代验证。在座的很多也有研发同事,大家都很有经验,单体架构在中小型产品的前期还是适用的。随着产品的发展,之后就进入到我们经常讲怎样转型微服务的阶段。转微服务并不是说从一开始就必须要做微服务的架构,我们经常讨论这个设计的时候也会提到一个过渡设计的概念,这就是说从一开始就搭一个非常完善的微服务平台的话,其实是有些过度设计的嫌疑的。中小型产品的前期是一定要快速迭代并进行验证的,那么单体的架构会更适合一点。如果一开始就一股脑的要把所有的东西都实现,可能不太适合在微服务上面做很多的事情,转型微服务,其实是一个自然而然的事情。

  第二部分是微服务架构下面的应用性能监控,在说到微服务架构优势的时候,我们说它的监控其实是越做越简单,但是当你的服务拆分的越来越细的时候,你第一反应并不是它越来越简单,第一反应一定是它更复杂了。因为原来你的系统在一个单体架构下面的时候,把系统分布式环境下面拆成多个节点也只是并列的几个节点,只要监控这几个节点就可以了。但是拆分微服务之后,每个微服务都会拆分出来10个、20个上百个点,第一反应一定是更复杂了,这种情况下如何快速发现定位问题?有成百上千个微服务的节点,应用端调用出问题的时候怎么知道是哪个节点出的问题?
   这时首先需要比较完善的fawu.ma.cn指标采集体系,把数据尽快的监控出来并进一步定位和发现问题。服务器数量激增之后,首先部署和管理上有些问题,另外一个是调用链可能比原来变的更复杂了,原来是在一个单体里边模块跟模块之间的调用而已,现在有可能是A服务调用了B服务,B服务可能又调用了C服务,最上层的应用出问题的时候到底哪个服务出了问题,这对我们监控也是提出了一个比较大的挑战。

展开
收起
fawuma 2017-08-21 14:55:06 3193 分享 版权
阿里云 AI 助理回答

面对微服务架构下应用性能监控的挑战,阿里云提供了一系列解决方案来帮助您快速发现并定位问题,确保系统的稳定性和高效运行。以下是一些关键的服务和工具:

  1. ARMS(Application Real-Time Monitoring Service):阿里云应用实时监控服务,专为分布式系统设计,能够帮助您在微服务架构中实现全面的性能监控。它提供了包括但不限于服务调用链路追踪(Tracing)、应用性能管理(APM)、业务实时监控等功能。通过ARMS,您可以跟踪每一次请求的完整调用链路,即使在复杂的微服务环境中也能迅速定位到问题服务或慢请求。

  2. Prometheus与Grafana:虽然不是直接由阿里云提供,但您可以在阿里云ECS或其他计算资源上部署Prometheus作为监控数据采集器,结合Grafana进行数据可视化展示。Prometheus擅长于服务指标的抓取和存储,而Grafana则用于数据的图表化展示,两者结合可以构建强大的自定义监控体系。

  3. 链路追踪(Tracing):基于OpenTracing或Jaeger等标准,阿里云及其生态工具支持分布式链路追踪,这能帮助您清晰地看到服务间的调用关系和耗时,对于解决跨服务调用问题至关重要。

  4. 日志服务(SLS):阿里云日志服务提供了一站式的数据采集、加工、查询分析、可视化与告警功能。在微服务架构中,通过配置日志收集,可以将各个服务的日志统一管理,便于故障排查和性能分析。

  5. 云监控(Cloud Monitor):阿里云的基础监控服务,可以对云产品资源如ECS、RDS等进行监控,并提供丰富的报警策略,帮助您及时发现并响应资源异常。

  6. EDAS(Enterprise Distributed Application Service):阿里云企业级分布式应用服务,不仅提供了应用托管、微服务管理等能力,还内置了微服务治理、监控与诊断工具,简化微服务架构下的应用开发、部署和运维工作。

综上所述,通过这些工具和服务的组合使用,可以有效应对微服务架构下监控复杂度增加的问题,实现快速定位故障点,保障应用的稳定运行。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答