CN111653052B - 收银系统及收银机切换方法 - Google Patents

收银系统及收银机切换方法 Download PDF

Info

Publication number
CN111653052B
CN111653052B CN202010340155.5A CN202010340155A CN111653052B CN 111653052 B CN111653052 B CN 111653052B CN 202010340155 A CN202010340155 A CN 202010340155A CN 111653052 B CN111653052 B CN 111653052B
Authority
CN
China
Prior art keywords
cash register
main
cash
data
service data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202010340155.5A
Other languages
English (en)
Other versions
CN111653052A (zh
Inventor
丁淦
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Sankuai Online Technology Co Ltd
Original Assignee
Beijing Sankuai Online Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Sankuai Online Technology Co Ltd filed Critical Beijing Sankuai Online Technology Co Ltd
Priority to CN202010340155.5A priority Critical patent/CN111653052B/zh
Publication of CN111653052A publication Critical patent/CN111653052A/zh
Application granted granted Critical
Publication of CN111653052B publication Critical patent/CN111653052B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07GREGISTERING THE RECEIPT OF CASH, VALUABLES, OR TOKENS
    • G07G1/00Cash registers
    • G07G1/12Cash registers electronically operated
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • H04L67/025Protocols based on web technology, e.g. hypertext transfer protocol [HTTP] for remote control or remote monitoring of applications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/133Protocols for remote procedure calls [RPC]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Cash Registers Or Receiving Machines (AREA)

Abstract

本申请实施例公开了一种收银系统及收银机切换方法,该收银系统包括:主收银机,用于进行收银业务处理并存储业务数据,并将所述业务数据存储到至少一台副收银机中;至少一台副收银机,接入局域网,并分别通过局域网与所述主收银机连接,用于存储所述主收银机中的业务数据,在所述主收银机发生故障后,从其中至少一台副收银机中确定出一台副收银机作为新的主收银机,执行后续的业务处理及存储业务数据。本申请实施例由于副收银机备份了业务数据,不需要从云端获取业务数据,不受外网环境影响,可以快速恢复业务处理,从而减少了数据恢复时间,减少了业务恢复时间。

Description

收银系统及收银机切换方法
技术领域
本申请实施例涉及收银处理技术领域,特别是涉及一种收银系统及收银机切换方法。
背景技术
在一些较大的餐饮商家或者客流量较大的餐饮商家,收银机因为硬件问题、软件问题等各种原因导致不能用时,会严重影响商家的收银业务处理,特别是在就餐高峰期。
现有技术中,收银机会将业务数据同步存储到云端,若该收银机宕机,在该收银机修复后从云端拉取业务数据,并恢复收银业务处理。由于需要从云端拉取业务数据,网络不好或者数据量较大时,会导致数据恢复时间较长。
发明内容
本申请实施例提供一种收银系统及收银机切换方法,有助于减少数据恢复时间。
为了解决上述问题,第一方面,本申请实施例提供了一种收银系统,包括:
主收银机,用于进行收银业务处理并存储业务数据,并将所述业务数据存储到至少一台副收银机中;
至少一台副收银机,接入局域网,并分别通过局域网与所述主收银机连接,用于存储所述主收银机中的业务数据,在所述主收银机发生故障后,从其中至少一台副收银机中确定出一台副收银机作为新的主收银机,执行后续的业务处理及存储业务数据工作。
第二方面,本申请实施例提供了一种收银机切换方法,包括:
主收银机进行收银业务处理并存储业务数据;
至少一台副收银机获取所述主收银机中的业务数据,并存储所述业务数据;
在所述主收银机发生故障后,所述至少一台副收银机从至少一台副收银机中确定出一台副收银机作为新的主收银机,执行后续的业务处理及存储业务数据工作。
本申请实施例提供的收银系统及收银机切换方法,通过主收银机进行收银业务处理并存储业务数据,并将业务数据存储到至少一台副收银机中,至少一台副收银机接入局域网,并分别通过局域网与主收银机连接,在主收银机发生故障后从其中至少一台副收银机中确定出一台副收银机作为新的主收银机,执行后续的业务处理及存储业务数据工作,由于副收银机备份了业务数据,不需要从云端获取业务数据,不受外网环境影响,可以快速恢复业务处理,从而减少了数据恢复时间,减少了业务恢复时间。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例一的一种收银系统的结构示意图;
图2是本申请实施例二的一种收银系统的结构示意图;
图3是本申请实施例三的一种收银机切换方法的流程图;
图4是本申请实施例中的数据同步的示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
实施例一
本实施例提供的一种收银系统,如图1所示,该收银系统100包括:主收银机110和至少一台副收银机120。
其中,主收银机110,用于进行收银业务处理并存储业务数据,并将所述业务数据存储到至少一台副收银机中;
至少一台副收银机120,接入局域网,并分别通过局域网与所述主收银机连接,用于存储所述主收银机中的业务数据,在所述主收银机发生故障后,从其中至少一台副收银机中确定出一台副收银机作为新的主收银机,执行后续的业务处理及存储业务数据工作。
在较大的餐饮商家(如存在多楼层或多区域等),一般会配备多台收银机(每个楼层或者区域配备一台收银机),多台收银机通过局域网相互连接,多台收银机进行组网成为集群,在该网络集群中,会存在一台主收银机110和至少一台副收银机120,主收银机110在网络集群中充当服务器的角色,负责收银业务逻辑的处理和业务数据的存储。餐饮商家的收银员或者服务员可以通过操作集群中的各个收银机进行点菜、下单、结账等业务处理,业务数据都存储在主收银机里。
主收银机110可以基于自身存储的业务数据响应用户的业务请求,并存储对应的业务数据。副收银机120和主收银机进行业务交互,在接收到用户的业务请求时,将业务请求发送给主收银机110,由主收银机110基于自身存储的业务数据对该业务请求进行处理,并将所述业务请求的响应返回给副收银机120。
如果要保证主收银机110发生故障后能够快速恢复,需要保证主收银机110存储的业务数据不能丢失,而且能够快速地迁移到其他收银机。因此,主收银机110在存储业务数据时,将业务数据同步存储到至少一台副收银机120中,至少一台副收银机120可以同步存储主收银机中的业务数据,若通过与主收银机的交互检测到主收银机发生故障,则可以从至少一台副收银机中选举出一台副收银机,作为新的主收银机,执行后续的业务处理及存储业务数据工作,从而可以快速恢复收银业务处理。其中,主收银机发生故障包括主收银机宕机或者网络速度较慢等。至少一台副收银机可以根据是否正常接收到主收银机的心跳消息来确定主收银机是否发生故障,即若超过第一预设时间未接收到主收银机发送的心跳消息,则确定主收银机发生故障。
在本申请的一个实施例中,所述主收银机具体用于:进行收银业务处理,并将业务数据对应的数据变更记录写入到数据变更文件,将业务数据存储到主收银机对应的数据库中;
所述至少一台副收银机存储所述主收银机中的业务数据,包括:所述至少一台副收银机读取所述数据变更文件中的数据变更记录,获取业务数据,并将业务数据存储到副收银机对应的数据库中。
主收银机和副收银机的数据库采用WAL(Write-Ahead Logging,预写式日志)数据库框架,主收银机在进行收银业务处理时将产生的业务数据对应的数据变更记录写入到数据变更文件,并将业务数据存储到主收银机对应的数据库中。副收银机读取主收银机中的数据变更文件,得到数据变更记录,根据数据变更记录获取到业务数据,并将业务数据存储到自身的数据库中。通过采用WAL框架,主收银机在进行收银业务处理时无需关注数据的备份和同步问题,从而实现了数据同步和业务处理的解耦。
在至少一台副收银机确定一台副收银机作为新的主收银机时,若只有一台副收银机,则可以直接切换为主收银机,若存在至少两台副收银机,则可以通过Raft一致性算法选举出一台副收银机,将这台副收银机切换为主收银机。Raft一致性算法是一种工程上使用较为广泛的强一致性、去中心化、高可用的分布式协议。
在本申请的一个实施例中,所述至少一台副收银机在所述主收银机发生故障后,从其中至少一台副收银机中确定出一台副收银机作为新的主收银机,包括:
所述至少一台副收银机中的一台副收银机若在超过第一预设时间后,未接收到所述主收银机发送的心跳消息,则确定所述主收银机发生故障,增加选举任期号,将自身节点状态切换为候选者状态,向收银系统中的其他副收银机发送请求消息,所述请求消息用于请求其他副收银机选举自己为新的领导者;
副收银机接收所述其他副收银机的回复消息,若接收到的其他副收银机的回复消息满足预设规则,则将自身节点状态切换为领导者状态,作为新的主收银机,向其他副收银机发送心跳消息。
其中,第一预设时间是主收银机向副收银机周期性发送心跳消息的周期。预设规则可以是所述回复消息为预设消息的数量与1之和大于副收银机总数量的二分之一,预设消息表明其他副收银机选举自己为新的领导者,其他副收银机的回复消息中为预设消息的数量可以认为是接收到的选票的数量,而数量与1之和中的1是指副收银机本身选举自己为新的领导者,即副收银机投给自己的选票。
在至少一台副收银机确定一台副收银机作为新的主收银机时,若只有一台副收银机,则可以直接切换为主收银机,若存在至少两台副收银机,则可以通过Raft一致性算法选举出一台副收银机,将这台副收银机切换为主收银机。Raft一致性算法是一种工程上使用较为广泛的强一致性、去中心化、高可用的分布式协议。
Raft一致性算法是将系统中的角色分为领导者(Leader)、跟随者(Follower)和候选者(Candidate)。其中,领导者接收客户端请求,并向跟随者同步请求日志,当日志同步到大多数节点上后通知跟随者提交日志;跟随者接收并持久化领导者同步的日志,在领导者通知日志可以提交之后,提交日志;候选者是领导者选举过程中的临时角色。
在收银系统中,主收银机的节点状态为领导者状态,副收银机的节点状态为跟随者状态,主收银机会通过心跳机制维持自己的权威,即周期性的向所有跟随者发送心跳消息(即空白的日志条目)维持自己的权威,如果一个跟随者超过第一预设时间后,没有收到心跳信息,称之为选举超时,这时跟随者会认为没有可用的领导,作为跟随者的副收银机可发起重新选举。
副收银机在发起选举时,增加选举任期号,将自身的节点状态从跟随者状态切换为候选者状态,并行地向收银系统中的其他副收银机发送请求消息,其他副收银机接收到请求消息后,确定可选举该副收银机时,回复一个预设消息给副收银机,如果副收银机接收到预设消息的数量与1之和大于副收银机总数量的二分之一(如共有3台副收银机,接收到1个预设消息),即接收到大多数选票,则将自身节点状态从候选者状态切换为领导者状态,作为新的主收银机,向其他副收银机发送心跳消息,从而可以维持自己的权威,阻止新领导者的产生。所述请求消息为RPC(Remote Procedure Call,远程过程调用)消息。选举规则包括:当一个候选者在同一个选举任期号内接收到的预设消息的数量与1之和大于副收银机总数量的二分之一,就成为领导者;每个副收银机在一个任期内最多回复一个预设消息,即投出一张选票,并且按照先来先服务的原则,即将预设消息回复给最先收到的请求消息对应的副收银机;一旦候选者赢得选举,立刻成为领导者,并发送心跳维持权威,同时阻止新领导者的产生。
在本申请的一个实施例中,所述至少一台副收银机在所述主收银机发生故障后,从其中至少一台副收银机中确定出一台副收银机作为新的主收银机,还可以包括:若超过第二预设时间,副收银机接收到的其他副收银机的回复消息不满足预设规则,并且未接收到新的主收银机发送的心跳消息,则副收银机增加选举任期号,重新向收银系统中的其他副收银机发送请求消息,直至接收到的其他副收银机的回复消息满足预设规则或者接收到新的主收银机发送的心跳消息,结束选举。
其中,第二预设时间是发出请求消息后等待回复消息的最长允许时间。
在副收银机发出请求消息后,会存在三种结果:自己赢得这次选举;其他的副收银机赢得选举;一段时间过后,谁也没有获胜,例如多个跟随者同时成为候选者,当这种情况发生,每一个候选者都会超时。在副收银机发出请求消息后,到达第二预设时间时,如果接收到的其他副收银机的回复消息不满足预设规则,即没有接收到大多数选票,而且也未接收到新的主收银机发送的心跳消息,则将选举任期号加1,重新向收银系统中的其他副收银机发送请求消息,即继续尝试新一轮的选举,如果还是未选举成功,则再增加任期号进行重新选举,这样重复执行,直至接收到的其他副收银机的回复消息满足预设规则或者接收到新的主收银机发送的心跳消息,产生新的领导者,结束本次选举。这样通过循环进行选举,可以避免副收银机一直等待无法选出新的主收银机的情况,从而可以减少业务恢复时间。
本实施例提供的收银系统,通过主收银机进行收银业务处理并存储业务数据,并将业务数据存储到至少一台副收银机中,至少一台副收银机接入局域网,并分别通过局域网与主收银机连接,在主收银机发生故障后选择一台副收银机作为新的主收银机,执行后续的业务处理及存储业务数据工作,由于副收银机备份了业务数据,不需要从云端获取业务数据,不受外网环境影响,可以快速恢复业务处理,从而减少了数据恢复时间,减少了业务恢复时间。
实施例二
本实施例提供的一种收银系统,如图2所示,该收银系统200包括:主收银机210和至少一台副收银机220。
主收银机210,用于进行收银业务处理并存储业务数据,在至少一台副收银机220中确定至少一台副收银机作为备用收银机,并将所述业务数据存储到备用收银机中;
至少一台副收银机220,接入局域网,并分别通过局域网与所述主收银机连接,包括至少一台备用收银机221,用于在所述主收银机发生故障后,从至少一台备用收银机中确定出一台备用收银机221作为新的主收银机,执行后续的业务处理及存储业务数据工作;
至少一台备用收银机221用于存储所述主收银机210中的业务数据。
主收银机210负责收银业务处理和业务数据的存储,所有副收银机连接到主收银机,与主收银机进行业务交互,即副收银机发送业务请求,主收银机进行业务处理并存储业务数据。
备用收银机是可以同步存储主收银机中的业务数据的副收银机,而其他副收银机不需要同步存储主收银机中的业务数据。主收银机在确定备用收银机时,可以从副收银机中随机确定至少一台副收银机或者基于副收银机的性能(如磁盘大小以及网络情况等)确定至少一台副收银机,将确定的副收银机作为备用收银机,在存储业务数据时,将业务数据同步存储到备用收银机中。
本实施例提供的收银系统,通过主收银机在至少一台副收银机中确定至少一台副收银机,所确定的副收银机同步存储所述主收银机中的业务数据,在主收银机发生故障后,所述至少一台副收银机从至少一台存储所述业务数据的副收银机中确定出一台副收银机作为新的主收银机,执行后续的业务处理及存储业务数据工作,减少业务恢复时间,同时在副收银机较多的场景中,还可以从中选取同步存储业务数据的副收银机,在保证可以快速恢复业务处理的同时,不占用较多的副收银机的存储空间。
在上述技术方案的基础上,所述收银系统还可以包括:服务器,与所述主收银机通过互联网连接,用于同步存储所述主收银机发送的业务数据。
主收银机还可以将业务数据同步存储到云端服务器中,以避免副收银机的业务数据不完整或者没有备份业务数据时无法恢复业务处理的情况,而且在没有副收银机的情况下也可以通过获取云端服务器存储的业务数据以恢复收银业务处理。
在上述技术方案的基础上,所述新的主收银机还用于:若检测到自身存储的业务数据不完整,则从所述服务器获取业务数据。
在主收银机发生故障后,通过选举产生新的主收银机后,新的主收银机对自身存储的业务数据进行完整性检测,确定自身存储的业务数据是否完整,主要是根据业务数据本身检测业务数据的业务完整性,例如业务数据中有菜品的数据,但是没有桌台的数据,这就确定业务数据不完整。在新的主收银机检测到自身存储的业务数据完整时,可以直接恢复收银业务处理。在新的主收银机检测到自身存储的业务数据不完整时,可以从备份了业务数据的服务器获取业务数据,从而恢复收银业务处理,避免了副收银机自身存储的业务数据不完整时无法恢复业务处理的情况。
实施例三
本实施例提供的一种收银机切换方法,该收银机切换方法可以由上述实施例所述的收银系统执行。如图3所示,该方法包括:步骤310至步骤330。
步骤310,主收银机进行收银业务处理并存储业务数据。
收银系统包括主收银机和至少一台副收银机,副收银机可以和主收银机进行业务交互,主收银机进行收银业务处理,并存储产生的业务数据。主收银机可以从至少一台副收银机中确定至少一台副收银机,所确定的副收银机同步存储所述主收银机中的业务数据。
步骤320,至少一台副收银机获取所述主收银机中的业务数据,并存储所述业务数据。
各个副收银机会通过各自的数据拉取线程分别拉取主收银机中的业务数据,并对业务数据进行同步存储。
在本申请的一个实施例中,主收银机进行收银业务处理并存储业务数据,包括:所述主收银机进行收银业务处理,并将业务数据对应的数据变更记录写入到数据变更文件,将业务数据存储到主收银机对应的数据库中;
所述至少一台副收银机获取所述主收银机中的业务数据,并存储所述业务数据,包括:所述至少一台副收银机读取所述数据变更文件中的数据变更记录,获取业务数据,并将业务数据存储到副收银机对应的数据库中。
图4是本申请实施例中的数据同步的示意图,如图4所示,主收银机和副收银机的数据库采用WAL数据库框架,主收银机在进行业务处理产生业务数据后,将业务数据对应的数据变更记录写入到数据变更文件,副收银机通过数据拉取线程读取主收银机中的数据变更文件,获取到数据变更记录,从而进行数据变更重放,即根据数据变更记录获取到业务数据,将业务数据存储到自身的数据库中,完成对主收银机中的业务数据的备份。通过采用WAL数据库框架,主收银机在进行收银业务处理时无需关注数据的备份和同步问题,从而实现了数据同步和业务处理的解耦。
在本申请的一个实施例中,所述方法还可以包括:所述主收银机启动数据同步线程,读取所述数据变更文件中的数据变更记录,获取业务数据,并将业务数据发送给服务器,以请求所述服务器保存所述业务数据。
如图4所示,主收银机还可以启动后台的数据同步线程,通过该数据同步线程读取数据变更文件中的数据变更记录,获取到数据变更记录对应的业务数据,将业务数据发送给服务器,从而由服务器同步保存所述业务数据,可以避免备用收银机的业务数据不完整或者没有备份业务数据时无法快速恢复业务处理的情况。
步骤330,在所述主收银机发生故障后,所述至少一台副收银机从至少一台副收银机中确定出一台副收银机作为新的主收银机,执行后续的业务处理及存储业务数据工作。
至少一台副收银机在检测到主收银机发生故障后,从至少一台副收银机中选择一台副收银机作为新的主收银机,即若只有一台副收银机,则将该副收银机切换为主收银机,若有两台或两台以上副收银机,则从这些副收银机中选举一台副收银机,作为新的主收银机。由于副收银机同步存储了主收银机中的业务数据,从而可以快速恢复业务处理。其中,主收银机发生故障包括主收银机宕机或者网络速度较慢等。至少一台副收银机可以根据是否正常接收到主收银机的心跳消息来确定主收银机是否发生故障,即若超过第一预设时间未接收到主收银机发送的心跳消息,则确定主收银机发生故障。
在本申请的一个实施例中,所述在所述主收银机发生故障后,所述至少一台副收银机从至少一台副收银机中确定出一台副收银机作为新的主收银机,包括:所述至少一台副收银机中的一台副收银机若在超过第一预设时间后,未接收到所述主收银机发送的心跳消息,则确定所述主收银机发生故障,增加选举任期号,并将自身节点状态切换为候选者状态,向收银系统中的其他副收银机发送请求消息,所述请求消息用于请求其他副收银机选举自己为新的领导者;副收银机接收所述其他副收银机的回复消息,若接收到的其他副收银机的回复消息满足预设规则,则将自身节点状态切换为领导者状态,作为新的主收银机,并向其他副收银机发送心跳消息。
其中,第一预设时间是主收银机向副收银机周期性发送心跳消息的周期。预设规则可以是所述回复消息为预设消息的数量与1之和大于副收银机总数量的二分之一,预设消息表明其他副收银机选举自己为新的领导者,其他副收银机的回复消息中为预设消息的数量可以认为是接收到的选票的数量,而数量与1之和中的1是指副收银机本身选举自己为新的领导者,即副收银机投给自己的选票。
在至少一台副收银机选择一台副收银机作为新的主收银机时,若只有一台副收银机,则可以直接切换为主收银机,若存在至少两台副收银机,则可以通过Raft一致性算法选举出一台副收银机,将这台副收银机切换为主收银机。
Raft一致性算法是将系统中的角色分为领导者(Leader)、跟随者(Follower)和候选者(Candidate)。在收银系统中,主收银机的节点状态为领导者状态,副收银机的节点状态为跟随者状态,主收银机会通过心跳机制维持自己的权威,即周期性的向所有跟随者发送心跳消息(即空白的日志条目)维持自己的权威,如果一个跟随者超过第一预设时间后,没有收到心跳信息,称之为选举超时,这时跟随者会认为没有可用的领导,作为跟随者的备用收银机可发起重新选举。
副收银机在发起选举时,增加选举任期号,将自身的节点状态从跟随者状态切换为候选者状态,并行地向收银系统中的其他副收银机发送请求消息,其他副收银机接收到请求消息后,确定可选举该副收银机时,回复一个预设消息给副收银机,如果副收银机接收到预设消息的数量与1之和大于副收银机总数量的二分之一(如共有3台副收银机,接收到1个预设消息),则将自身节点状态从候选者状态切换为领导者状态,作为新的主收银机,向其他副收银机发送心跳消息,从而可以维持自己的权威,阻止新领导者的产生。所述请求消息为RPC消息。选举规则包括:当一个候选者在同一个选举任期号内接收到的预设消息的数量与1之和大于副收银机总数量的二分之一,就成为领导者;每个副收银机在一个任期内最多回复一个预设消息,即投出一张选票,并且按照先来先服务的原则,即将预设消息回复给最先收到的请求消息对应的副收银机;一旦候选者赢得选举,立刻成为领导,并发送心跳维持权威,同时阻止新领导者的产生。
在本申请的一个实施例中,所述在所述主收银机发生故障后,所述至少一台副收银机从至少一台副收银机中确定出一台副收银机作为新的主收银机,还包括:若超过第二预设时间,副收银机接收到的其他副收银机的回复消息不满足预设规则,并且未接收到新的主收银机发送的心跳消息,则副收银机增加选举任期号,重新向收银系统中的其他副收银机发送请求消息,直至接收到的其他副收银机的回复消息满足预设规则或者接收到新的主收银机发送的心跳消息,结束选举。
其中,第二预设时间是发出请求消息后等待回复消息的最长允许时间。
在副收银机发出投票请求后,到达第二预设时间时,如果接收到的其他副收银机的回复消息不满足预设规则,而且也未接收到新的主收银机发送的心跳消息,则将选举任期号加1,重新向收银系统中的其他副收银机发送请求消息,即继续尝试新一轮的选举,如果还是未选举成功,则再增加任期号进行重新选举,这样重复执行,直至接收到的其他副收银机的回复消息满足预设规则或者接收到新的主收银机发送的心跳消息,产生新的领导者,结束本次选举。这样通过循环进行选举,可以避免副收银机一直等待无法选出新的主收银机的情况,从而可以减少业务恢复时间。
本实施例提供的收银机切换方法,通过主收银机进行收银业务处理并存储业务数据,至少一台副收银机获取所述主收银机中的业务数据,并存储业务数据,在主收银机宕机后,至少一台副收银机确定出一台副收银机作为新的主收银机,执行后续的业务处理及存储业务数据工作,由于副收银机备份了业务数据,不需要从云端获取业务数据,不受外网环境影响,可以快速恢复业务处理,从而减少了数据恢复时间,减少了业务恢复时间。
在上述技术方案的基础上,在所述至少一台副收银机从至少一台副收银机中确定出一台副收银机作为新的主收银机之后,还可选包括:所述新的主收银机对自身存储的业务数据进行完整性校验;若自身存储的业务数据完整,则所述新的主收银机执行后续的收银业务处理及存储业务数据工作;若自身存储的业务数据不完整,则所述新的主收银机从所述服务器获取业务数据,并执行后续的收银业务处理及存储业务数据工作。
在主收银机发生故障后,通过选举产生新的主收银机,新的主收银机对自身存储的业务数据进行完整性检测,确定自身存储的业务数据是否完整,主要是检测业务数据的业务完整性,例如业务数据中有菜品的数据,但是没有桌台的数据,这就确定业务数据不完整。在新的主收银机检测到自身存储的业务数据完整时,可以直接恢复收银业务处理,执行后续的收银业务处理及存储业务数据工作。在新的主收银机检测到自身存储的业务数据不完整时,可以从备份了业务数据的服务器获取业务数据,从而恢复收银业务处理,执行后续的收银业务处理及存储业务数据工作,避免了副收银机自身存储的业务数据不完整时无法恢复业务处理的情况。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
以上对本申请实施例提供的一种收银系统及收银机切换方法进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件实现。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。

Claims (13)

1.一种收银系统,其特征在于,包括:
主收银机,用于进行收银业务处理并存储业务数据,并将所述业务数据存储到至少一台副收银机中,其中,各个副收银机分别对所述主收银机中的所述业务数据进行同步存储;
至少一台副收银机,接入局域网,并分别通过局域网与所述主收银机连接,用于存储所述主收银机中的业务数据,在所述主收银机发生故障后,从其中至少一台副收银机中确定出一台副收银机作为新的主收银机,执行后续的业务处理及存储业务数据工作;每台副收银机和所述主收银机进行业务交互,在接收到用户的业务请求时,将业务请求发送给所述主收银机,由所述主收银机基于自身存储的业务数据对该业务请求进行处理。
2.根据权利要求1所述的系统,其特征在于,所述主收银机将所述业务数据存储到至少一台副收银机中,包括:
所述主收银机在所述至少一台副收银机中确定至少一台副收银机,所确定的副收银机存储所述主收银机中的业务数据;
所述从其中至少一台副收银机中确定出一台副收银机作为新的主收银机,执行后续的业务处理及存储业务数据工作,包括:
所述至少一台副收银机从至少一台存储所述业务数据的副收银机中确定出一台副收银机作为新的主收银机,执行后续的业务处理及存储业务数据工作。
3.根据权利要求1所述的系统,其特征在于,所述至少一台副收银机在所述主收银机发生故障后,从其中至少一台副收银机中确定出一台副收银机作为新的主收银机,包括:
所述至少一台副收银机中的一台副收银机若在超过第一预设时间后,未接收到所述主收银机发送的心跳消息,则确定所述主收银机发生故障,增加选举任期号,将自身节点状态切换为候选者状态,向收银系统中的其他副收银机发送请求消息,所述请求消息用于请求其他副收银机选举自己为新的领导者;
副收银机接收所述其他副收银机的回复消息,若接收到的其他副收银机的回复消息满足预设规则,则将自身节点状态切换为领导者状态,作为新的主收银机,向其他副收银机发送心跳消息。
4.根据权利要求3所述的系统,其特征在于,所述至少一台副收银机在所述主收银机发生故障后,从其中至少一台副收银机中确定出一台副收银机作为新的主收银机,还包括:
若超过第二预设时间,副收银机接收到的其他副收银机的回复消息不满足预设规则,并且未接收到新的主收银机发送的心跳消息,则副收银机增加选举任期号,重新向收银系统中的其他副收银机发送请求消息,直至接收到的其他副收银机的回复消息满足预设规则或者接收到新的主收银机发送的心跳消息,结束选举。
5.根据权利要求1所述的系统,其特征在于,还包括:
服务器,与所述主收银机通过互联网连接,用于存储所述主收银机发送的业务数据。
6.根据权利要求5所述的系统,其特征在于,所述新的主收银机还用于:
若检测到自身存储的业务数据不完整,则从所述服务器获取业务数据。
7.根据权利要求1所述的系统,其特征在于,所述主收银机具体用于:
进行收银业务处理,并将业务数据对应的数据变更记录写入到数据变更文件,将业务数据存储到主收银机对应的数据库中;
所述至少一台副收银机存储所述主收银机中的业务数据,包括:
所述至少一台副收银机读取所述数据变更文件中的数据变更记录,获取业务数据,并将业务数据存储到副收银机对应的数据库中。
8.一种收银机切换方法,其特征在于,包括:
主收银机进行收银业务处理并存储业务数据;
至少一台副收银机获取所述主收银机中的业务数据,并存储所述业务数据,其中,各个副收银机分别对所述主收银机中的所述业务数据进行同步存储;
在所述主收银机发生故障后,所述至少一台副收银机从至少一台副收银机中确定出一台副收银机作为新的主收银机,执行后续的业务处理及存储业务数据工作;
每台副收银机和所述主收银机进行业务交互,在接收到用户的业务请求时,将业务请求发送给所述主收银机,由所述主收银机基于自身存储的业务数据对该业务请求进行处理。
9.根据权利要求8所述的方法,其特征在于,所述主收银机进行收银业务处理并存储业务数据,包括:
所述主收银机进行收银业务处理,并将业务数据对应的数据变更记录写入到数据变更文件,将业务数据存储到主收银机对应的数据库中;
所述至少一台副收银机获取所述主收银机中的业务数据,并存储所述业务数据,包括:
所述至少一台副收银机读取所述数据变更文件中的数据变更记录,获取业务数据,并将业务数据存储到副收银机对应的数据库中。
10.根据权利要求9所述的方法,其特征在于,还包括:
所述主收银机启动数据同步线程,读取所述数据变更文件中的数据变更记录,获取业务数据,并将业务数据发送给服务器,以请求所述服务器保存所述业务数据。
11.根据权利要求10所述的方法,其特征在于,在所述至少一台副收银机从至少一台副收银机中确定出一台副收银机作为新的主收银机之后,还包括:
所述新的主收银机对自身存储的业务数据进行完整性校验;
若自身存储的业务数据完整,则所述新的主收银机执行后续的收银业务处理及存储业务数据工作;
若自身存储的业务数据不完整,则所述新的主收银机从所述服务器获取业务数据,并执行后续的收银业务处理及存储业务数据工作。
12.根据权利要求8所述的方法,其特征在于,所述在所述主收银机发生故障后,所述至少一台副收银机从至少一台副收银机中确定出一台副收银机作为新的主收银机,包括:
所述至少一台副收银机中的一台副收银机若在超过第一预设时间后,未接收到所述主收银机发送的心跳消息,则确定所述主收银机发生故障,增加选举任期号,并将自身节点状态切换为候选者状态,向收银系统中的其他副收银机发送请求消息,所述请求消息用于请求其他副收银机选举自己为新的领导者;
副收银机接收所述其他副收银机的回复消息,若接收到的其他副收银机的回复消息满足预设规则,则将自身节点状态切换为领导者状态,作为新的主收银机,并向其他副收银机发送心跳消息。
13.根据权利要求12所述的方法,其特征在于,所述在所述主收银机发生故障后,所述至少一台副收银机从至少一台副收银机中确定出一台副收银机作为新的主收银机,还包括:
若超过第二预设时间,副收银机接收到的其他副收银机的回复消息不满足预设规则,并且未接收到新的主收银机发送的心跳消息,则副收银机增加选举任期号,重新向收银系统中的其他副收银机发送请求消息,直至接收到的其他副收银机的回复消息满足预设规则或者接收到新的主收银机发送的心跳消息,结束选举。
CN202010340155.5A 2020-04-26 2020-04-26 收银系统及收银机切换方法 Active CN111653052B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010340155.5A CN111653052B (zh) 2020-04-26 2020-04-26 收银系统及收银机切换方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010340155.5A CN111653052B (zh) 2020-04-26 2020-04-26 收银系统及收银机切换方法

Publications (2)

Publication Number Publication Date
CN111653052A CN111653052A (zh) 2020-09-11
CN111653052B true CN111653052B (zh) 2022-06-21

Family

ID=72346575

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010340155.5A Active CN111653052B (zh) 2020-04-26 2020-04-26 收银系统及收银机切换方法

Country Status (1)

Country Link
CN (1) CN111653052B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112669543B (zh) * 2020-12-17 2022-04-15 杭州东骏科技有限公司 一种购物工具自组织的结算方法及装置
CN115471935B (zh) * 2022-09-05 2023-12-26 多点(深圳)数字科技有限公司 一种可人工服务与自助服务互换式收银系统及其实现方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105719414A (zh) * 2014-12-05 2016-06-29 航天信息股份有限公司 Pos终端的开票方法及装置、以及开票服务器端
CN106302596A (zh) * 2015-06-03 2017-01-04 北京京东尚科信息技术有限公司 一种服务发现的方法和装置
CN106790563A (zh) * 2016-12-27 2017-05-31 浙江省公众信息产业有限公司 分布式存储系统和方法
CN107291787A (zh) * 2016-04-13 2017-10-24 中兴通讯股份有限公司 主备数据库切换方法和装置
CN109005203A (zh) * 2017-06-06 2018-12-14 无锡雅座在线科技股份有限公司 数据同步方法及装置、存储介质、处理器、终端
CN109544827A (zh) * 2018-11-27 2019-03-29 福州市台江区金科电子科技有限公司 带数据备份装置的收银机及其使用方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04126423A (ja) * 1990-09-17 1992-04-27 Omron Corp データ処理システム
JP2005025324A (ja) * 2003-06-30 2005-01-27 Seiko Epson Corp Pos端末装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105719414A (zh) * 2014-12-05 2016-06-29 航天信息股份有限公司 Pos终端的开票方法及装置、以及开票服务器端
CN106302596A (zh) * 2015-06-03 2017-01-04 北京京东尚科信息技术有限公司 一种服务发现的方法和装置
CN107291787A (zh) * 2016-04-13 2017-10-24 中兴通讯股份有限公司 主备数据库切换方法和装置
CN106790563A (zh) * 2016-12-27 2017-05-31 浙江省公众信息产业有限公司 分布式存储系统和方法
CN109005203A (zh) * 2017-06-06 2018-12-14 无锡雅座在线科技股份有限公司 数据同步方法及装置、存储介质、处理器、终端
CN109544827A (zh) * 2018-11-27 2019-03-29 福州市台江区金科电子科技有限公司 带数据备份装置的收银机及其使用方法

Also Published As

Publication number Publication date
CN111653052A (zh) 2020-09-11

Similar Documents

Publication Publication Date Title
CN109951331B (zh) 用于发送信息的方法、装置和计算集群
WO2016150066A1 (zh) 一种主节点选举方法、装置及存储系统
CN101079896B (zh) 一种构建并行存储系统多可用性机制并存架构的方法
CN111653052B (zh) 收银系统及收银机切换方法
CA2911001C (en) Failover system and method
CN103634411B (zh) 一种具有状态一致性的市场数据实时广播系统及方法
CN107832138A (zh) 一种扁平化的高可用namenode模型的实现方法
CN107919977B (zh) 一种基于Paxos协议的在线扩容、在线缩容的方法和装置
CN107241430A (zh) 一种基于分布式存储的企业级容灾系统及容灾控制方法
CN111475583B (zh) 事务处理方法及装置
US11086902B2 (en) Method and system for implementing a redo repeater
CN113987064A (zh) 数据处理方法、系统及设备
CN110413687B (zh) 基于节点互证校验的分布式事务故障处理方法及相关设备
CN102938705A (zh) 一种高可用多机备份路由表管理与切换方法
CN108228581B (zh) Zookeeper兼容通信方法、服务器及系统
US20140108484A1 (en) Method and system for optimizing distributed transactions
CN110635941A (zh) 一种数据库节点集群故障迁移方法与装置
CN116055563A (zh) 基于Raft协议的任务调度方法、系统、电子设备和介质
CN110830582A (zh) 一种基于服务器集群选主方法和装置
US11522966B2 (en) Methods, devices and systems for non-disruptive upgrades to a replicated state machine in a distributed computing environment
CN107465725B (zh) 基于客户信息控制系统的异构长事务处理系统及方法
CN105323271B (zh) 一种云计算系统以及云计算系统的处理方法和装置
CN113065963A (zh) 一种期货主席交易系统
CN107404511B (zh) 集群中服务器的替换方法及设备
CN115934260A (zh) 基于xa两阶段提交协议的分布式事务提交方法及装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant