业务消息发送方法和装置的制造方法_2

文档序号:9765976阅读:来源:国知局
更 事件中提取操作信息,并构造业务消息,将业务消息发送给业务系统,用W业务系统根据业 务消息统计业务变更情况。由上可见,本申请实施例通过对数据库的操作信息进行记录,从 而监听数据库变更,能够更准确地确认发生数据库变更,并且,由于数据库通常包括多个表 格,根据表格名称来监听数据库变更事件,可W更加有针对性,相应地,可W提高发送业务 消息的准确性。
[0039] 下面通过本申请实施例二对业务消息发送方法进行更为详细的介绍。
[0040] 图3为本申请实施例二提供的业务消息发送方法流程图,所述方法的执行主体可 W为执行所述方法的专用设备,也可W为现有的网络设备,例如,数据库服务器,如图3所 示,所述方法具体包括:
[0041] 步骤301,当对数据库的第一表格中的第一字段进行第一操作时,获取对数据库的 操作信息。
[0042] 所述操作信息包括所述第一表格的表格名称、所述第一操作的操作名称、所述第 一字段的字段名称和所述第一字段的字段数值。
[0043] 步骤302,将所述操作信息记录在Binlog数据库日志中。
[0044] 例如,当用户对数据库进行插入(insert)操作时,需要用户先经过业务层构造数 据,然后将数据插入数据库,Binlog数据库日志中就会对记录下上述插入操作的相关操作 信息。具体记录形式可W采用如下语句:
[0045] Inse;rt into goods (goods_type, price) values ( "clothes" , 50. 0);
[0046] 其中,Insert为第一操作的操作名称;goods为第一表格的表格名称;goods_type 和price为第一字段的字段名称;clothes和50. 0为第一字段的字段数值。
[0047] 步骤303,当到达预设时刻时,解析所述数据库日志,生成数据库变更事件。
[0048] 所述数据库变更事件包括所述操作信息,所述操作信息中包括所述第一表格的表 格名称。
[0049] 本申请实施例中,可W不实时解析数据库日志,当到达预设时刻时,解析所述数据 库日志,从而节约系统处理资源。
[0050] 具体可W通过Binlog解析器对Binlog数据库日志进行解析,W便解析出Binlog 数据库日志记录的操作信息,并生成包括所述操作信息的数据库变更事件,通过监控数据 库变更事件可W获知数据库中发生变更的表格的表格名称、字段名称和字段数值。
[0051] 步骤304,当所述第一表格的表格名称与为业务系统配置的第二表格的表格名称 完全相同或部分相同时,监听所述数据库变更事件。
[0052] 由于数据库通常包括多个表格,因此可W通过表格名称对数据库变更事件进行监 听。并且,每张表格的容量是有限的,所W经常会出现的是分表分库,根据表格名称对数据 库变更事件进行监听包括:对该表格名称对应的表格W及该表格的分表对应的数据库变更 事件进行监听。例如,当表格名称为goods的表格存在分表时,郝么可W通过正则表达式来 进行监听,具体形式可W为"goods-. *",送样就可W监听到所有goods表格及其分表对应 的数据库变更事件。
[0053] 步骤305,当所述第一操作的操作名称与为业务系统配置的第二操作的操作名称 相同时,从所述数据库变更事件中提取所述操作信息。
[0054] 由于业务系统通常不是对用户对数据库进行的所有操作(action)引起的数据库 变更感兴趣,而仅仅对其中一种或几种操作引起的数据库变更感兴趣,因此可W为业务系 统配置第二操作的操作名称,具体可W在业务系统预订业务消息时,由用户选择第二操作 的操作名称,即选择用户对于哪些操作感兴趣,根据操作名称从所述数据库变更事件中提 取所述操作信息,可W使提取的操作信息更加准确,相应地,发送给业务系统的业务消息更 加准确。
[00巧]步骤306,从所述操作信息中过滤出所述第一字段的字段数值。
[0056] 过滤出第一字段的字段数值后,可W W Map类型进行存储,例如,表一所示的形 式。
[0057] 表一
[0058]
[0059] 步骤307,根据所述第一表格的表格名称解析出类的名称;利用过滤出的所述第 一字段的字段数值填充所述类的属性,从而构建出业务模型。
[0060] 预先为业务系统配置相应的类,每个类对应一种业务模型,业务模型由属性构成, 业务模型具体可W如表二所示。
[0061] 表二
[0062]
[0063] 其中,商品为类的名称,商品类型和价格为类的属性,商品类型为String型变量, 价格为double型变量。
[0064] 构建业务模型时,可W运用脚本进行更高的定制,通过脚本具体可W实现下面的 处理过程:先根据第一表格的表格名称解析出类(class)的名称,例如,当说当第一表格的 表格名称为goods时,根据预先设定的规则,解析出类的名称goods,然后根据步骤306过滤 出的字段数值,送里的字段数值存储形式为Map,填充业务模型里面的属性,比如可W简单 的用goodstype的字段数值去填充Goods类里面的goodsType属性,用price的进行填充 Goods类里面的price,从而通过脚本实现高可配性W及定制性,可W更加灵活的向业务系 统发送业务消息,W便满足业务系统的需求。
[0065] 步骤308,将所述第一操作的操作名称与所述业务模型组装成业务消息。
[0066] 本申请实施例中,所述第一操作或第二操作具体可W包括;插入操作、更新操作、 查询操作或删除操作。
[0067] 步骤309,根据为所述业务系统配置的类的名称,将所述业务消息发送给所述业务 系统。
[0068] 本申请实施例中可W根据为所述业务系统配置的类的名称,将所述业务消息发送 给所述业务系统,进一步地,还可W根据为所述业务系统配置的类的名称和为所述业务系 统配置的操作名称,将所述业务消息发送给所述业务系统。其中,类的名称是必须有的,操 作名称是可选的,当业务系统订阅业务消息时,可W选择对哪个类的变更有兴趣,还可W选 择对哪些操作有兴趣,默认的是业务系统对所有操作都有兴趣。
[0069] 由上述处理过程可知,本申请实施例二提供的业务消息发送方法中,根据表格名 称监听到数据库变更事件后,还可W根据操作名称从数据库变更事件中提取操作信息,进 一步提高了发送业务消息的准确性。
[0070] 与上述业务消息发送方法对应地,本申请实施例还提供了一种业务消息发送装 置,如图4所示为本申请实施例提供的业务消息发送装置结构图,该业务消息发送装置包 括:记录单元401、解析单元402、监听单元403、业务消息构造单元404和业务消息发送单 元 405 ;
[0071] 所述记录单元401,用于将对数据库的操作信息记录在数据库日志中,所述数据库 包括第一表格;
[0072] 所述解析单元402,用于解析所述记录单元401所记录的数据库日志,生成数据库 变更事件,所述数据库变更事件包括所述操作信息,所述操作信息中包括所述第一表格的 表格名称;
[0073] 所述监听单元403,用于当所述解析单元402生成的数据库变更事件中包括的所 述第一表格的表格名称与为业务系统配置的第二表格的表格名称相同时,监听所述数据库 变更事件;
[0074] 所述业务消息构造单元404,用于从所述监听单元403监听到的所述数据库变更 事件中提取所述操作信息,并构造业务消息;
[00巧]所述业务消息发送单元405,用于将所述业务消息构造单元404构造的所述业务 消息发送给所述业务系统,用W所述业务系统根据所述业务消息统计业务变更情况。
[0076] 较佳地,所述记录单元401具体包括;获取子单元和记录子单元;
[0077] 所述获取子单元,用于当对数据库的第一表格中的第一字段进行第一操作时,获 取对数据库的操作信息,所述操作信息包括所述第一表格的表格名称、所述第一操作的操 作名称、所述第一字段的字段名称和所述第一字段的字段数值;
[0078] 所述记录子单元,用于将所述获取子单元获取的所述操作信息记录在Binlog数 据库日志中。
[0079] 较佳地,所述解析单元402具体用于;当到达预设时刻时,解析所述记录单元401 所记录的数据库日志,生成数据库变更事件,所述数据库变更事件包括所述操作信息,所述 操作信息中包括所述第一表格的表格名称。
[0080] 较佳地,所述监听单元403具体用于:当所述解析单元402生成的数据库变更事件 中包括的所述第一表格的表格名称与为业务系统配置的第二表格的表格名称完全相同或 部分相同时,监听所述数据库变更事件。
[0081] 更佳地,所述业务
当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1