SpringXD 任务、启动消息通信代码流程分析
通信流程概括 任务部署时,xd-admin和container之间通过zookeeper的节点监听通信。container监听zk deployment节点,执行部署。同事绑定kafka message consumer和reactor subscriber。 任务启动时,xd-admin和container通过kafka通信。container端消费到kafka的message...
通信流程概括 任务部署时,xd-admin和container之间通过zookeeper的节点监听通信。container监听zk deployment节点,执行部署。同事绑定kafka message consumer和reactor subscriber。 任务启动时,xd-admin和container通过kafka通信。container端消费到kafka的message...
对于保存在.properties文件中的敏感信息,支持采用加密的方式保存。然后在程序中解密使用。 实现方案 采用自定义PropertySourceLoader的方式,在.properties配置文件加载期,遍历值,遇到指定格式的值,则执行解密操作。具体代码如下: /** * @author li.hzh * @date 2017-04-10 13:46 */ @Slf4j pu...
Spring XD on Yarn在使用过程中发现不论是YarnClient还是AppMaster对Yarn HA的支持都不好。在Yarn的RM重启或切换的情况下,YarnClient必须修改配置文件中的RM地址才可以继续使用,即使在配置文件中配置了Yarn HA的相关配置也不生效。而AppMaster同样会因为长时间监测不到心跳而被Yarn Kill掉,导致XD服务挂掉。 因此,此调研的目...
SpringXD on Yarn支持Container分组。可以更好的控制admin和container分配。 控制组内成员 以组单位整体控制生命周期 动态创建组 重启失败的容器 实际上,XD on Yarn有内置分组admin和container。结合例子使用: 查看分组列表: bin/xd-yarn clustersinfo -a application_...
配置Spring Flo可在SpringXD的admin-ui页面提供拖拽式的组合job的定义。 从Pivotal官方下载Flo for XD 1.0.1版本 https://network.pivotal.io/products/p-spring-flo 解压flo-spring-xd-admin-ui-client-1.3.1.RELEASE.zip unzip flo-spr...
SpringXD中的Job实际即为Spring Batch中的Job,因此我们先按照Spring Batch的规范开发一个简单的Job。 项目依赖: <dependencies> <dependency> <groupId>org.springframework.batch</groupId> ...
Spring XD可以on yarn运行。 下载on yarn运行包并解压 wget http://repo.spring.io/release/org/springframework/xd/spring-xd/1.3.1.RELEASE/spring-xd-1.3.1.RELEASE-yarn.zip unzip spring-xd-1.3.1.RELEASE-yarn.zip 部...
Spring XD有两种运行模式:单机和分布式模式。这里关注分布式模式的部署和运行时特点。 分布式集群组件 Spring XD分布式环境包含以下组件: Admin 管理节点。管理Stream和Job的配置和发布,提供REST接口等。 Container 运行流式任何和批量任务的节点,部署在独立的主机上。 Zookeeper 管理XD集群的运行时环境 Spring ...
Scala做为支持函数式编程的语言,函数自然是其核心的特性,因此笔者对函数部分的学习自然会更加认真细致一些。但也仅仅是基础部分。 函数基础 先看一段代码: package com.coderli.scala.lab class FuntionDemo { /** * 函数声明 * * @param a * @param b * @ret...
上手学习Scala语言。先熟悉一下语法。对于Scala笔者也是完全的新手,对scala的设计思想和实现原理没有太多了解。错误在所难免,还望发现后不吝指教。 Hello World 基础环境配置直接利用IntelliJ提供的Scala插件,会自动下载Scala开发包并配置好开发环境。直接从我们熟悉的“Hello world”开始对Scala的认知过程。 /** * Scala 基...