• 说框架设计思路


         其旨在打造一个集应用开发、大数据存储、处理、分布式计算、自动化部署的无节点微服务集中开发与运行平台,以响应业务的快速变更,满足系统对大数据,大并发与开发效率的需求;

            平台设计以数据为核,以groovy脚本为基础,通过提供api、异步消息处理、调度等基础构件来支持应用的快速开发;

            核心是通过整合现有开源项目来实现的,其主要用到的技术栈包括:spring cloud, zookeeper, kafka, elasticsearch, mysql, kudu(hadoop系列), fastdfs,redis, quartz, maxwell, groovy, activitiy,couchdb等。

    核心概念介绍

    项目 - project

    其对应一个微服务应用,一个项目定义了一个应用的边界,每个项目有唯一的代码与请求上下文路径,所有资源,接口,调度,通道或触发器都必需归属一个项目,项目与项目之间的调用需要授权。

    模块 - module

    其对应项目下的一个模块,每个模块可以由一系列的节点组成,方便进行管理。

    资源 - resource

    资源定义了项目中可以使用的数据库,消息,缓存,文件存储等服务,项目资源只能引用平台上配置的全局资源,在后续的api等脚本中,可以通过资源脚本对象对资源进行操作。

    计划支持的资源类型:mysql,oracle,kudu,es(elasticsearch),redis,kafka,filestore,couchdb

    外部接口 - restapi

    restapi定义了项目对外提供的rest接口;其通过urlmapping来映射外部访问地址,urlmapping为ant表达式,例如:/foo/**或/foo/*/bar

    rest接口可以绑定授权,你实现权限验证;rest接口也可以支持mockscript,实现mock;支持通过docapi来指定接口文档。

    本地接口 - localapi

    本地接口,主要用于在项目内定义一些公共方法,以便其它脚本使用,内部接口可以通过项目脚本对象的call方法来调用,例如:def robj = prj.call('foo', name:'abc');

    项目过滤器  - filter

    过滤器用于拦截请求,其分为项目filter与全局filter

    项目filter只能对当前项目的restapi或filter进行拦截,其通过urlmapping来指定拦截路径。

    全局过滤器 - globalfilter

    全局filter可以拦截所有项目的restapi或filter进行拦截,项目中如需要配置全局filter必需获得管理员为其配置的“全局filter"定义的授权。

    项目通道 - channel

    通道主要用于异步处理,其对应一个kafka的topic,在脚本中可以通过prj.sendChannel('foo', 'valuestr')的方式触发channel脚本的执行。

    channel默认是有序单队列的,如果需要支持无序并发处理,请将配置的hostnum设置大于1,考虑到资源占用,暂时最高不能大于100。

    全局通道 - publicchannel

    全局通道主要用于向其它项目广播,例如在产品主数据修改后,联采,交易,结算等都需要同步数据。

    其它项目如需要监听当前通道,需要通过allowPullProjects为其它项目授权,其它项目可以使用publicreciver来监听其它项目的广播。

    其它项目如需要发送数据到当前通道,可以通过prj.sendPublicChannel('project', 'channelname', 'valuestr')来实现,同时当前通道需要设置allowPushProjects来授权。

    全局消息处理器  - publicreciver

    用于接收全局广播,其对应publicchannel

    触发器 - trigger

    监听数据库的变动,当前只支持MYSQL;

    调度 - schedule

    用于定义项目中的调度,通过定义cron表达式来指定执行周期。

    ES数据集 - dataset

    用于定义elasticsearch的索引库,其可以通过copyfromtable来同步某个数据库表的结构;

    dataset变更后需要重建索引才会生效。

    数据库表 - table

    用于定义数据库资源中的表。

    数据初始化 - datainit

    用于定义数据库资源中的初始化数据。

    ——————————————

    推荐阅读:

    Kafka 入门教程

    你可以不懂但一定要知道的代码审查 Code Review

    ELK Stack 实战教程

    filebeat+kafka+strom+logstash+es 舆情采集系统

    安全漏洞扫描,风险原因分析及解决方案

  • 相关阅读:
    IE浏览器版本的判断
    Ajax中的同步和异步
    linq之多表连接
    C#中const 和 readonly 修饰符的用法详解
    sql中的分页实现
    JS中的编码,解码类型及说明
    HttpContext概念讲解
    VS语法书写提示
    c#版本23个设计模式
    批处理 使用默认浏览器 打开html文件
  • 原文地址:https://www.cnblogs.com/Javame/p/10308358.html
Copyright © 2020-2023  润新知