解密:调用链系列(二):解读UAVStack中的贪吃蛇-调用链

优采云 发布时间: 2022-12-11 00:50

  解密:调用链系列(二):解读UAVStack中的贪吃蛇-调用链

  前言

  上一篇文章分享了调用链的模型设计和模型时序图。相信大家对调用链都有一个整体的认识,比如:什么是调用链,它能做什么,整体的实现策略。

  在本文章中我们继续介绍调用链的服务端信息采集和服务间的上下文传递。

  服务器信息采集

  服务器端信息采集的整体流程如下图所示。通过在应用容器(tomcat等)启动过程中植入切入点,可以在应用逻辑执行前后劫持请求。

  切点植入

  在介绍切入点之前,我们应该对servlet容器(本文以tomcat为例)处理一个请求的大致过程有一个整体的了解。

  图片来自网络

  

  Connector接收到一个连接并转化为请求(Request)后,会将请求传递给Engine的管道(Pipeline)的阀门(ValveA)。该请求将传递到 Engine 的管道中的 Engine Valve。然后这个request会从Engine Valve传到一个Host pipeline,再传到pipeline中的Host Valve。然后从Host Valve传到一个Context pipeline,再传到pipeline中的Context Valve。接下来,请求会被传递到 Wrapper C 中收录在管道中的阀门 Wrapper Valve,在这里它会经过一个过滤器链(Filter Chain),最后发送到一个 Servlet。借助tomcat的这种架构设计,

  中间件增强技术除了巧妙的利用了tomcat容器的架构设计之外,还使用了java Instrumentation(它为我们提供了在对象第一次加载时动态修改字节码的能力。给出详细的解释,不懂的可以自行查资料)。在UAV中,通过UAVServer对外提供各种切点能力。

  有了中间件增强技术,应用逻辑执行前后都有切点,下一步就是在这些切点执行我们自己的调用链逻辑。

  调用链中中间件增强技术的使用

  上面介绍的中间件增强技术是一个框架,通过使用javaagent在tomcat代码中动态植入切点代码,并以UAVServer的形式对外提供能力(具体能力后面会详细介绍文章)。轻调用链的实现使用了UAVServer提供的GlobalFilterHandler能力。

  GlobalFilterHandler:这里的GlobalFilterHandler是中间件增强技术中的一个能力,与传统的过滤器无关。它对外提供四种能力:

  1. doRequest:在所有应用程序处理请求之前劫持;

  2. doResponse:在所有应用处理完请求后劫持;

  3. BlockHandlerChain:阻塞当前handler之后的所有handler,handler在当前注册的地方;

  4. BlockFilterChain 阻塞当前Filter之后的所有Filter。

  

  调用链借助GlobalFilterHandler提供的前两个能力,实现了在应用处理请求前后执行调用链逻辑的功能。

  轻链实施

  具体的UML图如下:

  从UML图中可以清楚的看到InvokeChainSupporter(调用链实现逻辑入口和调用链需要的资源初始化实现类)对中间件增强技术进行了二次增强。它允许用户在其中注册不同的handler,并在handler的preCap和doCap(中间件增强技术中逻辑执行前后的pointcut术语)方法前后动态编织适配器,从而能够进行更多的定制化适配和个性化逻辑. 所有的支持者和适配器都采用了反射调用的方式,最大程度的减少了对中间件增强技术的依赖。

  有了二次增强技术,我们就可以开始下面的调用链绘制工作了。

  轻调用链绘制实现主要依赖于注册在InvokeChainSupporter上的ServiceSpanInvokeChainHandler。主要绘制过程如下:

  1、解析请求信息,提取调用链关心的信息,将解析后的信息放入上下文中;

  2、通过解析出的请求头信息进行逻辑分流,根据不同的协议类型进行不同的逻辑处理;

  l mq逻辑

  干货教程:招募伪原创文章*敏*感*词*手机版(文章采集生成伪原创软件)

  阅读本文提示语:文章采集生成伪原创软件,伪原创文章*敏*感*词*软件手机版下载,伪原创编写文章软件

  招收伪原创文章*敏*感*词*手机版下载,2019年整合整合全网内容,为文章添加“原创文章制作” . 用户分析:伪原创可以提升用户体验,但通篇不能为用户提供解决问题的建议。如果您有用户,请使用此工具的“测试资源”集合来修改现有的 文章,然后手动测试资源是否已优化以扩展。

  如何使用 伪原创文章 *敏*感*词*修改标题

  

  是使用 伪原创 工具获得的 文章 技能之一。

  HOW TO WRITE PIT WITH 伪原创文章 GENERATORS 修改标题是文章原创的标志。写伪原创文章时,可以用原创的文章,把文章翻译成中文,插入到文章中,然后加上文章 中的关键字描述,例如 ALT=transformer。我们这样修正它的变化,不仅有利于用户体验,图文匹配,不厌读,而且有利于搜索引擎蜘蛛分析的原创灵敏度,增加被抓到的概率收录。

  第三:句子替换

  同义词替换有特殊的软件处理,但不建议所有人使用。阅读 文章 时将替换全文。大多数情况下不利于用户体验,因此禁止直接使用所谓的“软件制造”进行仿冒。下面举例说明如何替换:随机选几个句子替换,注意句子是不是单词,一般在文章的第一部分,赶紧买源码吧,比如,"我们公司是专业生产什么的厂家,品种齐全,质量有保证。下面就带大家了解一下它是如何工作的。” 其中一句话是“让我们看看有什么用”。我们可以使用“您将在以下 文章 你知道什么?” 这种变化与原文的意思是一致的。它随上下文流动,使整个文本的变化几乎相同,这可以增加收录的可能性。搜索引擎优化营销推广文章。

  第四:在整个文章中添加删除方法ecshop文章seo。

  

  ,在一个位置删掉一两句,在另一个位置加上自己写的一两句。类似于上面的方法。SEO 搜索类似文章。

  五:更改下单方式

  更改 文章 中段落的顺序,或更改段落中句子的顺序,但要确保整个 文章 和整个段落是合乎逻辑且流畅的。一般来说,以上两种方法应该结合使用。SEO文章写作要求

  相关文章

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线