
Azure 反模式
_iorilan
10年以上软件工程经验,先后从事在线教育/IT金融/即时通信/政府/物流平台/零售/门禁/监控等领域。专注夯实基础/项目成本与架构平衡/框架调研/团队高效协同工作
展开
-
Azure反模式——繁忙的数据库
azure反模式-繁忙的数据库将工作量卸载到数据库服务器可能会导致数据库花费大量的时间在代码的运行上面,而不是响应数据的读写请求上。问题描述许多数据库系统可以运行代码。例如存储过程和触发器。通常更有效的做法是在靠近数据的位置来进行处理,而不是将数据传输到客户端应用程序处理。 但是,过多使用这些功能可能会损害性能,原因有多种:数据库服务器可能花费过多的时间处理业务逻辑,而不是接受新数据请求并提取。数...翻译 2018-03-17 22:13:40 · 486 阅读 · 0 评论 -
Azure 反模式——繁忙的前端
使用大量后台线程执行异步工作可能耗尽其他并发前台任务的资源,降低了系统的响应时间。问题描述资源密集型任务可能会增大用户请求的响应时间,使延迟提高。缩短响应时间的方法之一是将资源密集型任务放到独立的线程。这种方法可维持应用程序的响应能力,同时可在后台处理。但是,在后台线程中运行的任务仍会占用资源。如果这些任务过多,可能会耗尽用于处理请求的线程。备注术语“资源”涵盖许多指标,例如CPU利用率、内存占用...翻译 2018-03-17 22:17:30 · 421 阅读 · 0 评论 -
azure反模式——琐碎的IO工作
大量I/O请求的累积可能会明显降低系统性能和响应能力。问题描述网络调用和I/O操作与生俱来就比计算任务要慢。每个I/O请求通常会产生很高的开销,大量I/O操作的累积可能会使系统变慢。下面是出现琐碎I/O的一些常见原因。以不同请求形式在数据库中读取和写入单个记录以下示例从产品数据库中读取数据。有三个表:Product、ProductSubcategory和ProductPriceListHistor...翻译 2018-03-17 22:22:44 · 474 阅读 · 0 评论 -
Azure 反模式——超量提取
检索超出业务运营需要的数据可能会导致不必要的I/O开销,并降低响应能力。问题描述如果应用程序尝试检索所有数据(超过它可能需要的数据量)来尽量减少I/O请求数量,则可能会出现这种反模式。这通常是过度避免琐碎I/O反模式(https://docs.microsoft.com/en-us/azure/architecture/antipatterns/chatty-io/index)带来的结果。例如,应...翻译 2018-03-17 22:30:27 · 457 阅读 · 0 评论 -
Azure反模式——不当的实例化
连续创建新实例可能会损害性能。本应一次创建然后共享使用。问题描述许多库提供外部资源的抽象。在内部,这些类通常管理其自身与资源之间的连接,充当可由客户端来访问资源的中转站。下面是与Azure应用程序相关的中转站类的一些示例:System.Net.Http.HttpClient。使用HTTP来与Web服务通信。Microsoft.ServiceBus.Messaging.QueueClient。向服务...翻译 2018-03-17 22:34:59 · 440 阅读 · 0 评论 -
Azure反模式——全部数据持久化
将应用程序的所有数据放入单一数据存储可能会降低整体性能,原因是这会导致资源争用发生的概率提高,或数据存储不适用于某些数据。问题描述一直以来,不管应用程序需要存储哪些不同类型的数据,往往只使用单一数据存储。这样做的原因通常是为了简化应用程序而设计,或者受限于开发团队的专业技能。基于云环境的系统往往附带其他功能性和非功能性要求,需要存储许多异构类型的数据,例如文档、图像、缓存数据、排队消息、应用程序日...翻译 2018-03-17 22:42:37 · 359 阅读 · 0 评论 -
Azure反模式——无缓存
在处理大并发的云应用程序中,反复提取相同数据可能会降低性能和可伸缩性。问题描述在没有缓存的情况下,可能会出现一些异常行为,包括:反复从访问开销较高(I/O开销或网络延迟)的资源提取相同信息。为多个请求反复构造相同的对象或数据结构。向具有服务配额的远程服务发出过多的调用请求。这些问题可能进一步导致系统响应时间不佳、数据存储中资源争用加剧,以及可伸缩性下降。以下示例使用EF连接到数据库。即使多个请求提...翻译 2018-03-17 22:47:46 · 426 阅读 · 0 评论 -
Azure反模式——同步IO
在完成I/O时阻塞调用线程可能会降低系统性能并影响系统的可伸缩性。问题描述完成I/O时,同步I/O操作会阻塞调用线程。在此时间段内,调用线程会进入等待状态,且无法执行任何工作,因而浪费了系统的处理资源。常见I/O示例:对数据库或任何类型的持久化存储中读写数据。向Web服务发请求。发布消息,或者从队列中检索消息。读写本地文件。出现该反模式的原因通常是:为了逻辑执行的直观性而忽视了性能。应用程序需要等...翻译 2018-03-17 22:50:48 · 567 阅读 · 0 评论