用ASP.NET Core构建可检测的高可用服务--学习笔记

摘要

随着现代化微服务架构的发展,系统故障的定位与快速恢复面临着诸多挑战,构建可检测的服务,帮助线上保障团队时刻掌控应用的运行状况越来越重要。本次分享会讲解如何让 ASP .NET Core 应用与现代化云基础设施完美融合,提升服务的可检测性,保障线上系统的可用率。

技术架构进化史

  • 单体架构

  • 服务化架构(SOA)

  • 微服务架构

  • Service Mesh

架构进化带来的挑战

  • 应用越拆越多

  • 拓扑越来越复杂

  • 故障定位难上加难

哪些场景需要应用可检测

  • 故障自动隔离

  • 故障定位排查

  • 服务可用性检测

  • 服务性能测试

.NET Core 的可检测性支持

  • 日志框架(Logging)

  • 诊断框架(Diagnostics)

  • 健康检查框架(HealthChecks)

.NET Core 的日志框架 -- Microsoft.Extensions.Logging

.NET Core 的日志框架特性

.NET Core 的日志框架适用场景

  • 用户请求日志

  • 异常日志记录

  • 外部接口的调用日志

  • 复杂组件的调试警告输出

日志小技巧

.NET Core 的诊断框架 -- System.Diagnostics

主要类:

System.Diagnostics.DiagnosticListener

System.Diagnostics.DiagnosticSource

.NET Core 的诊断框架特性

  • 事件发布订阅的设计模型

  • 支持任意对象追踪

  • 支持动态开关

  • 支持监听筛选

.NET Core 的诊断框架适用场景

  • 日志组件无法满足需求时

  • 期望对组件内部执行过程跟踪时

  • 期望特定事件发生时,在外部修改组件对象

.NET Core 的诊断框架的应用案例

  • HttpClient

  • MySql.Data

  • CAP 组件

  • SkyWalking .NET

ASP .NET Core 的健康检查框架 -- Microsoft.AspNetCore.Diagnostics.HealthChecks

ASP .NET Core 的健康检查框架特性

ASP .NET Core 的健康检查框架应用场景

  • 检查应用端口是否可访问

  • 检查应用依赖服务是否可访问

  • 检查应用内组件是否正常工作

与云服务融合实现故障隔离

  • 负载均衡的健康检查

  • K8S 的 LivenessProbe

与监控系统打通

  • 监控系统探针访问健康检查接口

  • 主动推送健康检查结果到监控系统

愿景

持续提高开发者的幸福感

视频链接

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/312594.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[功能发布]Excel催化剂2周年巨献-网页数据采集功能发布,满足90%合理场景使用...

转眼间,Excel催化剂推出已经两周年,在此之际,献上数据时代最刚需的网页采集功能,无需苦苦寻觅各种工具,借助Excel催化剂过往数据处理、清洗功能,加上此轮的网页采集功能,一点不输于市面上的各种…

.NET Core 微服务学习与实践系列文章目录索引(2019版)

Photo :.NET Core文 | Edison Zhou2018年,我开始学习和实践.NET Core,并开始了微服务的学习,以及通过各种开源组件搭建服务治理技术方案,并在学习过程中总结了一个.NET Core微服务学习与实践系列文章,涵盖了…

dapr微服务.net sdk入门

Actors入门先决条件.Net Core SDK 3.0Dapr CLIDapr DotNet SDK概述本文档描述如何在客户端应用程序上创建Actor(MyActor)并调用其方法.MyActor --- MyActor.Interfaces|- MyActorService|- MyActorClient接口项目(\MyActor\MyActor.Interface…

TPL Dataflow组件应对高并发,低延迟要求

长话短说2C互联网业务增长,单机多核的共享内存模式带来的排障问题、编程困难;随着多核时代和分布式系统的到来,共享模型已经不太适合并发编程,因此actor-based模型又重新受到了人们的重视。---------------------------调试过多线…

abp模块生命周期设计思路剖析

abp中将生命周期事件抽象为4个接口://预初始化 public interface IOnPreApplicationInitialization {void OnPreApplicationInitialization([NotNull] ApplicationInitializationContext context); }//初始化 public interface IOnApplicationInitialization {void …

.Net Core + 微信赋能企业级智能客服系统--学习笔记

摘要围绕目前需求猛增的微信及移动端企业智能客服业务,利用 .NET Core 的一系列优秀特性及 SignalR 模块打造全双工、跨微信/QQ/钉钉等应用平台、跨系统平台、跨终端、支持企业级并发的移动端客服系统。讲师介绍目录微信应用生态简介微信小程序基础通讯原理Senparc.…

基于docker-compose的Gitlab CI/CD实践排坑指南

长话短说经过长时间实操验证,终于完成基于Gitlab的CI/CD实践,本次实践的坑位很多, 实操过程尽量接近最佳实践(不做hack, 不做骚操作),记录下来加深理解。看过博客园《docker-compose真香》一文的园友留意到…

Is It a Complete AVL Tree AVL树

思路: 考察的点是建立AVL树以及如何判断是否为满二叉树。 建立AVL树需要搞清楚LL、LR、RR、RL四种情况如何左旋和右旋,如下: 类型BF条件操作LLBF(root)2,BF(root->lchild)1root右旋LRBF(root)2,BF(root->lchild)-1先root->lchild左…

AcWing 删减 栈思想

思路: 这道题要是不卡时间复杂度,是道大水题,然而字符串的长度到了6次方,若使用string中的erase函数,看似时间复杂度不高,其实,每次删除子字符串后,后边的字符串需要移动到前面来&am…

读《可复制的领导力》

最近很忙,是特别忙,连上厕所的时间都在回复着各种消息,但还是挤时间看完了《可复制的领导力》,这本书也是领导推荐的。说起领导力,大多数人都会觉得得靠悟,并不能做到言传身教,但书名中却提到了…

AcWing 构造数组 区间合并

思路: 这道题第一眼来看以为是动态规划类型的题目,然而尝试了用dp的方法做,然而超时了,过了差不多一半的测试店,显示的是超时。那么应该来说动态规划是可以做的,但数据卡的比较严。在看其他同学的评论后&am…

为什么需要动态SQL

为什么需要动态SQL在使用 EF或者写 SQL语句时,查询条件往往是这样一种非常常见的逻辑:如果客户填了查询信息,则查询该条件;如果客户没填,则返回所有数据。我常常看到很多人解决这类问题时使用了错误的静态 SQL的解决办…

【好文】为什么必须学好.Net Core?怎样弯道超车新年高薪?这样做,一周就够了!(文末彩蛋)...

都2020了你还不会.Net Core?恕我直言,2020年还不会.Net Core是会被淘汰的!12月3号,.Net Core3.1的LTS版正式发布,4年来7个正式版本和几十个Preview版本,热烈可见一斑!越来越多的互联网软件公司开…

基于 Kubernetes 的基础设施即代码

11 月 9、10 号两天,.NET 社区第一次以“.NET 大会”为品牌在上海召开了第一届峰会,现场与会者达到 600 人规模。大会的第 1 天是各类演讲分享,第 2 天有多个动手实践课。张善友队长、 刘腾飞 和我一起策划了基于 Kubernetes 的 .NET Core 微…

Steeltoe 2.4新增代码生成工具、全新入门指南等,助力.NET微服务开发

Steeltoe框架现可帮助.NET开发人员创建云原生应用。随着其功能的扩充,该框架越来越受欢迎,下载量达到580万(并且仍在增加),这其中大部分的功能创新都源自于用户反馈、社区贡献和.NET运行环境各方面的改进。但这些还不够…

2019 年终回顾:不忘初心,负重前行

点击上方蓝字关注“汪宇杰博客”导语2019 年就要接近尾声,这一年对于我来说,有许多有意义的事件。我成长了许多,并依然保持着对技术的热情。在辞旧迎新之际,我想回顾一下我这一年中有意义的事件与收获,期待与大家一起在…

【C#】设计模式的学习征途系列文章目录(2019版)

Photo :Design Patterns文 | Edison Zhou2017年,我开始系统学习设计模式,参考了《大话设计模式》、《设计模式的艺术》等书籍,并通过C#语言写了各种模式的代码示例(已经放到了我的github上并收获了120个star&#xff0…

原创 | 为什么年终奖是一个彻头彻尾的职场圈套?

0前言之前写过几篇职场专题的文章,反响不错,也先后被不少公众号转载过,这几天来了不少新朋友,如果之前没阅读过,可以在后台回复“职场”2个字,查看系列文章。转眼又到年底了,不知道有多少人在心…

Blazor 机制初探以及什么是前后端分离,还不赶紧上车?

上一篇文章发了一个 BlazAdmin 的尝鲜版基于 Blazui 的 Blazor 后台管理模板 BlazAdmin 正式尝鲜,这一次主要聊聊 Blazor 是如何做到用 C# 来写前端的,传送门:https://www.cnblogs.com/wzxinchen/p/12057171.html飚车前需要说明的一点是&…

云原生

一、云原生概念的诞生云原生(Cloud Native)的概念,由来自Pivotal的MattStine于2013年首次提出,被一直延续使用至今。这个概念是Matt Stine根据其多年的架构和咨询经验总结出来的一个思想集合,并得到了社区的不断完善&a…