spring xd 源码解析-job 操作过程
2017-10-16 12:53
513 查看
1 定义
Module:具有特定功能的java模块。以jar的形式提交注册到xd。Definition:为Module设定参数。
Deployment:Definition部署到Container后形成的对象,可以执行。
2 deploy接口
curl “http://dl-rc-optd-ambari-slave-v-test-3.host.dataengine.com:47868/streams/definitions?definition=trigger++–cron^%^3D^%^270+0+0+++^%^3F^%^27+^%^3E+queue:job:wait1hourjob_COMPOSED_definition^&deploy=true^&name=wait1hourjob_COMPOSED_job”-X POST
-H “Origin: http://dl-rc-optd-ambari-slave-v-test-3.host.dataengine.com:47868”
-H “Accept-Encoding: gzip, deflate”
-H “Accept-Language: zh-CN,zh;q=0.8”
-H “User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.115 Safari/537.36”
-H “Accept: application/json, text/plain, /”
-H “Referer: http://dl-rc-optd-ambari-slave-v-test-3.host.dataengine.com:47868/admin-ui/”
-H “Proxy-Connection: keep-alive”
-H “Content-Length: 0” –compressed
通过调用streams/definitions ,将任务部署到container中。不管是job,还是stream,admin-ui都会掉这个相同的api。其实也有jobs/definitions,而且两个api的实现是一样的。
server端的resource为StreamsController,但是在基类XDController中实现。XDController也是JobsController的实现,所以两个api的实现其实是一个。
参数
definition:包含队列,definition标识,以及触发表达式。
deploy:true ,表示创建并部署,如果是false,则只创建。
name:job的名称
3 deploy过程
XD Server接受并解析请求。将信息发送到zookeeper。XD DeploymentMessageConsumer 监听queues/deployments,处理请求,并将处理结果发送到zookeeper的路径responses/requestid。Module的deploy操作,则由JobDeployer完成。
deploy sequence:
deploy 处理组件 初始化过程图。
从逻辑中可以看出,只有集群的leader才可以处理deploy请求。当节点通过leaderSelector选举为leader,节点初始化zookeeper各个路径的监听。
deploy的路径queues/deployments 在DeploymentQueue中监听,并通过DeploymentMessageConsumer来处理路径的变化信息。
4 container初始化
5 job delete
下线job过程。相关文章推荐
- spring 实现IOC过程源码解析<一>
- Spring 3.2 源码解析 -- XML bean 元素到 BeanDefinition 解析过程
- Spring源码解析:自定义标签的解析过程
- Spring源码解析二:IOC容器初始化过程详解
- spring源码分析-web容器初始化过程解析1
- 分析spring源码第五(三)篇:Spring中Bean的解析、加载、创建 过程总结
- Spring源码解析:简单容器中Bean的加载过程初探
- 【spring源码学习】springMVC之映射,拦截器解析,请求数据注入解析,DispatcherServlet执行过程
- spring容器初始化,bean加载生成过程,源码解析学习
- Hadoop中Yarnrunner里面submit Job以及AM生成 至Job处理过程源码解析
- spring IOC源码之解析xml中各个元素的过程
- Spring源码解析:默认标签的解析过程
- Hadoop中Yarnrunner里面submit Job以及AM生成 至Job处理过程源码解析
- 学习笔记:springmvc4.3源码学习:spring解析配置文件过程
- Spring源码分析----IOC容器的实现(IoC容器的初始化过程(定位、载入解析、注册))
- (Spring源码解析)一步一步分析,springMVC项目启动过程(一)
- Spring源码-context:component-scan的解析过程
- Spring源码解析之零 ------ 容器初始化过程(refresh()方法)概要
- Spring源码解析 – AnnotationConfigApplicationContext容器创建过程
- spring源码(3)之解析配置文件的过程