博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Ambari之Get请求的处理流程
阅读量:5280 次
发布时间:2019-06-14

本文共 1014 字,大约阅读时间需要 3 分钟。

关于Get请求如何转化成对应XXResourceProvider

Get查询请求相关实现类图.png

  1. createResource(),根据Resource.Type获得ResourceDefnition,然后创建QueryImpl implement ResourceInstance,并由ClusterControllerHelper创建ClusterController(所有XXResourceProvider访问入口)注入到QueryImpl中。
  2. handlerequest(),创建GetRequest
  3. request.process(),解析Renderer、Predicate
  4. ReadHandler.handlerRequest(), 封装Query,setPage、setSort、setRenderer、setPredicate,query.execute
  5. ClusterController.getResource(Type,Request,Predicate), 根据Type获得Provider.
  6. provider.queryForResources(), 最终调用对应reourceProvider.getResource()返回查询结果QueryResponse.

一个Get请求具体调用实例

StackService.png

获得服务列表接口 (StackService)

/stacks/HDP/versions/2.3/services?fields=StackServices/,components/,components/dependencies/Dependencies/scope,artifacts/Artifacts/artifact_name&_=1457076234100

RequestFactory 会根据请求类型来创建对应的Request, EG: 此例中的GetRequest。 之后GetRequest实现了getRequestHandler方法来创建处理请求的handler,EG: 此例中的ReadHandler。ReadHandler负责解析参数中的查询条件进行查询,随后返回结果Result对象。最终Result被ResponseBuidler封装为Responde返回前台。

定时任务流程

Quartz

附件列表

 

转载于:https://www.cnblogs.com/jasonbrooke/p/5434221.html

你可能感兴趣的文章
Fast Poisson Disk Sampling
查看>>
Python Cookbook(第3版)中文版:15.14 传递Unicode字符串给C函数库
查看>>
Linux下SVN自动更新web [转]
查看>>
编程:对经验世界的析构与建构
查看>>
Openstack api 学习文档 & restclient使用文档
查看>>
vim linux下查找显示^M并且删除
查看>>
poj100纪念
查看>>
ExtJs4 笔记(5) Ext.Button 按钮
查看>>
把execl导入到数据库中
查看>>
阿里云人脸比对API封装
查看>>
如何将数据库中的表导入到PowerDesigner中(转)
查看>>
汇编总结一
查看>>
html5-表单常见操作
查看>>
android textView中实现html效果
查看>>
《摇滚南京》——"人生下来就是孤独"
查看>>
Oracle中Union与Union All的区别(适用多个数据库)
查看>>
String = ""和String = null的区别
查看>>
C#测试题若干,都是基础阿
查看>>
NetWork——关于TCP协议的三次握手和四次挥手
查看>>
如果TCP采用两次握手
查看>>