




已阅读5页,还剩58页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
。AsiaInfo 项目文档事件中心概要设计说明书编 写编写 时间2017-1-11审 核审核者姓名(及其职务)审核 时间审 批审批者姓名(及其职务)审批 时间文档管理页码共63页修订次数共1次版本V1.0编号亚信科技(中国)有限公司版权所有文档中的全部内容属亚信科技(中国)有限公司所有,未经允许,不可全部或部分发表、复制、使用于任何目的。1。文档修订摘要日期修订号描述著者审阅者批准人/日期3。目录AsiaInfo 项目文档1第1章引言31.1编写目的31.2阅读对象31.3术语与缩写解释3第2章系统概述52.1系统描述52.2设计思路52.3系统外部关系图52.4非功能性需求概述6第3章总体设计83.1总体功能83.2整体架构93.3分层设计11第4章系统核心模型124.1事件中心模型124.2事件中心权限模型134.3系统关键表144.3.1输入事件模板(AICEP_IN_EVENT_TEMPLATE)154.3.2属性定义表(AICEP_ATTR_DEF)164.3.3事件模板属性 (AICEP_TEMPLATE_ATTR_REL)164.3.4系统表(AICEP_ACCESS_SYS)164.3.5模板目录表(AICEP_TEMPLATE_CATALOG)174.3.6事件模板与目录的关系表(AICEP_TEMPLATE_CATALOG_REL)174.3.7规则配置表(AICEP_RULE_CONF)184.3.8异常编码表(AICEP_EXCEPTION_CODE)184.3.9事件模板和规则关系表(AICEP_TEMPLATE_RULE_REL)184.3.10通道表(AICEP_CHANNEL)【实际存放主题相关信息】194.3.11通道扩展表(技术参数调整)(AICEP_CHANNEL_ATTR)194.3.12主题表(AICEP_TOPIC_DEF)【需删除】194.3.13输入适配器主动获取数据用(数据源表) (AICEP_IN_ADAPTER)204.3.14适配器属性配置表(纵表)(AICEP_ADAPTER_ATTR)204.3.15规则通道关系表(用于订阅)(AICEP_RULE_CHANNEL_REL)204.3.16输出事件订阅表(AICEP_EVENT_SUBSCRIBE)214.3.17系统接入IP关系表(AICEP_ACCESS_IP)214.3.18租户表(AICEP_MULTI_TENANCY)214.3.19输出属性表 (AICEP_OUT_ATTR)214.3.20静态数据表 (AICEP_STATIC)224.3.21系统与通道关系表 (AICEP_SYS_CHANNEL)【表字段待确定】22第5章系统关键设计235.1配置视图235.2事件在线发布235.3复杂事件分布式处理245.4事件处理过载保护255.5伸缩性设计265.6高可用设计265.7事件接入安全275.8事件的热发布27第6章事件中心系统设计286.1系统设计286.2系统处理流程286.2.1事件配置286.2.2事件处理346.2.3监控管理486.2.4多租户管理496.2.5权限管理496.2.6接入接出管理496.3时序图526.3.1事件配置536.3.2事件处理576.4用例图586.4.1事件配置586.5出错信息60606060。第1章 引言1.1 编写目的本文档详细描述了事件中心产品的总体概述、设计目标、周边系统边界、功能需求、非功能需求及接口实现等。文档用途如下:该文档主要提供了以下几个方面内容: 本文档可作为事件开发的依据; 本文档可作为事件中心产品测试验收标准。1.2 阅读对象本文档适合事件中心产品设计和开发人员,设计和开发中使用到事件处理或者计划使用事件处理的相关人员。也适合于对事件处理以及事件驱动感兴趣的相关人员,本文档的阅读对象以及角色如下: 核心产品设计工程师 核心产品开发工程师 核心产品测试工程师 解决方案设计和开发工程师 本地实施工程师 其他对事件处理感兴趣的相关人员1.3 术语与缩写解释缩写、术语解 释CEP复杂事件处理JMSJava Message ServiceHTTP超文本传输协议JSONJavaScript Object Notation缩写、术语解 释ESPER开源的复杂事件处理和事件流处理应用程序组件EPLEvent Processing Language事件接入方向统一事件中心的提供数据源接入的对象,可为某一渠道的某一系统事件订阅方向统一事件中心的提交订阅事件订阅申请的对象,可为某一渠道的某一系统事件模板实现对事件的定义,包含事件ID、事件来源、事件属性、事件分类、事件触发规则等。事件持久化对输入事件源的落地存储,用于事件状态同步,异常反查等,存储周期可配置。第2章 系统概述2.1 系统描述事件中心是针对海量实时数据的复杂事件处理场景设计的。事件中心基于流计算处理引擎作为底层支撑,采用分布式集群部署,支持多事件源的接入、事件规则的创建、事件规则解析处理以及结果数据的实时输出。事件中心采用主流标准的接口协议,满足与外围系统的数据交互: 事件中心可与亚信自有的其他业务系统、平台进行数据交互; 事件中心可与其他厂商系统进行交互,包括与其他厂商承建的电信运营商业务系统的数据交互,以及与其他行业客户的业务系统的数据交互。2.2 设计思路事件中心作为独立产品,应具备如下特性: 产品可独立部署,不依赖于其他业务系统; 产品具有良好的可扩展性,设计时考虑分布式及高可用性; 产品的输入输出采用标准接口,接口协议支持目前主流的标准协议; 产品支持多租户用户管理,以租户的方式实现对用户或用户组的权限管理,以达到资源和数据权限的管理控制; 产品提供软件开发工具包,方便外围系统开发集成人员快速掌握产品的集成和使用; 产品支持对事件订阅、查询及输入输出的界面配置,实现良好的用户交互; 产品有安全控制、异常处理等功能设计,保证运行时的高可靠性。2.3 系统外部关系图事件中心外界边界关系如图:1. 事件中心可以接收不同渠道数据源的数据: 内部渠道:如网厅、短厅等不同渠道、不同系统的数据。 外部渠道:其他厂家或其他行业的业务系统。 可以与能力开放平台对接,进行业务服务的调用/反馈。 2. 各个渠道可以对输出的事件进行订阅。 3. 特殊说明:与规则中心的关系: 事件中心配置事件规则时支持两种类型的规则:EPL规则与统一规则中心提供的规则。 配置事件对应的规则时,通过界面展现规则中心已配置的规则列表,用于配置选择。 新增事件规则原则:输入事件的元数据满足规则执行时,直接通过事件中心配置实现;不满足时,通过评估确定是否可以由规则中心实现,否则,要求事件接入方补充元数据; 事件中心执行规则时,如果规则归属于统一规则则调用规则中心提供的服务进行规则校验、执行,规则中心执行后返回结果给事件中心,事件中心通过结果做相应的处理。2.4 非功能性需求概述本系统设计和开发,要充分考虑系统的可靠性、安全性、可管理性、性能保障、可扩展性、可维护性和兼容性,具体要求如下:可靠性:主要通过采用双中心部署,来达到系统的高可靠性要求;同时系统设计时应用软件具有一定的障碍处理和异常恢复能力。安全性:安全系统由系统管理员对系统进行实时监控,特别是网络设计中要设置防火墙;同时软件部分提供严密的操作权限控制和安全管理措施。可管理性:软件设计尽量采用参数化设计,使系统能够便于随着主要业务需求的变化做出相应的调整。性能保障:本系统支持系统平台的云化部署和资源横向扩展,对页面、接口、后台数据采集的性能要求参考中国移动集团规范。可靠性:本系统通过集群和负载均衡,实现web服务器的页面可靠性;同时,通过软硬件方式实现接口可靠性和数据可靠性。容灾:本系统支持双中心方式部署。可扩展性:本系统通过云化部署架构(x86),支持服务实例的动态扩展;支持通用系统功能的可更新和扩展性。可维护性:本系统通过数据采集和告警模块支持对自身运行情况的监控和告警,通过灰度发布技术支撑业务功能的在线发布。安全:在软件层面,采用认证、密钥、加密协议、时效限制等保障生产过程的安全,对代码存放、访问和事后审计提供支持;在接口层面,通过技术上的安全控制,实现接口安全。在物理层面,通过支持双中心实现容灾。在服务器层面,应用服务器主机的操作系统在安全性上应该能够达到C2安全级别,对系统能提供有效的安全保密措施。在重要关键服务器的网段上设立防火墙。核心应用系统服务器主机全部采用双机热备方式,磁盘阵列采用RAID方式对数据进行存储。在数据层面支撑数据库和其它文件只能被授权用户访问和修改,防止在本地存储或者网络传输的数据受到非法篡改、删除和破坏。兼容性:兼容国际、国内的相关标准技术,采用规范的接口和协议,保证系统各组成部分的协同一致。第3章 总体设计3.1 总体功能事件中心主要是对多事件源进行处理,引入流计算、分布式内存等数据处理技术,接收各类实时事件源的基础数据并进行解析,同时对实时事件进行累积计算,最终将实时复杂事件数据加载到分布式内存中,进行符合规则的数据匹配,支持多事件源的接入、规则的创建、规则解析处理以及结果数据的实时输出。按照功能进行划分,主要包括以下几个处理模块:接入管理、事件配置、事件处理、权限管理、监控管理、多租户管理等。事件配置模块包括事件注册、事件订阅管理、事件下线、事件发布等功能,主要通过界面操作实现相关配置;监控管理实现对系统关键性能指标的监控,分为三种类别分别为:系统监控、服务监控、应用监控。系统监控用于监控集群节点的CPU、内存等指标。服务监控包括Kafka服务监控、Zookeeper服务监控、Redis服务监控、Storm服务监控。应用监控包括事件处理过程中的过程数据,如:平均处理时间、已处理数据量、处理是否延时等;接入接出管理实现对接入事件中心的渠道、系统、主机IP的配置管理;权限管理包括用户管理、菜单管理、角色管理、用户权限管理配置等功能;多租户管理包括多租户用户管理和租户用户资源管理,通过租户模式实现数据及计算、存储资源权限的控制;事件处理主要包括接入安全控制、接入适配、输入事件预处理、事件接收、事件规则运算、事件规则触发、事件持久化扩展、输出报文转换、事件输出、异常记录等功能。3.2 整体架构事件中心整体架构充分考虑以大数据为背景的前提进行设计,在事件处理过程中采用读写分离,数据不落地的方式,整个处理过程在内存中完成。各服务组件功能如下:Kafka对事件的存储支持负载均衡和横向扩展能力,并提供了高效可靠的消息传递机制进行平台无关的数据交流,通过提供消息传递和消息排队模型,在分布式环境下扩展进程间的通信。Storm分布式实时处理框架,能够实现业务的分布式实时处理,保障集群的高可用和事件处理的横向扩展。Esper复杂事件处理引擎,能够支持事件的动态加载处理、高吞吐量,但因为不支持分布式所以需与Storm结合。Groovy用于Java虚拟机的一种敏捷的动态脚本语言,主要用于对Esper的补充,适用于Esper满足不或比较复杂的业务应用场景处理,支持动态加载。Cgroup实现了对事件中心各服务进程的资源隔离,主要用于隔离CPU和内存资源。Zookeeper为分布式应用提供一致性服务,提供的功能包括:配置维护、名字服务、分布式同步、组服务等,协调Kafka数据的生成和消费,Storm主节点与从节点间的事件处理。Redis分布式数据缓存:提供了对中间业务数据缓存的功能,并且所有缓存的数据在磁盘都有保存.3.3 分层设计第4章 系统核心模型4.1 事件中心模型如图: 4.2 事件中心权限模型如图:4.3 系统关键表关键表名用途AICEP_IN_EVENT_TEMPLATE 输入事件模板规范输入事件源,为数据提供统一格式AICEP_ATTR_DEF属性定义表提供事件中心所有属性的配置管理。包括属性归属目录属性标识。AICEP_TEMPLATE_ATTR_REL事件模板属性提供事件模板与属性之间映射关系的配置管理。包括属性映射标识事件模板标识等信息。AICEP_RULE_CHANNEL_REL规则通道关系表规则通道关系用于配置规则与通道的关系,AICEP_EVENT_SUBSCRIBE(输出事件订阅表)将事件输出到消息中间件,同一事件可以按配置分配到不同的通道下。订阅者可对输出事件按事件模板编号、分类进行订阅。AICEP_ACCESS_IP(系统接入IP关系表)对接入系统的IP的进行验证管理。可以通过配置对其IP进行新增修改删除管理。AICEP_MULTI_TENANCY(租户表)事件中心提供对不同租户的用户相关信息进行配置、管理。包括租户标识、名称、级别、描述等信息。AICEP_TEMPLATE_RULE_REL(事件模板和规则关系表)事件中心提供对事件模板和规则关系的配置管理。通道表(AICEP_CHANNEL)事件中心提供对不同通道的相关信息进行配置、管理。包括通道标识名称通道归属主题等信息。通道扩展表(技术参数调整)(AICEP_CHANNEL_ATTR)对通道表的扩展,在通道数量线程数等参数的配置管理。主题表(AICEP_TOPIC_DEF)事件中心提供对不同订阅者订阅主题的配置管理。包括主题标识名称类别等信息。输入适配器主动获取数据用(数据源表)(AICEP_IN_ADAPTER)事件中心提供对输入适配器的配置管理。包括接入方式 适配器类型 适配器实现类等信息适配器属性配置表(AICEP_ADAPTER_ATTR)事件中心提供对适配器属性的配置管理。包括适配器属性标识适配器ID等信息。AICEP_TEMPLATE_CATALOG(模板目录表)事件中心提供模板目录的配置管理。包括目当标识目录名称目录类别所属域所属系统等信息。AICEP_TEMPLATE_CATALOG_REL(事件模板与目录的关系表)事件中心提供模板与目录关系的配置管理。一个模板只能归属于一个目录,一个目当可以拥有多个模板。AICEP_RULE_CONF(规则配置表)配置EPL语句,一个事件可以匹配多条规则,反之,一条规则可以被多个事件关联。AICEP_EXCEPTION_CODE(异常编码表)捕获、处理统一事件中心运行过程的各种错误,并使用错误代码标识。异常编码表中进行配置,对其新增、修改、删除。AICEP_OUT_ATTR(输出属性表)配置规则规则通道事件订阅属性之间的关系AICEP_STATIC(静态表)配置公共静态数据4.3.1 输入事件模板(AICEP_IN_EVENT_TEMPLATE)序号列名描述类型主键外键1TEMPLATE_ID模板标识(流水号ID)NUMBER(12)2CHANNEL_ID通道IDNUMBER(12)3TEMPLATE_CODE模板编码(归属域+归属系统+自增序列号) StringVARCHAR2(32)4TEMPLATE_NAME模板名称 StringVARCHAR2(64)5TEMPLATE_DESC模板描述 StringVARCHAR2(256)6ADAPTER_ID接入适配器(JMS)NUMBER(12)7CREATOR创建者VARCHAR2(32)8MODIFIER修改者VARCHAR2(32)9DOMAIN_CODE归属域 StringVARCHAR2(32)10SYS_ID归属系统 StringNUMBER(12)11CREATE_DATE创建时间 dateDATE12MODIFY_DATE修改时间 dateDATE13STATE_MODIFY_DATE状态修改时间 dateDATE14STATE状态(新建、待上线、上线、下线)状态流程图NUMBER(1)15MESSAGE _TYPE报文类型(xml json)VARCHAR2(32)4.3.2 属性定义表(AICEP_ATTR_DEF)序号名称描述类型主键外键1ATTR_ID属性IDNUMBER(12)2CATALOG_ID属性归属目录NUMBER(12)3ATTR_CODE属性编码VARCHAR2(32)4ATTR_NAME属性名称VARCHAR2(32)5ATTR_TYPE属性类型VARCHAR2(32)6ATTR_REFER_VALUE属性参考值VARCHAR2(32)7ATTR_DESC属性描述VARCHAR2(256)8CREATOR创建者VARCHAR2(32)9MODIFIER修改者VARCHAR2(32)10CREATE_DATE创建时间 dateDATE11MODIFY_DATE修改时间DATE12STATE状态NUMBER(1)4.3.3 事件模板属性 (AICEP_TEMPLATE_ATTR_REL)序号名称描述类型主键外键1TEMPLATE_ATTR_REL_ID模板属性ID(流水ID)NUMBER(12)2TEMPLATE_ID模板IDNUMBER(12)3ATTR_ID属性IDNUMBER(12)4DOMAIN_CODE归属域 StringVARCHAR2(32)5CREATOR创建者VARCHAR2(32)6MODIFIER修改者VARCHAR2(32)7CREATE_DATE创建时间 dateDATE8MODIFY_DATE修改时间 dateDATE9STATE状态(生效、失效)NUMBER(1)10ATTR_CODE属性编码VARCHAR2(32)11ORG_ATTR_CODE原始属性编码(外围系统的属性编码VARCHAR2(32)4.3.4 系统表(AICEP_ACCESS_SYS)序号名称描述类型主键外键1SYS_ID系统ID(流水ID)NUMBER(12)2TENANCY_ID租户IDNUMBER(12)3SYS_CODE系统编码VARCHAR2(32)4SYS_NAME系统名称VARCHAR2(64)5DOMAIN_CODE所属域VARCHAR2(32)6SYS_CONTACT联系人VARCHAR2(64)7SYS_TEL联系电话VARCHAR2(32)8SYS_MAILBOX邮箱VARCHAR2(64)9CREATOR创建者VARCHAR2(32)10MODIFIER修改者VARCHAR2(32)11CREATE_DATE创建时间DATE12MODIFY_DATE修改时间DATE4.3.5 模板目录表(AICEP_TEMPLATE_CATALOG)序号名称描述类型主键外键1CATALOG_ID目录ID(流水ID)NUMBER(12)2CATALOG_CODE目录编码VARCHAR2(32)3CATALOG_NAME目录名称VARCHAR2(64)4CATALOG_DESC描述VARCHAR2(256)5CATALOG_TYPE目录类别NUMBER(1)6PARENT_CATALOG_ID父目录IDNUMBER(12)7DOMAIN_CODE所属域VARCHAR2(32)8SYS_ID所属系统NUMBER(12)9CREATOR创建者VARCHAR2(32)10MODIFIER修改者VARCHAR2(32)11CREATE_DATE创建时间DATE12MODIFY_DATE修改时间DATE4.3.6 事件模板与目录的关系表(AICEP_TEMPLATE_CATALOG_REL)序号名称描述类型主键外键1TEMPLATE_CATALOG_REL_ID模版与目录关系ID(流水ID)NUMBER(12)2TEMPLATE_ID事件模版IDNUMBER(12)3CATALOG_ID目录IDNUMBER(12)4CREATOR创建者VARCHAR2(32)5MODIFIER修改者VARCHAR2(32)6CREATE_DATE创建时间DATE7MODIFY_DATE修改时间DATE4.3.7 规则配置表(AICEP_RULE_CONF)序号名称描述类型主键外键1RULE_ID规则ID(流水ID)NUMBER(12)2RULE_NAME规则名称VARCHAR2(32)3RULE_DESC规则描述VARCHAR2(256)4RULE_PRIORITY规则优先级NUMBER(1)5RULE_STATEMENT规则语句(如果规则归属是0,存的是规则中心的标识,如果是1,存的是事件中心的EPL语句)VARCHAR2(512)6RULE_TYPE规则类型(简单、简单连续、复杂、复杂连续)NUMBER(1)7RULE_SOURCE规则来源 事件中心 0 规则中心 1NUMBER(1)8STATE规则状态(生效、失效)NUMBER(1)9CREATOR创建者VARCHAR2(32)10MODIFIER修改者VARCHAR2(32)11CREATE_DATE创建时间DATE12MODIFY_DATE修改时间DATE4.3.8 异常编码表(AICEP_EXCEPTION_CODE)序号名称描述类型主键外键1EXCEPTION_CODE异常编码VARCHAR2(32)2EXCEPTION_DESC异常描述VARCHAR2(256)3EXCEPTION_TYPE异常类型NUMBER(1)4STATE状态NUMBER(1)5CREATE_DATE创建时间DATE4.3.9 事件模板和规则关系表(AICEP_TEMPLATE_RULE_REL)序号名称描述类型主键外键1TEMPLATE_RULE_REL_ID流水IDNUMBER(12)2TEMPLATE_ID事件模板IDNUMBER(12)3RULE_ID规则IDNUMBER(12)4CREATOR创建者VARCHAR2(32)5MODIFER修改者VARCHAR2(32)6CREATE_DATE创建时间DATE7MODIFY_DATE修改时间DATE4.3.10 通道表(AICEP_CHANNEL)【实际存放主题相关信息】序号名称描述类型主键外键1CHANNEL_ID通道IDNUMBER(12)2CHANNEL_CODE通道编码VARCHAR2(32)3CHANNEL_NAME通道名称VARCHAR2(64)4CHANNEL_DESC通道描述VARCHAR2(256)5CREATOR创建者VARCHAR2(32)6MODIFER修改者VARCHAR2(32)7CREATE_DATE创建时间DATE8MODIFY_DATE修改时间DATE9CHANNEL_TPYE通道类型NUMBER(1)4.3.11 通道扩展表(技术参数调整)(AICEP_CHANNEL_ATTR)序号名称描述类型主键外键1CHANNEL_ATTR_ID通道属性IDNUMBER(12)2CHANNEL_ID通道IDNUMBER(12)3ATTR_CODE属性编码VARCHAR2(32)4ATTR_VALUE属性值VARCHAR2(64)4.3.12 主题表(AICEP_TOPIC_DEF)【需删除】序号名称描述类型主键外键1TOPIC_ID主题idNUMBER(12)2TOPIC_NAME主题名VARCHAR2(64)3TOPIC_TYPE类别(输入、输出)NUMBER(1)4TOPIC_DESC主题描述VARCHAR2(256)5CREATOR创建者VARCHAR2(32)6MODIFER修改者VARCHAR2(32)7CREATE_DATE创建时间DATE8MODIFY_DATE修改时间DATE4.3.13 输入适配器主动获取数据用(数据源表) (AICEP_IN_ADAPTER)序号名称描述类型主键外键1ADAPTER_ID适配器IDNUMBER(12)2ACCEPT_TYPE接入方式(主动、被动)NUMBER(1)3PROTOCOL协议类型(ftp、http、db)VARCHAR2(32)4ADAPTER_CLASS_IMPL适配器实现类VARCHAR2(256)5ADAPTER _DESC描述VARCHAR2(256)6CREATOR创建者VARCHAR2(32)7MODIFER修改者VARCHAR2(32)8CREATE_DATE创建时间DATE9MODIFY_DATE修改时间DATE10STATE状态NUMBER(1)4.3.14 适配器属性配置表(纵表)(AICEP_ADAPTER_ATTR)序号名称描述类型主键外键1ADAPTER_ATTR_ID适配器属性IDNUMBER(12)2ADAPTER_ID适配器IDNUMBER(12)3ATTR_CODE属性编码VARCHAR2(32)4ATTR_VALUE属性值VARCHAR2(128)5STATE状态NUMBER(1)4.3.15 规则通道关系表(用于订阅)(AICEP_RULE_CHANNEL_REL)序号名称描述类型主键外键1RULE_CHANNEL_REL_ID流水IDNUMBER(12)2RULE_ID规则ID(流水id)NUMBER(12)3CHANNEL_ID通道IDNUMBER(12)4MESSAGE_TYPE报文类型(xml json)VARCHAR2(32)5CREATOR创建者VARCHAR2(32)6MODIFER修改者VARCHAR2(32)7CREATE_DATE创建时间DATE8MODIFY_DATE修改时间DATE4.3.16 输出事件订阅表(AICEP_EVENT_SUBSCRIBE)序号名称描述类型主键外键1EVENT_SUB_ID事件订阅ID(流水ID)NUMBER(12)2CHANNEL_ID通道IDNUMBER(12)3SYS_ID系统IDNUMBER(12)4CREATOR创建者Varchar2(32)5MODIFIER修改者Varchar2(32)6CREATE_DATE创建时间DATE7MODIFY_DATE修改时间DATE8STATE状态NUMBER(1)4.3.17 系统接入IP关系表(AICEP_ACCESS_IP)序号名称描述类型主键外键1ACCESS_ID接入标识(流水ID)NUMBER(12) 2SYS_ID系统IDNUMBER(12)3ACCESS_IP允许接入IP地址VARCHAR2(256)4CREATOR创建者VARCHAR2(32)5MODIFIER修改者VARCHAR2(32)6CREATE_DATE创建时间DATE7MODIFY_DATE修改时间DATE4.3.18 租户表(AICEP_MULTI_TENANCY)序号名称描述类型主键外键1TENANCY_ID租户标识(流水ID)NUMBER(12) 2TENANCY_CODE租户编码VARCHAR2(32)3TENANCY_NAME租户名称VARCHAR2(32)4DESC描述VARCHAR2(256)5CREATOR创建者VARCHAR2(32)6MODIFIER修改者VARCHAR2(32)7CREATE_DATE创建时间DATE8MODIFY_DATE修改时间DATE4.3.19 输出属性表 (AICEP_OUT_ATTR)序号名称描述类型主键外键1EVENT_SUB_ATTR_ID事件订阅属性IDNUMBER(12) 2RULE_CHANNEL_REL_ID规则通道关系IDNUMBER(12)3RULE_ID规则IDNUMBER(12)4ATTR_ID属性IDNUMBER(12)5CREATOR创建者VARCHAR2(32)6MODIFIER修改者VARCHAR2(32)7CREATE_DATE创建时间DATE8MODIFY_DATE修改时间DATE9STATE状态NUMBER(1)4.3.20 静态数据表 (AICEP_STATIC)序号列名描述类型主键外键1STATIC_TYPE静态数据类型VARCHAR(32)2STATIC_CODE静态数据编码VARCHAR(32)3STATIC_VALUE静态数据值VARCHAR(32)4CREATE_DATE创建时间DATE5MODIFY_DATE修改时间DATE6DESC描述VARCHAR(256)7STATE状态NUMBER(1)4.3.21 系统与通道关系表 (AICEP_SYS_CHANNEL)【表字段待确定】序号名称描述类型主键外键1SYS_CHANNEL_REL_ID流水IDNUMBER(12)2SYS_ID规则ID(流水id)NUMBER(12)3CHANNEL_ID通道IDNUMBER(12)4CREATOR创建者VARCHAR2(32)5MODIFER修改者VARCHAR2(32)6CREATE_DATE创建时间DATE7MODIFY_DATE修改时间DATE第5章 系统关键设计事件中心通过引入开源消息中间件技术解决海量事件数据的接入,并内嵌实现事件规则的处理形成事件中心的事件处理中间件。充分利用消息中间件的特性解决事件接入的分布式、高可用以及稳定性。通过对消息中间件改造,解决事件消息接入的安全控制等功能。通过Zookeeper分布式协调服务解决事件处理引擎的高可用。通过引入分布式缓存框架实现事件处理引擎对简单事件、简单连续事件、复杂事件、复杂连续事件4类事件的分布式处理,解决事件处理的高可用。5.1 配置视图配置视图是以用户为主,面向最终用户提供的可视化的配置界面,由用户根据实际的业务需要自行对事件或规则进行配置,最终达到在系统运行中,动态的添加、修改事件和规则,快速的支持不同的业务需求,无须产品二次开发。具体包括:1. 事件模板配置:事件中心支持事件模板的动态添加。当外围系统有新的事件需要接入时,可以通过事件中心提供的事件模板配置界面对需要接入的事件进行动态新增;2. 事件属性配置:事件中心支持事件属性的动态添加。当外围系统的实际情况发生改变,需要对已经接入事件中心的事件属性进行新增或修改时,可以通过事件中心提供的事件属性配置界面对需要修改的事件进行属性的动态新增或修改操作;3. 事件规则配置:事件中心支持事件规则的动态添加。事件中心针对已经生效的事件提供可视化组件式的规则配置,操作人员可以根据业务需要方便的对规则进行随意组合,避免了用户直接编写规则语句。5.2 事件在线发布不同用户对输出事件的需求不同,规则要求也不同,所以事件属性及规则变更将会相对频繁,但是生产环境对系统稳定性及业务连续性的要求决定了不可能通过频繁的启停服务来生效新的事件和规则。针对这类问题,事件中心需要对新配置的事件和规则采用热发布的方式,可以在不停止服务的前提下生效新配置的事件和规则,使事件和规则的生效方式更加灵活,时效性大大增强;减少系统启停次数,同时也降低了停止服务对业务连续性造成的影响。热发布具体实现机制如下:5.3 复杂事件分布式处理事件中心从消息中间件接收到事件(任务)后,需要计算执行任务所需资源(线程数)、检查集群各个节点状态(空闲、繁忙)、获取集群节点权重信息,再根据执行任务所需资源、集群节点状态及权重生成节点分配列表。再检查事件类型,若事件类型为原子事件,原子事件列表根据节点分配列表均匀随机分配,若事件类型为复合事件,对复合事件列表进行事件分组并进行分组分发,以保障同一组的事件被同一个集群节点处理。分布式实现流程图如下:5.4 事件处理过载保护事件处理过程中的过载保护由Storm框架提供支持,当Spout的处理能力大于后端Bolt处理能力时,中间的待处理的数据会因为堆积太多,会造成内存溢出。通过设置topology.max.spout.pending参数砝值,建立中间待处理数据的缓存区,当缓存区满了时,Spout会等待Bolt的处理。5.5 伸缩性设计系统支持分布式部署,实现应用部署的横向扩展,满足互联网系统架构的敏捷和弹性两大特点。初期只考虑实现人工模式,后续可增加实现定时模式、动态模式、健康模式。5.6 高可用设计 消息中间件高可用设计由于消息分布在各个broker上,一旦某个broker宕机,则该broker上的消息读写都会受到影响。所以rocketmq提供了master/slave的结构,salve从master同步数据,如果master宕机,则slave提供消费服务,但是不能写入消息,此过程对应用透明,由rocketmq内部解决。两个关键点:1.一旦某个broker master宕机,生产者和消费者感知受限于rocketmq的网络连接机制,默认情况下,最多需要30秒,这个时间可由应用设定参数来缩短时间。这个时间段内,发往该broker的消息都是失败的,而且该broker的消息无法消费,因为此时消费者不知道该broker已经挂掉。2.消费消费者得到master宕机通知后,转向slave消费,但slave不保证master的消息100%都同步过来了,因此会有少量的消息丢失。但是消息最终不会丢的,一旦master恢复,未同步过去的消息会被消费掉。 事件处理引擎高可用设计对应简单连续、复杂连续类型的事件通过解析其规则对运行中的中间状态,如计数等数值记录到统一的分布式缓存中,中间状态数据值修改通过分布式共享锁来解决连续事件的分布式处理以及高可用。5.7 事件接入安全通过改写消息中间件实现事件接入消息的安全控制。安全控制功能如下: 授信IP控制事件模板注册时提供接入方的IP地址列表,事件中心导入保存IP的授信列表。事件接入时,首先获取发送消息的客户端IP地址,校验是否在授信列表中,通过则接收事件,否则返回异常码。 预分配接入通道事件模板注册时,事件中心根据域或者系统分配接入通道,当事件接入时,校验事件模板标识与预先分配的通道标识是否匹配,通过则接收事件,否则返回异常码。5.8 事件的热发布 沙箱环境设计对新增的事件模板,事件中心提供沙箱环境用于模拟或联调测试、验证。当外围系统管理员对事件模板、事件规则注册完成后,事件模板状态为待上线,此状态下,事件中心通过测试界面模拟生成事件数据发送到沙箱环境中进行测试、运行、输出。当联调、验证测试通过后,事件中心管理员通过事件模板发布操作,通知生产运行环境加载事件模板、规则数据,实时生效。 事件模板、规则配置修改的热发布以及实时生效。事件处理运行环境启动时创建定时器,间隔扫描加载事件模板、规则配置存在修改的数据。实现事件模板的上下线、规则的上下线的实时生效。第6章 事件中心系统设计6.1 系统设计事件中心主要包括消息组件、事件处理组件、配置组件、监控组件、事件主动采集组件、日志组件。 组件描述消息组件:提供事件的统一接入以及安全校验。事件处理组件:主要提供事件的相关规则解析、处理以及输出。配置组件:主要提供统一事件中心相关配置的管理,包括:事件注册、订阅、上下线、权限管理等。监控组件:主要提供统一事件中心运行态的监控,包括:事件处理吞吐量、事件处理耗时、异常监控以及系统资源监控等。事件主动采集组件:主要通过定时主动从数据库获取事件源数据。日志组件:主要提供统一事件中心的配置及运行态的相关日志记录、分析及展示。6.2 系统处理流程6.2.1 事件配置事件配置是由事件中心向最终用户提供的统一可视化的配置界面,以最终用户为主,主要是对与事件相关的操作进行管理,如事件注册、事件发布、事件订阅、事件上下线等。事件中心根据外围系统的线下申请,给接入的外围系统(最终用户)分配账号,并赋予一定的权限。外围系统可以通过分配的账号登陆统一事件中心,进行相关操作。 事件注册用户通过事件中心分配的账号,登陆后进入事件注册的界面,即可根据实际的业务
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《唐代诗歌鉴赏方法与技巧的教学教案》
- 《物理力学基础概念:初二物理力学入门教案》
- 《中华文学经典:《红楼梦》文学赏析教学》
- 值得七年级作文600字7篇范文
- 青春词与古文风:高中文言文教学对比教案
- 摄影比赛活动方案
- 以核心素养为导向的初中历史故事讲解教案
- 公交公司筹款活动方案
- 钻孔桩劳务分包合同
- 公众号开业活动方案
- 2025年教育公平与社会分层考试试题及答案
- T/CHES 113-2023生产建设项目水土保持监测无人机应用技术导则
- 广东省珠海市文园中学2025届七下数学期末质量跟踪监视试题含解析
- 高二日语考试试卷及答案
- 钢结构安装施工记录 - 副本
- 超市食品安全管理制度手册
- 海鲜水饺供货合同协议
- 非财务人员的财务管理方法与案例
- 《肺结核的诊断与治疗》课件
- 2025+CSCO淋巴瘤诊疗指南解读课件
- AI驱动的智能汽车故障诊断系统
评论
0/150
提交评论