消息队列和应用工具产品体系-微服务架构引发的问题

简介: 消息队列和应用工具产品体系-微服务架构引发的问题

开发者学习笔记【阿里云云原生助理工程师认证(ACA)课程:消息队列和应用工具产品体系-微服务架构引发的问题】

课程地址:https://edu.aliyun.com/course/3112075/lesson/19036


消息队列和应用工具产品体系-微服务架构引发的问题

 

内容介绍:
微服架构对系统的可用性带来的影响

一.快速迭代导致功能性测试周期大大缩短

二.较小的业务单元需要更强大的调用链路跟踪

 

一.快速迭代导致功能性测试周期大大缩短

服务架构倡导小团队、小服务,快速迭代开发的模式,在这种模式中,一个迭代周期平均时间只有几周甚至几天,这种情况下留给 QA 人员的测试时间也变得很,测试人员很难瀑布式开发流程中那样,执行单独完成完善的整体测试流程。
而如何在短时间内完成测试并保证质量,就对 QA 人员和整个开发模式提出了新的挑战。因此业界也对软件测试提出了很多新的思路,其中比较有代表性的是 Kent Beck 著作测试驱动开发,简称 TDD,就是下面图中的这本书。

image.png


TDD 最主要的思想就是在软件设计之初就开始进行测试用例的编写,开发人员提交的代码进行快速的验证,从而达到测试来驱动整个研发过程的。
图中的八个状态表示了 TDD 倡导测试在软件迭代中期中的八个阶段。首先在本次迭代的功能确定开始就开始编写测试例,然后通过测试用例来验证开发者每次提交的代码。开始时开发者提交的代码无法通过测试通过不停的迭代和修改,测试的通过率越来越高,直到全部通过测试接着开发者在对内部的流程进行重构,提高代码的运行效率,完善架构。
通过流程可以发现 TDD 思想在实践过程中,测试用的集合要不断的执行测试和验证工作,因此这就需要利用更加强大的自动化测试工具才能达到持续验证的目的

 

二.较小的业务单元需要更强大的调用链路跟踪

互联网业务的高速发展带来了业务逻辑的日趋复杂,越来越多的网站采用分布式部署架构,同时 Spring cloud double 等微服框架不断成熟,分布式架构已经成为互联网业务的主流软件架构。分布式的微服务架构在开发效率上具备先进,但是给传统的监控、运维、诊断技术带来了巨大挑战。

淘宝网的分布式架构微服实践过程来看,遇到的挑战主要有

1. 定位问题难,客服人员接到用户反馈后,会交给技术人员排查解决,而服务架构中,网站的请求通常要经过多个服务节才能返回结果一旦请求出现错误,通常要在多台机器上反复翻看日志才能步定问题。对简单问题的排查也常常涉及到多个团队的反复沟通,浪费大量的开发精力。
image.png

2. 发现瓶颈难,当用户反馈网站出现卡顿的现象,很难快速发现瓶颈在哪里,是用户终端到服务端的网络问题,还是服务端负载过高导致响应变慢,或是数据库压力过大,即使定位到了导致卡顿的环,也很难快速定位到代码层的根本原因

3. 架构梳理。在业务逻辑变得越来越复杂后,很难从代码梳理出应用依赖数据库、HTTPAPI、缓存等下游服务和资源,及外部调用。业务逻辑的梳理、架构的制度和容量的规划也变得更加困难。以双11促销活动的准备为例,成百上千的服务,每个服务能承受最大的并发是多少?需要为每个应用准备多少台机器,出现问题如何快速的定位?
这些信息通过传统的人工运维和人工观测的方法都很难获得准确数据,因此就需要通过新的应用工具进行诊断和跟踪。

相关文章
|
6月前
|
Cloud Native Serverless API
微服务架构实战指南:从单体应用到云原生的蜕变之路
🌟蒋星熠Jaxonic,代码为舟的星际旅人。深耕微服务架构,擅以DDD拆分服务、构建高可用通信与治理体系。分享从单体到云原生的实战经验,探索技术演进的无限可能。
微服务架构实战指南:从单体应用到云原生的蜕变之路
|
7月前
|
消息中间件 Java Kafka
消息队列比较:Spring 微服务中的 Kafka 与 RabbitMQ
本文深入解析了 Kafka 和 RabbitMQ 两大主流消息队列在 Spring 微服务中的应用与对比。内容涵盖消息队列的基本原理、Kafka 与 RabbitMQ 的核心概念、各自优势及典型用例,并结合 Spring 生态的集成方式,帮助开发者根据实际需求选择合适的消息中间件,提升系统解耦、可扩展性与可靠性。
523 1
消息队列比较:Spring 微服务中的 Kafka 与 RabbitMQ
|
弹性计算 API 持续交付
后端服务架构的微服务化转型
本文旨在探讨后端服务从单体架构向微服务架构转型的过程,分析微服务架构的优势和面临的挑战。文章首先介绍单体架构的局限性,然后详细阐述微服务架构的核心概念及其在现代软件开发中的应用。通过对比两种架构,指出微服务化转型的必要性和实施策略。最后,讨论了微服务架构实施过程中可能遇到的问题及解决方案。
|
9月前
|
缓存 Cloud Native Java
Java 面试微服务架构与云原生技术实操内容及核心考点梳理 Java 面试
本内容涵盖Java面试核心技术实操,包括微服务架构(Spring Cloud Alibaba)、响应式编程(WebFlux)、容器化(Docker+K8s)、函数式编程、多级缓存、分库分表、链路追踪(Skywalking)等大厂高频考点,助你系统提升面试能力。
1133 0
|
弹性计算 运维 监控
阿里云云服务诊断工具:合作伙伴架构师的深度洞察与优化建议
作为阿里云的合作伙伴架构师,我深入体验了其云服务诊断工具,该工具通过实时监控与历史趋势分析,自动化检查并提供详细的诊断报告,极大提升了运维效率和系统稳定性,特别在处理ECS实例资源不可用等问题时表现突出。此外,它支持预防性维护,帮助识别潜在问题,减少业务中断。尽管如此,仍建议增强诊断效能、扩大云产品覆盖范围、提供自定义诊断选项、加强教育与培训资源、集成第三方工具,以进一步提升用户体验。
1071 243
|
10月前
|
存储 人工智能 前端开发
Google揭秘Agent架构三大核心:工具、模型与编排层实战指南
本文为Google发布的Agent白皮书全文翻译。本文揭示了智能体如何突破传统AI边界,通过模型、工具与编排层的三位一体架构,实现自主推理与现实交互。它不仅详解了ReAct、思维树等认知框架的运作逻辑,更通过航班预订、旅行规划等案例,展示了智能体如何调用Extensions、Functions和Data Stores,将抽象指令转化为真实世界操作。文中提出的“智能体链式组合”概念,预示了未来多智能体协作解决复杂问题的革命性潜力——这不仅是技术升级,更是AI赋能产业的范式颠覆。
3037 1
|
Java 开发者 微服务
从单体到微服务:如何借助 Spring Cloud 实现架构转型
**Spring Cloud** 是一套基于 Spring 框架的**微服务架构解决方案**,它提供了一系列的工具和组件,帮助开发者快速构建分布式系统,尤其是微服务架构。
2229 70
从单体到微服务:如何借助 Spring Cloud 实现架构转型
|
Cloud Native Serverless 流计算
云原生时代的应用架构演进:从微服务到 Serverless 的阿里云实践
云原生技术正重塑企业数字化转型路径。阿里云作为亚太领先云服务商,提供完整云原生产品矩阵:容器服务ACK优化启动速度与镜像分发效率;MSE微服务引擎保障高可用性;ASM服务网格降低资源消耗;函数计算FC突破冷启动瓶颈;SAE重新定义PaaS边界;PolarDB数据库实现存储计算分离;DataWorks简化数据湖构建;Flink实时计算助力风控系统。这些技术已在多行业落地,推动效率提升与商业模式创新,助力企业在数字化浪潮中占据先机。
644 12
|
10月前
|
消息中间件 存储 大数据
阿里云消息队列 Kafka 架构及典型应用场景
阿里云消息队列 Kafka 是一款基于 Apache Kafka 的分布式消息中间件,支持消息发布与订阅模型,满足微服务解耦、大数据处理及实时流数据分析需求。其通过存算分离架构优化成本与性能,提供基础版、标准版和专业版三种 Serverless 版本,分别适用于不同业务场景,最高 SLA 达 99.99%。阿里云 Kafka 还具备弹性扩容、多可用区部署、冷热数据缓存隔离等特性,并支持与 Flink、MaxCompute 等生态工具无缝集成,广泛应用于用户行为分析、数据入库等场景,显著提升数据处理效率与实时性。