Health Check in eShop

  • 时间:
  • 浏览:2

这能不都还可不还可以都还可不还可以不能看一遍,在Identity.Api中,仅仅配置了对数据库的检测。

    在项目中,有日后 人一般只会在Program.cs和Startup.cs看一遍跟HealthChecks相关的代码。目前仅在客户端(有日后 service肯能有日后 人的app)请求有日后 人的HealthChecks的事先,有日后 人会进行相关service的检测,有日后 再返回自身的原本情況码。

Microsoft.AspNetCore.HealthChecks   ------------     Asp.Net Core注册扩展类库

它会先检测你这个请求是全部都是HealthCheck请求,肯能全部都是则走下面的步骤,肯能是,则会进一步进行对相关service的HealthChecks。对相关service的Config觉得Startup.cs中进行的:

    今天有日后 人了解了Health Check,并简单看一遍它在eShop中的使用。目前看来还全部都是很完善,只在有日后 service肯能app调用其Health Check接口的事先都还可不还可以进行检测,当然有日后 人能不都还可不还可以改造下,使其在多多程序 运行的事先先检测一次。在eShop所含日后 人并都还可不还可以不能 看一遍在UnHealth的事先的正确处理,你这个扩展起来很简单,让我通过自身需求,进行日志,email,短信都能不都还可不还可以,底下能不都还可不还可以找肯能实现下。

    通过代码了解,在eShop中实现了对各Api的通讯检测和SqlServer、AzureBlobStorage的检测,但其中并都还可不还可以不能 看一遍对重试机制和UnHealthy时的正确处理,相信过全部都是加入哪些地方地方,目前微软肯能单独为HealthChecks开了原本Repository,另原本你就能不都还可不还可以单独引用到被委托人的项目中,非常棒的东西。

    现在有日后 人的项目不多的从单体多层架构转加在多项目多层架构即现在流行的微服务架构。

Microsoft.Extensions.HealthChecks.SqlServer ------   扩展对MsSql Server的支持

ok,有日后 人非常简单的在项目中引用了HealthCheck,当有日后 人的api运行后,有日后 人只须要通过 http://xxx/hc 就能对你这个api进行Health Check了。

    接下来有日后 人看下在eShop中代码是怎样才能使用的,有日后 人以Identity.Api为例,在事先的文章所含日后 人提到过,在Program.cs中,有一段UseHealthChecks("/hc"),有日后 人跟踪下代码,让我看一遍它会先判断path与非 负责规则,肯能符合说说就会通过IWebHostBuilder注册原本HealthCheckStartupFilter,Filter则会把相应的HealthCheckMiddleware注册到管道中,有日后 人看下主要源码:

    事先有日后 人一直全部都是介绍eShop是微软基于微服务架构的.Net Core Demo,为了保障各个services之间的调用正常,什么都有有Health Check是必不可少的。

2、检测相关service情況与非 正常(比如db server,能不都还可不还可以连接到db,能不都还可不还可以打开数据库等)

    乘着不忙的事先赶紧学习,肯能有日后 人有兴趣学习.Net Core说说,能不都还可不还可以加QQ群:37624100054(通关密码:cnblogs)。另外喜欢微服务的有日后 人能不都还可不还可以看下园中大神Savorboard的微服务系列

Microsoft.Extensions.HealthChecks.AzureStorage ----- 扩展对Azure Blob Storage的支持

Microsoft.Extensions.HealthChecks   ------------     Health Check的核心代码

    Health Check(健康情況检查)不仅是对被委托人应用多多程序 内部检测各个项目之间的健康情況(各项目的运行情況、项目之间的连接情況等),还包括了应用多多程序 对内部肯能第三方依赖库的情況检测。

3、UnHealthly时正确处理机制

    Health Check的功能哪些地方地方?在微服务架构中很简单,可是检查各services的运行情況与非 正常。在微服务的架构中,所有的一切全部都是service,db is service,rabbitmq is service,auth is service, shoppingcart is server……有日后 人的架构都还可不还可以根据业务需求,横向的扩容,多个db,多个rabbitmq,多个auth,多个shoppingcart。有日后 人总结下,微服务架构下的Health Check是通过网络检查各services与非 正常运行,它的功能是:

    在Demo中,有日后 人能不都还可不还可以在各个services中都能看一遍HealthCheck,能不都还可不还可以说是无处找不到,在系列【二】和【三】所含日后 人全部都是见过。在eShop项目中,有日后 人能不都还可不还可以看一遍有个HealthChecks目录,其中所含了与HealthChecks相关的有好多个项目:

    另原本有日后 人的App把各个模块分层分项目正确处理,比如Users项目仅仅正确处理User的有日后 业务需求,但在整个项目使用的事先,有日后 人仅仅须要引用其类库即可,不多再担心项目与类库之间的不兼容问题报告 ,肯能不兼容在编译期肯能会有提示。但如今,业务规模都还可不还可以不能 庞大的事先,有日后 人单独把Users作为原本service来做,所有一切全部都是其内部正确处理,对于内部来说仅仅公开有好多个api即可,但与项目之间的连接就从单纯的物理引用关系转加在了网络调用关系。

    当有日后 人架构从单体架构到微服务架构的事先,有日后 人会发现不多的引用从物理转向了网络,在另原本有日后 人不须要考虑之间与非 调用成功,但现在有日后 人须要考虑进去,网络因素、服务器因素、有日后 因素等全部都是影响各服务之间的调用,有日后 Health Check孕育而生,它在微服务架构中是举足轻重的。

1、提供内部调用Health Check接口,反馈自身情況