一种基于区块链的微服务方法、设备及介质技术

技术编号:29310984 阅读:14 留言:0更新日期:2021-07-17 02:16
本发明专利技术提供一种基于区块链的微服务方法,包含步骤:为微服务架构中的核心企业微服务分配区块链平台中的记账节点,区块链网关的监听该核心企业微服务的业务,当所述业务属于交易业务,区块链网关通过区块链平台的查询接口定时检索该交易业务是否生成交易数据;当核心企业微服务的交易业务产生交易数据,通过区块链网关调用对应的记账节点并发出记账申请;该记账节点通过部署在区块链平台的智能合约为所述交易数据生成对应的区块加入区块链中,并广播给区块链平台的每个记账节点进行同步备份。播给区块链平台的每个记账节点进行同步备份。播给区块链平台的每个记账节点进行同步备份。

【技术实现步骤摘要】
一种基于区块链的微服务方法、设备及介质


[0001]本专利技术涉及微服务、区块链
,特别涉及一种基于区块链的微服务方法、设备及介质。

技术介绍

[0002]传统的系统大多是单体架构模式,所有业务子模块都集中在一个很重的进程中,所有代码都在同一项目当中,随着规模越来越大,会造成诸如项目臃肿占用大量数据库、内存等资源,严重的会拖垮系,造成统维护困难的情况。为了改变这种状况,兴起了一种把臃肿的单体系统拆分成若干“微服务”的技术。
[0003]微服务架构是一种架构模式,它提倡将单一应用程序划分成一组小的服务,服务之间互相协调、互相配合,为用户提供最终价值。每个服务运行在其独立的进程中,服务于服务间采用轻量级的通信机制互相沟通(通常是基于HTTP的RESTful API)。每个服务都围绕着具体业务进行构建,并且能够被独立地部署到生产环境、类生产环境等。这些服务的集中管理最少,可以用不同的编程语言编写,并使用不同的数据存储技术。
[0004]利用微服务框架,把一个系统拆分成若干微小服务,确实解决了传统系统的缺陷,但是这种传统的微服务也有其缺点:
[0005]1、服务调用跨网络,增加网络IO,降低性能。
[0006]2、服务调用跨更多节点,分布式事务数据不一致性可能更大。
[0007]3、需要服务发现,增加复杂度。
[0008]4、运维、测试基于微服务架构的应用也很复杂。
[0009]5、每个服务都是一个独立系统,代码重复,增加系统框架不一致的可能性。6、服务总的启动时间长。
[0010]7、服务依赖的传递性,必须依照顺序逐个部署。
[0011]用户向微服务架构发出的业务请求,是基于微服务架构的调用流程,由对应的多个微服务共同实现。生成的重要业务数据被存储在微服务的各个数据库中,一般情况下,微服务中的业务处理采用异步模式,由于系统故障或业务超时等原因,导致微服务的各个数据库所记录的业务数据存在不一致,并难以发现。
[0012]微服务中数据的不可信,将导致用户的业务请求发生错误,甚至是系统崩溃。如何保证微服务框架中各个微服务的业务数据可信,是目前亟需解决的问题。
[0013]另一方面,重要的业务数据不仅需要备份还需要保证不可篡改、同时还要保证对于相关各个微服务均透明,而微服务架构的分布式业务数据存储方式显然无法满足需求。

技术实现思路

[0014]本专利技术的目的是提供一种基于区块链的微服务方法、设备及介质,将区块链平台作为微服务平台的第三方应用,通过区块链网关监听微服务平台中的交易业务,为该交易业务的交易数据生成对应的区块存储至区块链,并广播至区块链平台的所有记账节点。同
时本专利技术还在微服务平台中区分了核心企业微服务、非核心企业微服务,并在区块链平台为核心企业微服务、非核心企业微服务分配了对应的记账节点、非记账节点,使得核心企业微服务、非核心企业微服务对于区块链平台存储的交易数据具有不同的调用权限。本专利技术中通过交易数据的id号将微服务端与区块链端的交易数据相关联,微服务定时将区块链平台存储的交易数据与本地存储的交易数据进行对账,保证了微服务存储的交易数据的一致性。同时,当交易业务操作失败或超时,在微服务端能够实施交易业务的逆向操作(也称为交易回滚),修正微服务数据库内存储的数据,防止微服务各个数据库所记录的数据不一致,避免了微服务端数据的不可信。在交易业务成功时请求区块链平台进行记账,进一步保证了区块链平台存储的交易数据的可信度。
[0015]为了达到上述目的,本专利技术提供一种基于区块链的微服务方法,包含步骤:
[0016]为微服务架构中的核心企业微服务分配区块链平台中的记账节点,区块链网关的监听该核心企业微服务的业务,当所述业务属于交易业务,区块链网关通过区块链平台的查询接口定时检索该交易业务是否生成交易数据;
[0017]当核心企业微服务的交易业务产生交易数据,通过区块链网关调用对应的记账节点并发出记账申请;
[0018]该记账节点通过部署在区块链平台的智能合约为所述交易数据生成对应的区块加入区块链中,并广播给区块链平台的每个记账节点进行同步备份。
[0019]可选的,所述的基于区块链的微服务方法还包含:为微服务架构中的非核心企业微服务分配区块链平台中的非记账节点;当该非核心企业微服务的交易业务生成交易数据,通过区块链网关将该交易数据存储至对应的非记账节点。
[0020]可选的,所述核心企业微服务包含与其交易业务对应的至少一个交易数据库;所述交易数据库包含对应的交易用户表;
[0021]核心企业微服务基于对应的交易数据更新对应的交易用户表;当交易用户表更新成功,核心企业微服务通过区块链网关调用对应的记账节点并发出记账申请;否则,该交易用户表恢复至更新前的状态。
[0022]可选的,所述非核心企业微服务包含与其交易业务对应的至少一个交易数据库;所述交易数据库包含对应的交易用户表;
[0023]非核心企业微服务基于对应的交易数据更新对应的交易用户表;当交易用户表更新成功,非核心企业微服务通过区块链网关将交易数据存储至对应的非记账节点;否则,该非核心企业微服务的交易用户表恢复至更新前的状态。
[0024]可选的,所述核心企业微服务被配置为,能够通过区块链网关获取区块链上的任一区块,以及任一非记账节点存储的交易数据;所述非核心企业微服务被配置为,能够通过区块链网关获取其对应非记账节点存储的交易数据。
[0025]可选的,核心企业微服务/非核心企业微服务还为其交易数据生成唯一标识该交易数据的id号;所述id号与对应的交易数据一同被上传至核心企业微服务/非核心企业微服务对应的记账节点/非记账节点;
[0026]核心企业微服务定时通过其交易数据的id号获取区块链平台存储的对应区块,并基于该区块核对该核心企业微服务中对应的交易用户表;
[0027]非核心企业微服务定时通过其交易数据的id号获取区块链平台存储的交易数据,
并基于获取的该交易数据核对该非核心企业微服务中对应的交易用户表。
[0028]可选的,区块链平台定时轮询所述记账申请,并向对应的核心企业微服务反馈接受或拒绝该记账申请。
[0029]可选的,所述核心企业微服务/非核心企业微服务还包含回滚日志表;所述回滚日志表用于记载在设定的时间内,核心企业微服务/非核心企业微服务的交易业务是否完成;若在设定的时间内该交易业务未完成,所述回滚日志表还记录对应的交易用户表是否恢复至执行对应交易业务前的状态。
[0030]本专利技术还提供了一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现如本专利技术所述基于区块链的微服务方法的步骤。
[0031]本专利技术还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现本专利技术所述基于区块链的微服务方法的步骤。
[0032]与现有技术相比,本专利技术的有益效果在于:
...

【技术保护点】

【技术特征摘要】
1.一种基于区块链的微服务方法,其特征在于,包含步骤:为微服务架构中的核心企业微服务分配区块链平台中的记账节点,区块链网关的监听该核心企业微服务的业务,当所述业务属于交易业务,区块链网关通过区块链平台的查询接口定时检索该交易业务是否生成交易数据;当核心企业微服务的交易业务产生交易数据,通过区块链网关调用对应的记账节点并发出记账申请;该记账节点通过部署在区块链平台的智能合约为所述交易数据生成对应的区块加入区块链中,并广播给区块链平台的每个记账节点进行同步备份。2.如权利要求1所述的基于区块链的微服务方法,其特征在于,还包含:为微服务架构中的非核心企业微服务分配区块链平台中的非记账节点;当该非核心企业微服务的交易业务生成交易数据,通过区块链网关将该交易数据存储至对应的非记账节点。3.如权利要求1所述的基于区块链的微服务方法,其特征在于,所述核心企业微服务包含与其交易业务对应的至少一个交易数据库;所述交易数据库包含对应的交易用户表;核心企业微服务基于对应的交易数据更新对应的交易用户表;当交易用户表更新成功,核心企业微服务通过区块链网关调用对应的记账节点并发出记账申请;否则,该交易用户表恢复至更新前的状态。4.如权利要求2所述的基于区块链的微服务方法,其特征在于,所述非核心企业微服务包含与其交易业务对应的至少一个交易数据库;所述交易数据库包含对应的交易用户表;非核心企业微服务基于对应的交易数据更新对应的交易用户表;当交易用户表更新成功,非核心企业微服务通过区块链网关将交易数据存储至对应的非记账节点;否则,该非核心企业微服务的交易用户表恢复至更新前的状态。5.如权利要求2所述的基于区块链的微服务方法,其特征在于,所述核心企业...

【专利技术属性】
技术研发人员:李峰蒋魁杨雷管宏伟
申请(专利权)人:重庆新致金服信息技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1