买专利,只认龙图腾
首页 专利交易 科技果 科技人才 科技服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

【发明授权】分布式事务的消息订阅方法、电子装置及可读存储介质_康键信息技术(深圳)有限公司_201810546879.8 

申请/专利权人:康键信息技术(深圳)有限公司

申请日:2018-05-31

公开(公告)日:2024-04-02

公开(公告)号:CN108874558B

主分类号:G06F9/54

分类号:G06F9/54;G06F9/46

优先权:

专利状态码:有效-授权

法律状态:2024.04.02#授权;2020.05.19#实质审查的生效;2018.11.23#公开

摘要:本发明涉及一种分布式事务的消息订阅方法、电子装置及可读存储介质,该方法包括:获取主数据库发送的主数据库日志和从数据库发送的从数据库日志;将获取的主数据库日志和从数据库日志解析为消息,并根据解析的消息形成消息队列;将所述消息队列中的消息通知给预先订阅消息的业务系统;其中,所述主数据库日志、从数据库日志为所述业务系统根据用户指令对所述主数据库、从数据库进行相应的数据操作产生的数据库日志。本发明由于能将数据库日志实时解析为消息发送给预先订阅消息的业务系统,通过这种消息订阅的方式能保证分布式事务处理的低延时,提高了系统的可用性和性能。

主权项:1.一种电子装置,其特征在于,所述电子装置包括存储器、处理器,所述存储器上存储有可在所述处理器上运行的分布式事务的消息订阅系统,所述分布式事务的消息订阅系统被所述处理器执行时实现如下步骤:获取主数据库发送的主数据库日志和从数据库发送的从数据库日志;利用分布式一致性算法Paxos将所述主数据库日志和从数据库日志协调到一致;将获取的主数据库日志和从数据库日志解析为消息,并根据解析的消息形成消息队列,针对不同类别的数据库对应设置一个类别,在将数据库日志解析为消息放入消息队列时,将同一个类别的消息放入同一条消息队列中;将所述消息队列中的消息通知给预先订阅消息的业务系统,以将消息反馈给所述业务系统的用户,便于用户根据反馈的消息执行下一步业务逻辑;其中,所述主数据库日志、从数据库日志为所述业务系统根据用户指令对所述主数据库、从数据库进行相应的数据操作产生的数据库日志。

全文数据:分布式事务的消息订阅方法、电子装置及可读存储介质技术领域[0001]本发明涉及计算机技术领域,尤其涉及一种分布式事务的消息订阅方法、电子装置及可读存储介质。背景技术[0002]在业务开发中,很多场景需要解决分布式事务中数据一致性问题。造成数据不一致的原因一般是延时引起的,所以要消除这个延时的影响。现有的解决方案都是从主库进行CUD操作时进行规避,就是等主、从数据库同步完成之后,主数据库上的写请求再返回。这种方式会大大降低系统的可用性和性能。发明内容[0003]本发明的目的在于提供一种分布式事务的消息订阅方法、电子装置及可读存储介质,旨在提高系统的可用性和性能。[0004]为实现上述目的,本发明提供一种电子装置,所述电子装置包括存储器、处理器,所述存储器上存储有可在所述处理器上运行的分布式事务的消息订阅系统,所述分布式事务的消息订阅系统被所述处理器执行时实现如下步骤:[0005]获取主数据库发送的主数据库日志和从数据库发送的从数据库日志;[0006]将获取的主数据库日志和从数据库日志解析为消息,并根据解析的消息形成消息队列;[0007]将所述消息队列中的消息通知给预先订阅消息的业务系统,以将消息反馈给所述业务系统的用户,便于用户根据反馈的消息执行下一步业务逻辑;其中,所述主数据库日志、从数据库日志为所述业务系统根据用户指令对所述主数据库、从数据库进行相应的数据操作产生的数据库日志。[0008]优选地,所述分布式事务的消息订阅系统被所述处理器执行实现所述获取主数据库发送的主数据库日志和从数据库发送的从数据库日志的步骤时,包括:[0009]获取主数据库、从数据库的位置;[0010]根据所述主数据库、从数据库的位置向所述主数据库、从数据库发送日志获取指令;[0011]获取所述主数据库、从数据库在进行数据操作时产生的主数据库日志、从数据库日志;[0012]所述将获取的主数据库日志和从数据库日志解析为消息,并根据解析的消息形成消息队列的步骤包括:[0013]将获取的主数据库日志、从数据库日志传递至预先设定的内存队列;[0014]将所述预先设定的内存队列中的主数据库日志、从数据库日志转换为消息并形成消息队列。[0015]优选地,预先将所述主数据库和从数据库对应设置类别Topic,将所述主数据库和从数据库作为消息数据生产者Producer,将所述业务系统作为消息数据消费者Consumer;所述获取主数据库发送的主数据库日志和从数据库发送的从数据库日志的步骤包括:[0016]获取消息数据生产者Producer发布的数据库日志,并按对应的类别Topic进行保存;[0017]所述将所述消息队列中的消息通知给预先订阅消息的业务系统的步骤包括:[0018]将所述消息队列中的消息通知给预先订阅了类别Topic消息的消息数据消费者Consumer〇[0019]优选地,在所述获取主数据库发送的主数据库日志和从数据库发送的从数据库曰志的步骤之后,所述处理器还用于执行所述分布式事务的消息订阅系统,以实现以下步骤:[0020]利用分布式一致性算法Paxos将主数据库日志和从数据库日志协调到最终达成一致。[0021]此外,为实现上述目的,本发明还提供一种分布式事务的消息订阅方法,所述分布式事务的消息订阅方法包括:[0022]获取主数据库发送的主数据库日志和从数据库发送的从数据库日志;[0023]将获取的主数据库日志和从数据库日志解析为消息,并根据解析的消息形成消息队列;[0024]将所述消息队列中的消息通知给预先订阅消息的业务系统,以将消息反馈给所述业务系统的用户,便于用户根据反馈的消息执行下一步业务逻辑;其中,所述主数据库日志、从数据库日志为所述业务系统根据用户指令对所述主数据库、从数据库进行相应的数据操作产生的数据库日志。[0025]优选地,所述获取主数据库发送的主数据库日志和从数据库发送的从数据库曰志的步骤包括:[0026]获取主数据库、从数据库的位置;[0027]根据所述主数据库、从数据库的位置向所述主数据库、从数据库发送日志获取指令;[0028]获取所述主数据库、从数据库在进行数据操作时产生的主数据库日志、从数据库日志;[0029]所述将获取的主数据库日志和从数据库日志解析为消息,并根据解析的消息形成消息队列的步骤包括:[0030]将获取的主数据库日志、从数据库日志传递至预先设定的内存队列;[0031]将所述预先设定的内存队列中的主数据库日志、从数据库日志转换为消息并形成消息队列。[0032]优选地,预先将所述主数据库和从数据库对应设置类别Topic,将所述主数据库和从数据库作为消息数据生产者Producer,将所述业务系统作为消息数据消费者Consumer;所述获取主数据库发送的主数据库日志和从数据库发送的从数据库日志的步骤包括:[0033]获取消息数据生产者Producer发布的数据库日志,并按对应的类别Topic进行保存;[0034]所述将所述消息队列中的消息通知给预先订阅消息的业务系统的步骤包括:[0035]将所述消息队列中的消息通知给预先订阅了类别Topic消息的消息数据消费者Consumer〇[0036]优选地,所述在获取主数据库发送的主数据库日志和从数据库发送的从数据库日志的步骤之后,还包括:[0037]利用分布式一致性算法Paxos将主数据库日志和从数据库日志协调到最终达成一致。[0038]优选地,当所述用户指令为提交订单指令时,所述业务系统根据用户指令对所述主数据库、从数据库进行相应的数据操作为向主数据库、从数据库中加入订单数据操作,所述将所述消息队列中的消息通知给预先订阅消息的业务系统的步骤包括:[0039]将所述消息队列中已完成向主数据库和或从数据库中加入订单数据操作的消息通知给预先订阅消息的业务系统,以将已完成向主数据库和或从数据库中加入订单数据操作的消息反馈给所述业务系统的用户,便于用户根据反馈的消息执行下一步业务逻辑。[0040]进一步地,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质存储有分布式事务的消息订阅系统,所述分布式事务的消息订阅系统可被至少一个处理器执行,以使所述至少一个处理器执行如上述的分布式事务的消息订阅方法的步骤。[0041]本发明提出的分布式事务的消息订阅方法、电子装置及可读存储介质,通过将主数据库日志和从数据库日志解析为消息,根据解析的消息形成消息队列;并将所述消息队列中的消息通知给预先订阅消息的业务系统,以将消息反馈给所述业务系统的用户,便于用户根据反馈的消息执行下一步业务逻辑。由于能将数据库日志实时解析为消息发送给预先订阅消息的业务系统,通过这种消息订阅的方式能保证分布式事务处理的低延时,提高了系统的可用性和性能。附图说明[0042]图1为本发明分布式事务的消息订阅系统10较佳实施例的运行环境示意图;[0043]图2为本发明分布式事务的消息订阅方法一实施例的流程示意图。具体实施方式[0044]为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。[0045]^要说明的是,在本发明中涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本发明要求的保护范围之内。[0046]本发明提供一种分布式事务的消息订阅系统。请参阅图1,是本发明分布式事务的消息订阅系统10较佳实施例的运行环境示意图。[0047]在本实施例中,所述的分布式事务的消息订阅系统10安装并运行于电子装置1中。该电子装置1可包括,但不仅限于,存储器11、处理器12及显示器13。图1仅示出了具有组件11-13的电子装置1,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。[0048]所述存储器11为至少一种类型的可读计算机存储介质,所述存储器11在一些实施例中可以是所述电子装置1的内部存储单元,例如该电子装置1的硬盘或内存。所述存储器11在另一些实施例中也可以是所述电子装置1的外部存储设备,例如所述电子装置1上配备的插接式硬盘,智能存储卡(SmartMediaCard,SMC,安全数字(SecureDigital,SD卡,闪存卡FlashCard等。进一步地,所述存储器11坯可以既包括所述电子装置1的内部存储单元也包括外部存储设备。所述存储器11用于存储安装于所述电子装置1的应用软件及各类数据,例如所述分布式事务的消息订阅系统10的程序代码等。所述存储器11还可以用于暂时地存储已经输出或者将要输出的数据。[0049]所述处理器12在一些实施例中可以是一中央处理器CentralProcessingUnit,CPU,微处理器或其他数据处理芯片,用于运行所述存储器11中存储的程序代码或处理数据,例如执行所述分布式事务的消息订阅系统10等。[0050]所述显示器13在一些实施例中可以是LED显示器、液晶显示器、触控式液晶显示器以及OLEDOrganicLight-EmittingDiode,有机发光二极管触摸器等。所述显示器13用于显不在所述电子装置1中处理的信息以及用于显示可视化的用户界面,例如解析出的消息、消息队列、反馈给用户的消息等。所述电子装置1的部件11-13通过系统总线相互通信。[0051]分布式事务的消息订阅系统10包括至少一个存储在所述存储器11中的计算机可读指令,该至少一个计算机可读指令可被所述处理器12执行,以实现本申请各实施例。在一种可选的实施方式中,本实施例中的分布式事务的消息订阅系统10可以是分布式发布订阅消息系统:ApacheKafka。[0052]其中,上述分布式事务的消息订阅系统10被所述处理器12执行时实现如下步骤:[0053]步骤S1,获取主数据库发送的主数据库日志和从数据库发送的从数据库日志;[0054]步骤S2,将获取的主数据库日志和从数据库日志解析为消息,并根据解析的消息形成消息队列;[0055]步骤S3,将所述消息队列中的消息通知给预先订阅消息的业务系统,以将消息反馈给所述业务系统的用户,便于用户根据反馈的消息执行下一步业务逻辑;其中,所述主数据库日志、从数据库日志为所述业务系统根据用户指令对所述主数据库、从数据库进行相应的数据操作产生的数据库曰志。[0056]本实施例中提供一种分布式事务的消息订阅系统,其中,分布式事务是指事务的参与者、支持事务的服务器、资源服务器以及事务管理器分别位于不同的分布式系统的不同节点之上。本质上来说,分布式事务就是为了保证不同数据库的数据一致性。本实施例中,在数据库主数据库、从数据库等)、业务系统之间加入了消息订阅系统,该消息订阅系统可获取业务执行中数据库的数据库日志,并将数据库日志解析为消息,再将解析的消息加入到预设的消息队列中,订阅了消息的业务系统可从预设的消息队列中获取对应的消息,并根据获取的消息将业务反馈给用户,以执行下一步业务逻辑。[0057]具体的,本实施例中数据库包括主数据库和从数据库,客户端用户在业务系统上执行业务行为如下订单、支付订单等后,业务系统会对后台的数据库如主数据库和从数据库进行数据操作如增加数据、删减数据等),数据操作中会产生主数据库日志、从数据库日志。消息订阅系统获取主数据库日志、从数据库日志,并将主数据库日志、从数据库日志解析为消息,将消息加入到预设的消息队列中,并将消息队列中的消息通知给业务系统,业务系统获知消息后可反馈给客户端用户,客户端用户即可根据反馈的业务消息执行下一步业务。例如,客户端用户在业务系统上执行“提交订单”业务行为时,业务系统在后台订单数据库里做相应的数据库操作,如在订单数据库主数据库中加入一条订单数据,订单数据库主数据库与订单数据库从数据库进行数据同步,在此过程中,订单数据库主数据库与订单数据库从数据库上均会生成相应的数据库日志,消息订阅系统获取订单数据库主数据库和订单数据库从数据库的数据库日志,并将数据库日志解析成Message即消息,通信的基本单位。将“提交订单”的相关消息加入到预设的消息队列中,并将消息队列中的消息通知给已预先在消息订阅系统上订阅了“提交订单”消息的业务系统,业务系统获取消息队列中推送的消息,当业务系统获取到由数据库日志解析的“订单己加入数据库”的消息,则业务系统确认订单已成功下单,将“订单己成功下单”的消息反馈给客户端用户,则客户端用户即可根据反馈的消息执行下一步业务“支付订单”。由于通过消息订阅系统可及时将数据库的数据库日志解析为消息通知给业务系统,以及时处理下一业务逻辑,而无需等待主数据库和从数据库的同步完成之后再处理下一业务逻辑,极大地提高了系统的可用性和性能。[0058]在一种可选的实施方式中,本实施例中的消息订阅系统可以是分布式发布订阅消息系统一ApacheKafka,Kafka是一种高吞吐量的分布式发布订阅消息系统,可以处理消费者规模的网站中的所有动作流数据。每条发布到Kafka集群的消息都有一个类别,这个类别被称为Topic。本实施例中,可针对不同类别的数据库对应设置一个Topic,后期在将数据库日志解析为消息放入消息队列时,可将同一个Topic的消息放入同一条消息队列中,以便于区分和官理。本头施例中主数据库和从数据库可作为Producer:消息数据生产者,向Kafka的一个topic发布消息的过程叫做pr〇ducer。本实施例中能从消息队列中获取消息的业务系统作为C〇nsumer:消息数据消费者,订阅t〇pics并处理其发布的消息的过程叫做consumer。本实施例中利用Kafka作为消息订阅系统应用在消息队列应用场景中,比起大多数的消息系统来说,Kafka有更好的吞吐量,内置的分区,冗余及容错性,Kafka提供一种很好的大规模消息处理应用的解决方案。本实施例中,在对数据库日志的日志收集方案上,一种可选的实施方案可以利用Scribe、ApacheFlume等开源产品。另一种可选的方案中也可使用Kafka代替日志聚合(l〇gaggregation。日志聚合一般来说是从服务器上收集日志文件,然后放到一个集中的位置(文件服务器或HDFS进行处理。本实施例中采用ApacheKafka作为消息订阅系统,Kafka能忽略掉文件的细节,将其更清晰地抽象成一个个日志或事件的消息流。使得Kafka处理过程延迟更低,更容易支持多数据源和分布式数据处理。比起以日志=中心的系统比如Scribe或者Flume来说,Kafka提供同样高效的性能和因为复制导致的更高的耐用性保证,以及更低的端到端延迟。[0059]在一种可选的实施方式中,消息订阅系统获取主数据库日志、从数据库日志并进行解析的流程如下:[0060]肖息订阅系统包括连接层、日志解析层等。首先消息订阅系统的连接层获取解析位置如主数据库、从数据库的位置,然后连接层向主数据库、从数据库发送获取日志指令,主数据库、从数据库在根据业务系统的业务执行情况进行数据操作产生数据库日志时,将生成的数据库日志推送至连接层,连接层将数据库日志发送至消息订阅系统的日志解析层,日志解析层将收到的数据库日志传递至预先设定好的内存队列,然后再将内存队列中的数据库日志转换为消息并形成消息队列。最后将消息队列中的消息通知到预先在消息订阅系统上订阅消息的业务系统。[0061]本实施例中通过订阅消息的方式实现分布式事务解耦,开发中无需考虑数据库DB层面的分布式事务,能通过消息订阅系统将数据库日志实时解析为消息,实现低延时。通过消息订阅系统可实时进行数据日志传输,提供灵活的订阅配置,实时生效,能保证毫秒级的数据延迟。[0062]与现有技术相比,本实施例通过将主数据库日志和从数据库日志解析为消息,根据解析的消息形成消息队列;并将所述消息队列中的消息通知给预先订阅消息的业务系统,以将消息反馈给所述业务系统的用户,便于用户根据反馈的消息执行下一步业务逻辑。由于能将数据库日志实时解析为消息发送给预先订阅消息的业务系统,通过这种消息订阅的方式能保证分布式事务处理的低延时,提高了系统的可用性和性能。[0063]在一可选的实施例中,在上述图1的实施例的基础上,所述分布式事务的消息订阅系统10被所述处理器12执行时,还实现如下步骤:[00M]利用分布式一致性算法Paxos将主数据库日志和从数据库日志协调到最终达成一致。[0065]本实施例中消息订阅系统在获取到主数据库日志和从数据库日志后,还可利用分布式一致性算法Paxos使主数据库日志和从数据库日志协调到最终达成一致。其中,Paxos算法是一种基于消息传递的一致性算法。Paxos算法解决的问题是一个分布式系统如何就某个值决议达成一致。可以通过Paxos实现多副本一致性,分布式锁,名字管理,序列号分配等。例如,在一个分布式数据库系统中,如果各节点的初始状态一致,每个节点执行相同的操作序列,那么它们最后能得到一个一致的状态。为保证每个节点执行相同的命令序列,需要在每一条指令上执行一个“一致性算法”以保证每个节点看到的指令一致。本实施例中,利用分布式一致性算法Paxos将主数据库日志和从数据库日志协调到最终达成一致,以保证分布式事务处理中,每个节点获取的主数据库日志和从数据库日志为一致的。[0066]如图2所示,图2为本发明分布式事务的消息订阅方法一实施例的流程示意图,该分布式事务的消息订阅方法包括以下步骤:[0067]步骤S10,获取主数据库发送的主数据库日志和从数据库发送的从数据库日志;[0068]步骤S20,将获取的主数据库日志和从数据库日志解析为消息,并根据解析的消息形成消息队列;[0069]步骤S30,将所述消息队列中的消息通知给预先订阅消息的业务系统,以将消息反馈给所述业务系统的用户,便于用户根据反馈的消息执行下一步业务逻辑;其中,所述主数据库日志、从数据库日志为所述业务系统根据用户指令对所述主数据库、从数据库进行相应的数据操作产生的数据库日志。[0070]本实施例中提供一种分布式事务的消息订阅方法,其中,分布式事务是指事务的参与者、支持事务的服务器、资源服务器以及事务管理器分别位于不同的分布式系统的不同节点之上。本质上来说,分布式事务就是为了保证不同数据库的数据一致性。本实施例中,在数据库主数据库、从数据库等)、业务系统之间加入了消息订阅系统,该消息订阅系统可获取业务执行中数据库的数据库日志,并将数据库日志解析为消息,再将解析的消息加入到预设的消息队列中,订阅了消息的业务系统可从预设的消息队列中获取对应的消息,并根据获取的消息将业务反馈给用户,以执行下一步业务逻辑。[0071]具体的,本实施例中数据库包括主数据库和从数据库,客户端用户在业务系统上执行业务行为如下订单、支付订单等)后,业务系统会对后台的数据库如主数据库和从数据库进行数据操作如增加数据、删减数据等),数据操作中会产生主数据库日志、从数据库曰志。消息订阅系统获取主数据库日志、从数据库日志,并将主数据库日志、从数据库日志解析为消息,将消息加入到预设的消息队列中,并将消息队列中的消息通知给业务系统,业务系统获知消息后可反馈给客户端用户,客户端用户即可根据反馈的业务消息执行下一步业务。例如,客户端用户在业务系统上执行“提交订单”业务行为时,业务系统在后台订单数据库里做相应的数据库操作,如在订单数据库主数据库中加入一条订单数据,订单数据库主数据库与订单数据库从数据库进行数据同步,在此过程中,订单数据库主数据库与订单数据库从数据库上均会生成相应的数据库日志,消息订阅系统获取订单数据库主数据库和订单数据库从数据库的数据库日志,并将数据库日志解析成Message即消息,通信的基本单位。将“提交订单”的相关消息加入到预设的消息队列中,并将消息队列中的消息通知给已预先在消息订阅系统上订阅了“提交订单”消息的业务系统,业务系统获取消息队列中推送的消息,当业务系统获取到由数据库日志解析的“订单已加入数据库”的消息,则业务系统确认订单已成功下单,将“订单已成功下单”的消息反馈给客户端用户,则客户端用户即可根据反馈的消息执行下一步业务“支付订单”。由于通过消息订阅系统可及时将数据库的数据库日志解析为消息通知给业务系统,以及时处理下一业务逻辑,而无需等待主数据库和从数据库的同步完成之后再处理下一业务逻辑,极大地提高了系统的可用性和性能。[0072]在一种可选的实施方式中,本实施例中的消息订阅系统可以是分布式发布订阅消息系统一ApacheKafka,Kafka是一种高吞吐量的分布式发布订阅消息系统,可以处理消费者规模的网站中的所有动作流数据。每条发布到Kafka集群的消息都有一个类别,这个类别被称为Topic。本实施例中,可针对不同类别的数据库对应设置一个Topic,后期在将数据库日志解析为消息放入消息队列时,可将同一个Topic的消息放入同一条消息队列中,以便于区分和管理。本实施例中主数据库和从数据库可作为producer:消息数据生产者,向Kafka的一个topic发布消息的过程叫做producer。本实施例中能从消息队列中获取消息的业务系统作为Consumer:消息数据消费者,订阅topics并处理其发布的消息的过程叫做consumer。本实施例中利用Kafka作为消息订阅系统应用在消息队列应用场景中,比起大多数的消息系统来说,Kafka有更好的吞吐量,内置的分区,冗余及容错性,Kafka提供一种很好的大规模消息处理应用的解决方案。本实施例中,在对数据库日志的日志收集方案上,一种可选的实施方案可以利用Scribe、ApacheFlume等开源产品。另一种可选的方案中也可使用Kafka代替日志聚合l〇gaggregation。日志聚合一般来说是从服务器上收集日志文件,然后放到一个集中的位置(文件服务器或HDFS进行处理。本实施例中采用ApacheKafka作为消息订阅系统,Kafka能忽略掉文件的细节,将其更清晰地抽象成一个个日志或事件的消息流。使得Kafka处理过程延迟更低,更容易支持多数据源和分布式数据处理。比起以日志为中心的系统比如Scribe或者Flume来说,Kafka提供同样高效的性能和因为复制导致的更高的耐用性保证,以及更低的端到端延迟。[0073]在一种可选的实施方式中,消息订阅系统获取主数据库日志、从数据库日志并进行解析的流程如下:[0074]消息订阅系统包括连接层、日志解析层等。首先消息订阅系统的连接层获取解析位置如主数据库、从数据库的位置,然后连接层向主数据库、从数据库发送获取日志指令,主数据库、从数据库在根据业务系统的业务执行情况进行数据操作产生数据库日志时,将生成的数据库日志推送至连接层,连接层将数据库日志发送至消息订阅系统的日志解析层,日志解析层将收到的数据库日志传递至预先设定好的内存队列,然后再将内存队列中的数据库日志转换为消息并形成消息队列。最后将消息队列中的消息通知到预先在消息订阅系统上订阅消息的业务系统。[0075]本实施例中通过订阅消息的方式实现分布式事务解耦,开发中无需考虑数据库DB层面的分布式事务,能通过消息订阅系统将数据库日志实时解析为消息,实现低延时。通过消息订阅系统可实时进行数据日志传输,提供灵活的订阅配置,实时生效,能保证毫秒级的数据延迟。[0076]与现有技术相比,本实施例通过将主数据库日志和从数据库日志解析为消息,根据解析的消息形成消息队列;并将所述消息队列中的消息通知给预先订阅消息的业务系统,以将消息反馈给所述业务系统的用户,便于用户根据反馈的消息执行下一步业务逻辑。由于能将数据库日志实时解析为消息发送给预先订阅消息的业务系统,通过这种消息订阅的方式能保证分布式事务处理的低延时,提高了系统的可用性和性能。[0077]在一可选的实施例中,在上述实施例的基础上,所述分布式事务的消息订阅方法还包括如下步骤:[0078]利用分布式一致性算法Paxos将主数据库日志和从数据库日志协调到最终达成一致。[0079]本实施例中消息订阅系统在获取到主数据库日志和从数据库日志后,还可利用分布式一致性算法Paxos使主数据库日志和从数据库日志协调到最终达成一致。其中,pax〇s算法是一种基于消息传递的一致性算法。Pax〇s算法解决的问题是一个分布式系统如何就某个值决议达成一致。可以通过Paxos实现多副本一致性,分布式锁,名字管理,序列号分配等。例如,在一个分布式数据库系统中,如果各节点的初始状态一致,每个节点执行相同的操作序列,那么它们最后能得到一个一致的状态。为保证每个节点执行相同的命令序列,需要在每一条指令上执行一个“一致性算法”以保证每个节点看到的指令一致。本实施例中,利用分布式一致性算法Paxos将主数据库日志和从数据库日志协调到最终达成一致,以保证分布式事务处理中,每个节点获取的主数据库日志和从数据库日志为一致的。[0080]此外,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质存储有分布式事务的消息订阅系统,所述分布式事务的消息订阅系统可被至少一个处理器执行,以使所述至少一个处理器执行如上述实施例中的分布式事务的消息订阅方法的步骤,该分布式事务的消息订阅方法的步骤Sio、S20、S3〇等具体实施过程如上文所述,在此不再赘述。[0081]需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……,,限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。[0082]通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件来实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROMRAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备可以是手机,计算机,服务器,空调器,或者网络设备等执行本发明各个实施例所述的方法。[0083]以上参照附图说明了本发明的优选实施例,并非因此局限本发明的权利范围。上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。另外,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。[0084]本领域技术人员不脱离本发明的范围和实质,可以有多种变型方案实现本发明,比如作为一个实施例的特征可用于另一实施例而得到又一实施例。凡在运用本发明的技术构思之内所作的任何修改、等同替换和改进,均应在本发明的权利范围之内。

权利要求:1.一种电子装置,其特征在于,所述电子装置包括存储器、处理器,所述存储器上存储有可在所述处理器上运行的分布式事务的消息订阅系统,所述分布式事务的消息订阅系统被所述处理器执行时实现如下步骤:获取主数据库发送的主数据库日志和从数据库发送的从数据库日志;将获取的主数据库日志和从数据库日志解析为消息,并根据解析的消息形成消息队列;将所述消息队列中的消息通知给预先订阅消息的业务系统,以将消息反馈给所述业务系统的用户,便于用户根据反馈的消息执行下一步业务逻辑;其中,所述主数据库日志、从数据库日志为所述业务系统根据用户指令对所述主数据库、从数据库进行相应的数据操作产生的数据库日志。2.如权利要求1所述的电子装置,其特征在于,所述分布式事务的消息订阅系统被所述处理器执行实现所述获取主数据库发送的主数据库日志和从数据库发送的从数据库日志的步骤时,包括:获取主数据库、从数据库的位置;根据所述主数据库、从数据库的位置向所述主数据库、从数据库发送日志获取指令;获取所述主数据库、从数据库在进行数据操作时产生的主数据库日志、从数据库日志;所述将获取的主数据库日志和从数据库日志解析为消息,并根据解析的消息形成消息队列的步骤包括:将获取的主数据库日志、从数据库日志传递至预先设定的内存队列;将所述预先设定的内存队列中的主数据库日志、从数据库日志转换为消息并形成消息队列。3.如权利要求1或2所述的电子装置,其特征在于,预先将所述主数据库和从数据库对应设置类别Topic,将所述主数据库和从数据库作为消息数据生产者Producer,将所述业务系统作为消息数据消费者Consumer;所述获取主数据库发送的主数据库日志和从数据库发送的从数据库日志的步骤包括:获取消息数据生产者Producer发布的数据库日志,并按对应的类别Topic进行保存;所述将所述消息队列中的消息通知给预先订阅消息的业务系统的步骤包括:将所述消息队列中的消息通知给预先订阅了类别T〇pic消息的消息数据消费者Consumer〇4.如权利要求3所述的电子装置,其特征在于,在所述获取主数据库发送的主数据库日志和从数据库发送的从数据库日志的步骤之后,所述处理器还用于执行所述分布式事务的消息订阅系统,以实现以下步骤:利用分布式一致性算法paxos将主数据库日志和从数据库日志协调到最终达成一致。5.—种分布式事务的消息订阅方法,其特征在于,所述分布式事务的消息订阅方法包括:获取主数据库发送的主数据库日志和从数据库发送的从数据库日志;将获取的主数据库日志和从数据库日志解析为消息,并根据解析的消息形成消息队列;将所述消息队列中的消息通知给预先订阅消息的业务系统,以将消息反馈给所述业务系统的用户,便于用户根据反馈的消息执行下一步业务逻辑;其中,所述主数据库日志、从数据库日志为所述业务系统根据用户指令对所述主数据库、从数据库进行相应的数据操作产生的数据库日志。6.如权利要求5所述的分布式事务的消息订阅方法,其特征在于,所述获取主数据库发送的主数据库日志和从数据库发送的从数据库日志的步骤包括:获取主数据库、从数据库的位置;根据所述主数据库、从数据库的位置向所述主数据库、从数据库发送日志获取指令;获取所述主数据库、从数据库在进行数据操作时产生的主数据库日志、从数据库日志;所述将获取的主数据库日志和从数据库日志解析为消息,并根据解析的消息形成消息队列的步骤包括:将获取的主数据库日志、从数据库日志传递至预先设定的内存队列;将所述预先设定的内存队列中的主数据库日志、从数据库日志转换为消息并形成消息队列。7.如权利要求5或6所述的分布式事务的消息订阅方法,其特征在于,预先将所述主数据库和从数据库对应设置类别Topic,将所述主数据库和从数据库作为消息数据生产者Producer,将所述业务系统作为消息数据消费者Consumer;所述获取主数据库发送的主数据库日志和从数据库发送的从数据库日志的步骤包括:获取消息数据生产者Producer发布的数据库日志,并按对应的类别Topic进行保存;所述将所述消息队列中的消息通知给预先订阅消息的业务系统的步骤包括:将所述消息队列中的消息通知给预先订阅了类别Topic消息的消息数据消费者Consumer〇8.如权利要求7所述的分布式事务的消息订阅方法,其特征在于,所述在获取主数据库发送的主数据库日志和从数据库发送的从数据库日志的步骤之后,还包括:利用分布式一致性算法Paxos将主数据库日志和从数据库日志协调到最终达成一致。9.如权利要求8所述的分布式事务的消息订阅方法,其特征在于,当所述用户指令为提交订单指令时,所述业务系统根据用户指令对所述主数据库、从数据库进行相应的数据操作为向主数据库、从数据库中加入订单数据操作,所述将所述消息队列中的消息通知给预先订阅消息的业务系统的步骤包括:将所述消息队列中已完成向主数据库和或从数据库中加入订单数据操作的消息通知给预先订阅消息的业务系统,以将已完成向主数据库和或从数据库中加入订单数据操作的消息反馈给所述业务系统的用户,便于用户根据反馈的消息执行下一步业务逻辑。10.—种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有分布式事务的消息订阅系统,所述分布式事务的消息订阅系统被处理器执行时实现如权利要求5至9中任一项所述的分布式事务的消息订阅方法的步骤。

百度查询: 康键信息技术(深圳)有限公司 分布式事务的消息订阅方法、电子装置及可读存储介质

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。