服务流程总结

微服务

在这里插入图片描述
在这里插入图片描述

服务调用

在这里插入图片描述
在这里插入图片描述
这张图描述了远程服务调用的几中方式:
第一种:服务比较少,例如就两个服务,一个服务消费,一个服务提供,就不需要注册中心,不需要负载均衡.
第二种:并发比较大,服务服务比较多,我们需要管理服务,就需要注册中心,我们还需要服务间的负载均衡.但代码编写的复杂多相对高一些,我们需要自己获取ip,获取端口,拼接字符串等.
第三种:我们要基于第二种进行代码简化,底层提供了一种拦截器,把基于服务名获取服务实例的过程在拦截器中做了封装,简化了代码的开发.但是加了拦截器多少会在性能少有一点损耗.
第四种方式主要是从代码结构上做一个挑战,我们前面三种基于RestTemplate进行服务调用,本身属于一种远程服务调用业务,能够将这种业务写到一个业务对象中,Feign方式就诞生了,它主要对代码结构的一种优化.

配置文件加载顺序

在这里插入图片描述

拉取(Pull)配置信息

在这里插入图片描述

Tomcat 请求处理分析

在这里插入图片描述

Java线程池构成分析

在这里插入图片描述

线程池任务执行过程

在这里插入图片描述

Spring MVC 请求处理

在这里插入图片描述
第一:客户端向web服务(例如tomcat)发起请求。
第二:tomcat会调用Filter对请求进行预处理(例如请求编码处理,请求认证分析等)。
第三:请求经过滤器Filter处理过后会交给DispatcherServlet对象(负责资源调度,前端控制器),此对象基于url找到对应的请求处理链对象(HandlerExecutionChain)。
第四:DispatcherServlet获取了请求执行链之后,会首先调用请求执行链中拦截器(HandlerInterceptor)对象(这个对象会在@RestController之前执行).
第五:拦截器对象获取请求以后可以对请求先进行分析,例如记录请求次数,请求时间,然后控制对后端Controller的调用。
第六:拦截器允许请求去传递到Controller时,Controller对象会对请求进行处理,然后将处理结果还会交给MVC 拦截器。
第七:拦截器拿到响应结果以后对其进行分析处理(例如记录Controller方法执行结束的时间)
第八:拦截器将响应结果传递到DispatcherServlet对象。
第九:DispatcherServlet拿到响应结果以后,会基于响应数据的类型,调用相关处理器(Processer)进行处理。
第十:响应结果处理器对象对响应数据处理以后,会将其结果交给DispatcherServlet对象。
第十一:DispatcherServlet对象拿到响应数据的处理结果时,会将结果基于ServletResponse对象响应到客户端。

Sentinel 请求拦截分析

在这里插入图片描述
当我们在服务中添加了Sentinel依赖以后,Sentinel会为我们的服务提供一个SpringMVC拦截器,这个拦截器会对请求进行拦截,然后基于请求url获取sentinel控制台中设置好的流控规则,然后采用一定的算法对请求url要访问的资源进行流量限制。

网关负载均衡调用流程分析

在这里插入图片描述

网关执行流程分析

在这里插入图片描述

自定义执行链设计

在这里插入图片描述

Spring MVC 拦截器

在这里插入图片描述

Spring框架生态设计

在这里插入图片描述

AOP 执行流程分析

在这里插入图片描述

文件上传架构升级

在这里插入图片描述

SpringSecurity 执行流程

在这里插入图片描述

单点登陆方案

方案1:将登录状态存储到redis等数据库
在这里插入图片描述
在这里插入图片描述
方案2:将登录状态存储到jwt令牌中
在这里插入图片描述

权限校验过程分析

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 程序守护服务是一种可以确保程序在后台持续运行的服务。在C#中,我们可以使用一些技术来实现程序守护服务。 首先,我们可以使用Windows服务来创建程序守护服务。Windows服务是在后台运行的应用程序,它可以在系统启动时自动启动,并在整个系统运行期间持续运行。我们可以使用C#编写一个Windows服务,并通过安装该服务来注册到系统中。通过服务管理器,我们可以启动、停止和监控该服务的运行状态。 另外,我们还可以使用第三方库如Topshelf来简化创建和管理程序守护服务的过程。Topshelf是一个开源的C#库,它提供了一组易于使用的API,可以将一个常规的C#控制台应用程序转换为一个Windows服务。通过使用Topshelf,我们可以更加方便地定义服务的启动、停止和运行逻辑,并可以通过命令行参数或配置文件来配置服务的行为。 无论是使用Windows服务还是Topshelf,我们都需要确保程序以服务的方式运行时具备一些必要的特性。首先,我们需要确保程序能够在后台持续运行,而不受用户交互的影响。其次,我们需要能够处理异常,保证程序的稳定性。此外,我们需要定义适当的启动和停止逻辑,以确保在服务启动时进行必要的初始化操作,在服务停止时清理资源并保存状态。 总结来说,程序守护服务是一种可以确保程序在后台持续运行的服务。在C#中,我们可以使用Windows服务或第三方库如Topshelf来创建和管理程序守护服务,以确保程序在系统运行期间始终保持活动状态。 ### 回答2: 程序守护服务是指在计算机中运行的一种服务,主要负责监控、管理和维护其他程序的运行状态。在C#语言中,可以使用一些技术手段来实现程序守护服务。 首先,可以使用多线程技术来监控其他程序的运行状态。通过创建一个独立的线程,并在该线程中循环检测需要守护的程序是否在运行,如果程序异常退出,则可以重新启动程序,并记录异常信息。 其次,可以使用Windows服务(Windows Service)来实现程序的守护。Windows服务是一种在后台运行的应用程序,可以自动启动和停止。通过创建一个Windows服务,并在服务中编码实现对其他程序的监控和管理,可以确保守护服务在计算机启动时自动启动,并在计算机关闭时自动停止。 另外,可以使用第三方的守护服务框架,如Topshelf。Topshelf是一个开源的C#框架,可以轻松地将常规控制台应用程序转换为Windows服务,提供了丰富的功能和配置选项,便于开发和管理程序守护服务。 总之,程序守护服务是一种重要的技术手段,可以提高程序的稳定性和可靠性。在C#中,可以通过多线程、Windows服务或使用第三方框架实现程序守护服务,确保程序在异常退出时能够及时重新启动,并提供监控和管理功能。 ### 回答3: 程序守护服务(Program Daemon Service)是指在操作系统中以守护进程形式运行的一种服务。在C#语言中,可以通过使用System.ServiceProcess命名空间提供的类库来实现程序守护服务。 首先,我们可以创建一个继承自ServiceBase的自定义服务类,该类需要重写OnStart()和OnStop()方法。在OnStart()方法中,可以实现服务的初始化代码,例如建立数据库连接、读取配置文件等;而在OnStop()方法中,可以实现服务的停止逻辑,例如关闭数据库连接、释放资源等。 接下来,我们需要在Main()函数中创建一个ServiceBase数组,并将我们自定义的服务类传入。通过调用ServiceBase.Run()方法来启动服务。在服务启动之前,可以通过命令行参数来指定服务的运行方式,例如“-install”表示安装服务,“-uninstall”表示卸载服务。 在服务启动后,我们可以通过ServiceController类来管理和控制服务的运行。例如,使用ServiceController.Start()和ServiceController.Stop()方法启动和停止服务,使用ServiceController.Pause()和ServiceController.Continue()方法暂停和恢复服务运行。 此外,我们还可以在自定义服务类中实现一些特定的功能,例如实现定时执行任务、监控服务状态等。通过使用System.Timers命名空间中提供的Timer类,我们可以在指定的时间间隔内触发特定的事件,从而实现定时执行任务的功能。 总结来说,C#语言中可以通过System.ServiceProcess命名空间提供的类库来实现程序守护服务。我们需要创建一个自定义服务类,并重写OnStart()和OnStop()方法。通过ServiceBase.Run()方法来启动服务,使用ServiceController类来管理和控制服务的运行。此外,还可以使用System.Timers命名空间中的Timer类实现定时执行任务的功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值