The invention discloses a database based on message notification method and system for publishing and subscription, the method comprises the following steps: at least one message queue based on database; create the corresponding trigger in the need to inform the external software related business in the database table, and the definition of logic, message queue name changes on business the fields in the table in the data processing of the trigger, and define the format stored in the message queue data; external software data monitoring program the network connection to the database registration message queue provides; operations on the data table in the database modify business software; changing business fields in the data table to monitor the trigger concern, the field data package will change into the specified message queue data format, sent to the appropriate message In a queue; push the corresponding data messages to the external software. The efficiency of the effective message acquisition can be achieved through this method and system.
【技术实现步骤摘要】
一种基于发布、订阅模式的数据库消息通知方法及系统
本专利技术涉及数据处理领域,具体涉及一种基于发布、订阅模式的数据库消息通知方法及系统。
技术介绍
在某些业务软件中,数据库中相关业务表数据的变化只有一部分的软件可以感知到,与数据变化无直接关联的软件,需要通过定时/实时查询或者轮询的方式去获取发生变化之后的数据,用于自身软件中的数据业务处理。此类操作会对数据库本身服务造成性能压力,且无法感知数据变化的软件获取数据的方式较复杂。为简化此类软件数据获取数据的操作,在数据库服务中提供一种消息队列,外部软件可以订阅到该服务中,数据库本身生产数据,数据库向订阅到该服务中的外部软件通过Socket的方式推送发生变化的数据,实现数据库本身于外部软件之间的解耦,降低软件的复杂性。首先,数据库中业务表数据发生变化之后,通过定义数据发生业务表变化的触发器,自定义向什么消息队列发送数据,并定义数据的数据格式。在触发器中定义数据格式,可以获取除本身业务表之外的其他业务表数据,可以为外部软件提供丰富的数据资源。其次,通过指定的IP、端口(port)以及相应的数据消息队列,外部软件订阅到数据库 ...
【技术保护点】
一种基于发布、订阅模式的数据库消息通知方法,该方法包括以下步骤:(1)在数据库中建立至少一个消息队列;(2)在需要通知外部软件的数据库中的相关业务表中创建相应的触发器,并在该触发器中定义所关注的业务表中字段数据的变化处理逻辑、消息队列名称,以及定义在消息队列中存放的数据的格式;(3)外部软件将自身的数据监听程序的网络连接注册到数据库提供的消息队列;(4)业务软件对数据库业务表中的数据进行修改;(5)触发器监测到关注的业务表中的字段数据发生了变化,将变化的字段数据封装成指定消息队列的数据格式,发送到相应的消息队列中;(6)向外部软件推送相应的数据消息。
【技术特征摘要】
1.一种基于发布、订阅模式的数据库消息通知方法,该方法包括以下步骤:(1)在数据库中建立至少一个消息队列;(2)在需要通知外部软件的数据库中的相关业务表中创建相应的触发器,并在该触发器中定义所关注的业务表中字段数据的变化处理逻辑、消息队列名称,以及定义在消息队列中存放的数据的格式;(3)外部软件将自身的数据监听程序的网络连接注册到数据库提供的消息队列;(4)业务软件对数据库业务表中的数据进行修改;(5)触发器监测到关注的业务表中的字段数据发生了变化,将变化的字段数据封装成指定消息队列的数据格式,发送到相应的消息队列中;(6)向外部软件推送相应的数据消息。2.根据权利要求1所述的方法,所述步骤(3)外部软件将自身的数据监听程序的网络连接注册到数据库提供的消息队列具体包括:所述外部软件于数据库提供的消息队列创建一个TCP长链接,用于数据库消息队列向所述外部软件推送数据消息。3.根据权利要求1所述的方法,所述步骤(4)所述业务软件通过以下两种方式对数据库业务表中的数据进行修改:通过数据库链接通知数据库即将修改数据库中某些业务表中的数据,或者通过数据库客户端工具,连接到数据库之后手动修改某些业务表中的数据。4.根据权利要求1所述的方法,所述步骤(6)在向所述外部软件推送相应的数据消息之前需要判断是否有外部软件通过Socket的方式注册到数据库提供的消息队列。5.根据权利要求4所述的方法,如果判断结果为是,则数据库的消息队列作为TCP链接的服务端,向所述外部软件的TCP链接客户端推送相应的数据消息;如果判断结果为否,该数据消息不会持久化存储,在此之后时间段注册到该消息队列的外部软件,只能接收注...
【专利技术属性】
技术研发人员:董晓斌,喻波,王志海,安鹏,吴宏毅,
申请(专利权)人:北京明朝万达科技股份有限公司,
类型:发明
国别省市:北京,11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。