异步事务为实时 Web 应用程序提供动力

一则或许对你有用的小广告

欢迎加入小哈的星球 ,你将获得:专属的项目实战 / Java 学习路线 / 一对一提问 / 学习打卡/ 赠书活动

目前,正在 星球 内带小伙伴们做第一个项目:全栈前后端分离博客项目,采用技术栈 Spring Boot + Mybatis Plus + Vue 3.x + Vite 4手把手,前端 + 后端全栈开发,从 0 到 1 讲解每个功能点开发步骤,1v1 答疑,陪伴式直到项目上线,目前已更新了 204 小节,累计 32w+ 字,讲解图:1416 张,还在持续爆肝中,后续还会上新更多项目,目标是将 Java 领域典型的项目都整上,如秒杀系统、在线商城、IM 即时通讯、权限管理等等,已有 870+ 小伙伴加入,欢迎点击围观

实时 Web 应用程序在这个软件定义的世界中变得非常流行。 “实时”通常意味着 Web/应用程序服务器的响应时间非常快。在现代编程中,它通常是通过进行一系列非阻塞异步调用来完成的。大多数流行的编程语言现在都支持异步事务。例如,Node.js 的主要开发目的是通过进行事件驱动的非阻塞异步调用来有效地处理 I/O 密集型实时 Web 请求。

在我们更多地讨论异步事务以及如何衡量其性能之前,让我举一个异步事务的例子。我住在硅谷,我们中的许多人都是房屋抵押贷款的奴隶。我多次去我的抵押贷款银行账户查看我的账户余额。从在线抵押贷款账户查询余额是一个同步事务,我在其中请求余额,服务器发送信息,我在浏览器中看到它。

然而,抵押再融资是一个异步交易,我通过提交在线抵押再融资申请来启动交易。银行需要执行多项后端活动,如订购信用报告、订购房屋评估、承销商审查、锁定利率、提供条件、批准贷款、签署贷款、融资和关闭贷款。其中一些可以并行发生,而另一些则需要等待其他活动完成。再融资过程只有在获得资金并关闭后才能完成。因此,再融资交易的正确衡量标准是申请关闭之间的端到端时间,而不是提交申请的响应时间。

同样,为了正确衡量异步事务的性能,您需要计算和跟踪异步事务的端到端延迟,而不是发起客户端请求的响应时间。

AppDynamics 发现异步事务,计算事务的端到端延迟并使用此指标来跟踪业务事务性能。 AppDynamics Summer '15 (4.1) 版本为异步事务性能监控引入了许多配置和可视化增强功能,使其成为最强大的解决方案。

服务器监控仪表板提供了所有服务器资源的综合摘要——CPU、内存、存储和网络。此外,仪表板还提供有关仪表板上消耗 CPU 和内存的前十名进程的详细信息。

异步业务事务发现——AppDynamics 为异步事务发现了许多开箱即用的框架和服务。一些此类框架的示例包括 Azure 服务总线、Azure 表存储、WCF 异步、IBM ActiveMQ 等等。

异步事务划分——由于异步事务有很多自定义风格,而且不可能开箱即用地发现所有这些事务,AppDynamics 使客户可以轻松地指定业务事务结束的位置。我们通过让客户明确告诉我们交易结束的位置来做到这一点。他们可以通过指定一个类/方法或最后一个线程执行的层来配置它。

可以使用异步事务配置为特定业务事务指定多个分界符。当有多个分界点时,将第一个满足的分界点作为端到端的处理时间。

端到端延迟 – 在发现异步事务或配置事务结束后,计算端到端延迟并显示在节点和整个应用程序的指标浏览器视图中。端到端延迟事务记分卡出现在业务事务流程图中,如下截图所示:

此外,端到端延迟指标显示业务交易列表、快照等。

异步事务可视化——AppDynamics 在所有流程图中通过虚线清楚地标记所有异步调用。此外,还有针对异步事务的特殊可视化,例如快照的瀑布视图,如下所示:

要了解有关异步事务性能监控的最新增强功能的更多信息并观看现场演示,请查看我们的点播 网络研讨会