其旨在打造一个集应用开发、大数据存储、处理、分布式计算、自动化部署的无节点微服务集中开发与运行平台,以响应业务的快速变动,知足系统对大数据,大并发与开发效率的需求;mysql
平台设计以数据为核,以groovy脚本为基础,经过提供api、异步消息处理、调度等基础构件来支持应用的快速开发;redis
核心是经过整合现有开源项目来实现的,其主要用到的技术栈包括:spring cloud, zookeeper, kafka, elasticsearch, mysql, kudu(hadoop系列), fastdfs,redis, quartz, maxwell, groovy, activitiy,couchdb等。spring
其对应一个微服务应用,一个项目定义了一个应用的边界,每一个项目有惟一的代码与请求上下文路径,全部资源,接口,调度,通道或触发器都必需归属一个项目,项目与项目之间的调用须要受权。sql
其对应项目下的一个模块,每一个模块能够由一系列的节点组成,方便进行管理。数据库
资源定义了项目中能够使用的数据库,消息,缓存,文件存储等服务,项目资源只能引用平台上配置的全局资源,在后续的api等脚本中,能够经过资源脚本对象对资源进行操做。api
计划支持的资源类型:mysql,oracle,kudu,es(elasticsearch),redis,kafka,filestore,couchdb缓存
restapi定义了项目对外提供的rest接口;其经过urlmapping来映射外部访问地址,urlmapping为ant表达式,例如:/foo/**或/foo/*/bar安全
rest接口能够绑定受权,你实现权限验证;rest接口也能够支持mockscript,实现mock;支持经过docapi来指定接口文档。并发
本地接口,主要用于在项目内定义一些公共方法,以便其它脚本使用,内部接口能够经过项目脚本对象的call方法来调用,例如:def robj = prj.call('foo', name:'abc');oracle
过滤器用于拦截请求,其分为项目filter与全局filter
项目filter只能对当前项目的restapi或filter进行拦截,其经过urlmapping来指定拦截路径。
全局filter能够拦截全部项目的restapi或filter进行拦截,项目中如须要配置全局filter必需得到管理员为其配置的“全局filter"定义的受权。
通道主要用于异步处理,其对应一个kafka的topic,在脚本中能够经过prj.sendChannel('foo', 'valuestr')的方式触发channel脚本的执行。
channel默认是有序单队列的,若是须要支持无序并发处理,请将配置的hostnum设置大于1,考虑到资源占用,暂时最高不能大于100。
全局通道主要用于向其它项目广播,例如在产品主数据修改后,联采,交易,结算等都须要同步数据。
其它项目如须要监听当前通道,须要经过allowPullProjects为其它项目受权,其它项目能够使用publicreciver来监听其它项目的广播。
其它项目如须要发送数据到当前通道,能够经过prj.sendPublicChannel('project', 'channelname', 'valuestr')来实现,同时当前通道须要设置allowPushProjects来受权。
用于接收全局广播,其对应publicchannel
监听数据库的变更,当前只支持MYSQL;
用于定义项目中的调度,经过定义cron表达式来指定执行周期。
用于定义elasticsearch的索引库,其能够经过copyfromtable来同步某个数据库表的结构;
dataset变动后须要重建索引才会生效。
用于定义数据库资源中的表。
用于定义数据库资源中的初始化数据。
——————————————
推荐阅读: