选举服务器(如何架设游戏服务器)

选举计票方法

选举计票方法专利名称:高速后台选举计票系统的制作方法

技术领域:

本实用新型涉及一种高速后台选举计票系统。

背景技术:

很多国家机关和企事业单位为了便于管理和发展都会定期或者不定期的举办各种会议,其中有部分会议可能涉及到表决事项,为了提高会议表决的效率和计票准确性,电子表决计票系统的应用也越来越广泛。传统的电子表决计票系统大多采用光学标记阅读器(OMR)读取选票信息,光学标记阅读机能识别信息卡上的涂写内容,并传入计算机中处理,其基本原理是发光器件发出的光照射在信息卡的信息位上,如该信息位被涂黑则部分光被吸收,反射光变弱,否则反射光变强,由对应的接收器件将强弱不同的光信息转移成电信号,再经A/D转换、数字滤波、模式识别后完成对信息卡中字符的识别。但光学标记阅读机识别选票时,对选票格式要求高,识别速度不甚理想。还有一部分传统的选举计票系统,虽然使用扫描仪读取选票信息,但是传统的扫描仪不具有自动进纸的功能,在扫描选票信息时需要一张一张的送纸到扫描仪内,操作十分麻烦;此外,传统的扫描仪也不可以将扫描的模拟信号转化为数字信号然后通过接口传输到外接设备上。

实用新型内容本实用新型的目的在于克服现有选举计票系统的不足,提供一种扫描速度快、误码率低且识别范围广的高速后台选举机票系统,同时该选票系统还具有自动进纸的功能,且可以将扫描的结果通过USB接口传输到外接设备上。本实用新型的目的是通过以下技术方案实现的高速后台选举计票系统,它包括服务器、交换机和至少一个最小系统配置单元,最小系统配置单元通过交换机与服务器连接,所述的最小系统配置单元包括计算机及与之连接的高速扫描仪。高速扫描仪包括设有送纸板的送纸机构和设有搓纸轮、搓纸垫的搓纸机构,送纸板的下部设置有送纸板调节装置,送纸板调节装置包括送纸板调节弹簧、送纸板调节顶块、送纸板调节机构固定架和送纸板调节螺钉,送纸板调节弹簧的一端固定在送纸板末端的上方,另一端固定在送纸板调节顶块上,送纸板调节顶块通过送纸板调节螺钉与送纸板调节机构固定架连接;搓纸垫的下部设置有搓纸调节装置,搓纸调节装置包括搓纸垫固定架、搓纸机构安装架、搓纸调节弹簧、搓纸调节弹簧顶板和搓纸调节螺钉,搓纸垫固定架置于搓纸垫的下方,搓纸调节弹簧的一端固定在搓纸垫固定架内,另一端固定在搓纸调节弹簧顶板上,搓纸调节弹簧顶板通过搓纸调节螺钉与搓纸机构安装架连接。高速扫描仪还设置有电机、扫描条、电路板和USB接口,电机与搓纸轮传动连接,扫描条的输出接电路板的输入,电路板的输出接USB接口的输入。本实用新型的有益效果是扫描速度快、误码率低、识别范围广,可以将扫描的结果通过USB接口传输到外接设备上。

图1为高速后台选举计票系统结构示意图图2高速扫描仪进纸机构结构示意图图中,1-送纸板,2"送纸板调节弹簧,3"送纸板调节顶块,4"送纸板调节机构固定架,5-送纸板调节螺钉,6-搓纸轮,7-搓纸垫,8-搓纸垫固定架,9-搓纸机构安装架,10-搓纸调节弹簧,11-搓纸调节弹簧顶板,12-搓纸调节螺钉,13-电机,14-扫描条,15-电路板, 16-USB接口。

具体实施方式

以下结合附图进一步详细说明本实用新型的技术方案如图1所示,高速后台选举计票系统,它包括一台服务器和两个最小系统配置单元,所述的最小系统配置单元包括计算机及与之连接的高速扫描仪,服务器和最小系统配置单元通过网络互连设备互联,其中网络互连设备为交换机。如图2所示,所述高速扫描仪由送纸机构和搓纸机构组成。其中送纸板1的下部设有送纸调节装置,搓纸垫7的下部设有搓纸调节装置。由送纸调节装置和搓纸调节装置配合完成扫描仪的自动进纸和整个工作过程。送纸调节装置由送纸板调节弹簧2,送纸板调节顶块3,送纸板调节机构固定架4和送纸板调节螺钉5组成。送纸板调节弹簧2的一端固定在送纸板1末端的下方,另一端固定在送纸板调节顶块3上,调节顶块3通过送纸板调节螺钉5与送纸板调节机构固定架 4连接。搓纸调节装置由搓纸垫固定架8,搓纸机构安装架9,搓纸调节弹簧10,搓纸调节弹簧顶板11和搓纸调节螺钉12组成。搓纸垫固定架8置于搓纸垫7的下方,搓纸调节弹簧10的一端固定在搓纸垫固定架8内,另一端固定在搓纸调节弹簧顶板11上,搓纸调节弹簧顶板11通过搓纸调节螺钉12与搓纸机构安装架9连接。根据需要扫描的纸张的厚度和数量要求,灵活调节送纸板调节螺钉5以改变送纸板调节弹簧给送纸板施加的压力,同时调节搓纸调节螺钉12可以改变搓纸调节弹簧对搓纸垫施加的压力,使纸张能够保持相同速度通过仪器,从而达到控制扫描图像的稳定性的目的。在高速扫描仪工作时,根据待扫描纸张情况,将送纸装置和搓纸装置调到合适位置,电机13转动带动搓纸轮转动,实现自动进纸。纸张进入扫描仪后,由电路板15上的硬件电路和控制程序驱动扫描条14对纸张进行实时的图像采集,并将采样到的模拟信号转化成相应的二进制数据存储在电路板15上,再由电路板15上的USB接口芯片通过USB接口 16实时地将图像数据传输给主机,最后由主机形成一张完整的灰度图像。所述的高速扫描仪的扫描速度为双面60张/分钟,一次可放入100张选票,可以

自动进纸,不需人工一张一张送纸。一个320人的中等会议选举计票,其处理时间(包括投票、读票、显示结果、打印结果)约为5 10分钟。[0022]如果选举规模超过320人,则可以采用多个最小系统配置单元并行处理,为此,可设置一台服务器,服务器和最小系统配置单元通过网络互连设备互联。本实用新型的工作过程大致为与会代表在会议现场将选票投入到普通票箱中,工作人员将选票收集起来,放入高速扫描仪的送纸盒,高速扫描仪自动一张一张地扫描每张选票,并将选票正反面图像信息传输到计算机或服务器中,再经高速后台选举计票软件进行识别、处理和统计得到选举结果。本实用新型所述的高速后台选举计票系统具有以下主要功能(1)可提前准备多次会议的选票和模式,正式选举时只需简单的切换;(2)—次选举允许同时使用1至64种不同类型的选票,系统按类自动进行数据处理,统计分析;(3)具备党章和我国宪法规定的党和国家最高人事决策支持所需的完善功能,适用于等额选票、差额选举及等额、差额混合型选举。适用于选举票、表决票等信息处理;(4)系统具有对任一候选人的“弃权”功能对任何候选人,与会者可投“赞成票”、“反对票”或“弃权票”,一次选举使用的1至64种选票中,任一类既可以含弃权功能,也可以不含弃权功能;(5)校正功能系统可对非正常的误判废选票进行校正,提高数据处理精度,确保选举者权利,这种校正功能在选举办法规定后,监票人监督下进行,代表或委员投票方向及正反面不受限制,票箱自动识别、处理、控制;(6)选票用纸适应范围宽,印刷方便,填写选票简单,填写选票用笔没有限制,代表使用方便;(7)实现“另提人”得票数据的实时计算机处理和有效性判别与控制,实现废票的实时判定与校正处理,另提人和废票的处理不占用额外时间。本实用新型所述的高速后台选举计票系统的主要性能包括(1)选票①选票用纸120 250克双白卡片纸;②选票尺寸A4QlOmmχ 297mm);③选票候选人最大容量(同时使用赞成、反对和弃权三个信息块)350人。(2)选举系统①选票信息识别误码率彡IO"10;②一次选举中能同时对广64种选票进行分类处理;③系统能满足从2人到10000人不同规模会议选举的需要;④系统可靠性指标达误判选票率λ ^ IO^张;⑤选举结果处理时间(打印文档和显示文档):5^10分钟。(3)高速扫描仪①选票扫描分辨率200DPI;②选票识别精度1/8毫米;③选票扫描速度双面60张/分钟;④送纸盒容量100张。本实用新型采用高速扫描仪作为选票扫描工具,扫描速度双面60张/分钟,选票信息识别误码率d(Tw,可同时对广64种选票进行分类处理,具有结构简单、可扩展性强、处理方法灵活、可以将扫描的结果通过USB接口传输到外接设备上等优点。

权利要求1.高速后台选举计票系统,其特征在于它包括服务器、交换机和至少一个最小系统配置单元,最小系统配置单元通过交换机与服务器连接,所述的最小系统配置单元包括计算机及与之连接的高速扫描仪;高速扫描仪包括设有送纸板(1)的送纸机构和设有搓纸轮(6)、搓纸垫(7)的搓纸机构,送纸板(1)的下部设置有送纸板调节装置,送纸板调节装置包括送纸板调节弹簧(2)、送纸板调节顶块(3)、送纸板调节机构固定架(4)和送纸板调节螺钉(5),送纸板调节弹簧(2)的一端固定在送纸板(1)末端的上方,另一端固定在送纸板调节顶块(3)上,送纸板调节顶块(3)通过送纸板调节螺钉(5)与送纸板调节机构固定架(4)连接;搓纸垫(7)的下部设置有搓纸调节装置,搓纸调节装置包括搓纸垫固定架(8)、搓纸机构安装架(9)、搓纸调节弹簧(10)、搓纸调节弹簧顶板(11)和搓纸调节螺钉(12),搓纸垫固定架(8)置于搓纸垫(7)的下方,搓纸调节弹簧(10)的一端固定在搓纸垫固定架(8)内,另一端固定在搓纸调节弹簧顶板(11)上,搓纸调节弹簧顶板(11)通过搓纸调节螺钉(12)与搓纸机构安装架(9)连接;高速扫描仪还设置有电机(13)、扫描条(14)、电路板(15)和USB接口( 16),电机(13)与搓纸轮(6)传动连接,扫描条(14)的输出接电路板(15)的输入,电路板(15)的输出接 USB接口(16)的输入。

专利摘要本实用新型公开了一种高速后台选举计票系统,它包括服务器、交换机和至少一个最小系统配置单元,最小系统配置单元包括计算机及与之连接的高速扫描仪,高速扫描仪包括设有送纸板(1)的送纸机构和设有搓纸轮(6)、搓纸垫(7)的搓纸机构,送纸板(1)和搓纸垫(7)的下部都设置有调节装置,高速扫描仪还设置有电机(13)、扫描条(14)、电路板(15)和USB接口(16),扫描条(14)的输出接电路板(15)的输入,电路板(15)的输出接USB接口(16)的输入。本实用新型的有益效果是扫描速度快、误码率低、识别范围广,可以将扫描的结果通过USB接口传输到外接设备上。

Zookeeper的选举机制理论总结

这篇文章我们重点理解Zookeeper选举机制的思路。

一,Zookeeper选举过程中服务器的状态。

LOOKING:寻找leader状态,该状态下,服务器认为当前集群没有leader,会发起leader选举。在选举过程中,所有服务器的状态都是LOOKING。

FOLLOWING:跟随者状态,该状态下,当前服务器是follower,并且知道leader是谁。此时选举已经结束。

LEADING:领导者状态,该状态下,当前服务器是leader,会与follower维持心跳检测。此时选举已经结束。

OBSERVING:观察者状态,该状态下的服务器是observer,不参与选举。

二,Zookeeper选票数据结构

每个服务器在进行leader选举时,都会发送以下几个关键属性信息:

logicalclock:投票轮次,自增的,volatile的,初始值为1,也就是第一轮选举。

state:当前服务器的状态。

self_id:当前服务器的myid。

self_zxid:当前服务器的最新的zxid。

vote_id:当前服务器推举的leader服务器的myid。

vote_zxid:当前服务器推举的leader服务器的最新的zxid。

三,Zookeeper选举算法

从3.4.0版本开始,Zookeeper使用FastLeaderElection选举算法,可以解决之前的LeaderElection算法收敛慢的问题。更为重要的是,FastLeaderElection算法解决了脑裂问题,保证leader的唯一性。也就是说,从Zookeeper3.4.0版本开始,Zookeeper可能存在的问题只有2个了:

1,客户端没有缓存。

2,没有自我保护机制。

四,Zookeeper选举流程

1,自增选举轮次。

Zookeeper选举机制有一个前提条件:在一个轮次的选举中,所有选票必须属于该轮次。在选举的某一时刻,确实可能存在某张选票不属于该轮次的情况。所以Zookeeper在选举过程中,始终会先核对选票的轮次。

2,初始化选票。

每个服务器在广播自己的选票时,都会先清空投票箱,这个投票箱存放的是所有接收到的来自其他服务器的选票。投票箱中只记录每个服务器的最后一次投票,如果服务器更新自己的投票,则其他服务器会更新该服务器的选票。

举个例子:服务器2投票给服务器3,服务器3投票给服务器1,则服务器1的投票箱中有如下记录

(2,3),(3,1),(1,1)

当然,这里的选票的结构是简化版的,如果加上选举轮次logicalclock,可能是这样的:

(8,2,3),(8,3,1),(8,1,1)

第一位代表当前的选举轮次,第8轮选举。

3,发送初始化选票。

每个服务器在投票开始阶段,都把票投给自己,然后通过广播通知其他服务器。

4,接收外部选票。

每台服务器都会尝试从其他服务器获取选票,并保存到自己的投票箱。

5,判断选举轮次logicalclock。

确保是同一轮次的投票。如果当前服务器发现自己的轮次落后了,则自增logicalclock,然后重新发送广播告诉其他服务器。

6,选票PK确认自己最终的投票。

注意,在这个阶段,每台服务器都可能改变自己的想法,重新确定把选票投给谁。

有3条规则:

第一条规则:如果当前服务器的logicalclock小于其他服务器,说明自己的选举轮次过期了,此时更新自己的logicalclock,然后重新把自己的选票发送出去。

第二条规则:如果当前服务器的logicalclock等于其他服务器,说明大家进行的是同一轮次的选举,此时比较二者的vote_zxid,vote_zxid大者获胜。如果当前服务器输了,则更新自己的投票为胜者,然后广播告诉其他服务器。

第三条规则:如果当前服务器的logicalclock等于其他服务器,说明大家进行的是同一轮次的选举,此时比较二者的vote_zxid,如果vote_zxid也相等,则比较二者的vote_myid,vote_myid大者获胜。如果当前服务器输了,则更新自己的投票为胜者,然后广播告诉其他服务器。

7,统计选票。

如果已经确定有过半服务器认可了自己的投票,则终止投票。否则继续接收其他服务器的投票。

8,更新服务器状态。

投票结束后,服务器更新自己的状态serverState,如果投给自己的选票过半了,则将自己更新为LEADING,否则将自己更新为FOLLOWING。

这里思考一个问题:Zookeeper启动阶段,myid最大的服务器是不是一定会被选举为leader?

常见分布式集群选举机制总结

1,Zookeeper-- paxos

2,kafka-- zookeeper上创建节点

3,redis--哨兵模式

4,Eureka--相互复制

我们探讨这几个集群的选举机制,其实就是探讨它们的高可用性。如果集群中的某些节点挂了,如何保证可用性?这个问题是分布式系统面临的三大问题之一。

Zookeeper的leader选举机制,是这四种集群中最复杂的选举机制,同时也是这四种集群中最接近paxos算法的实现。相比于Zookeeper的选举机制,kafka集群、redis集群、Eureka集群的选举机制简单了许多。

Zookeeper的leader选举是Zookeeper实现数据一致性的关键,同时也存在一些问题。认清Zookeeper的优点与缺陷,对于我们使用好它还是很有必要的。

Zookeeper的选举机制有2个触发条件:集群启动阶段和集群运行阶段leader挂机。这2种场景下选举的流程基本一致,我们以集群运行阶段leader挂机为例来进行说明。leader挂机以后,重新选举leader,选举的流程如下:

1,Zookeeper集群中的follower检测到leader挂机,然后把自己的状态置为LOOKING,开始进行leader选举。

2,每台服务器选举自己为leader,然后把自己的选票通过广播通知其他服务器。

3,每台服务器接收来自其他服务器的选票,并进行合法性校验,主要有两点校验,选举轮次校验和服务器的状态的校验。

4,处理选票。每台服务器都会将自己的选票与其他服务器的选票进行PK,PK的规则如下:

第一个规则:首先进行ZXID的PK,大者获胜。

第二条规则:如果ZXID相等,则进行myid的PK,大者获胜。

经过PK以后,如果当前服务器PK失败,则会把自己的选票重新投给胜者,然后把更新后的选票通过广播通知其他服务器。

5,统计选票。根据超过半数的原则,每台服务器都会统计leader的选票,如果超过半数,则结束选举。

6,更新服务器状态。follower把自己的状态更新为FOLLOWING,leader把自己的状态更新为LEADING。

OK,这就是Zookeeper的leader选举机制。经过若干轮选举以后,Zookeeper集群继续对外提供服务。由于选票PK首先比较的是ZXID,所以Zookeeper能够保证leader的数据是最新的。

kafka集群是如何保证高可用性的呢?

kafka通过Zookeeper管理集群配置、选举leader、consumer group发生变化时进行rebalance。

那么我要问了,kafka是如何选举leader的呢?

概括来说,Kafka选举leader的过程是这样的:kafka的所有broker,在Zookeeper的/controller路径下创建临时节点,成功创建的那个broker就会成为leader,其他的broker就会成为follower。

当leader挂机时,临时节点会被删除,这是其他节点通过Zookeeper的watch机制,会监听到leader的变化,然后所有的follower会再次进行leader选举。

kafka的选举其实就是创建临时节点,这和Zookeeper分布式锁的实现原理基本相同。

redis主从切换和redis集群的理解。

要注意,主从切换默认只有一个master,但是对于多个master的集群,没有主从切换的说法。

redis没有类似Zookeeper的选举机制。redis的master挂掉以后,redis集群是通过主从切换来保证高可用性的。

redis主从切换有2种方式:手动切换和自动切换。

这里我们讨论自动切换,redis主从自动切换需要哨兵模式的支持,哨兵模式简单来说就是:监控master和slave,在master出现故障的时候,自动将slave切换成master,master恢复以后,作为新master的slave对外提供服务。

准确的来说,Eureka集群中的各节点之间不存在主从关系。Eureka集群中的节点的关系是对等的,其他3种集群则都存在主从关系,这是Eureka集群的一个特色。

Eureka集群的各个server之间通过相互注册的方式来实现集群的高可用性。数据同步的方式是增量备份,这样可以保证每个server都是最新最全的数据。从而保证集群的高可用性。这样即使某个server挂了,集群还可以对外提供服务。

Eureka有一个配置项:eureka.client.fetch-register,是否从Eureka server获取注册信息。如果我们是Eureka集群,那么该项配置为true。这样Eureka server直接就可以相互注册。

OK,这篇文章只是对4种集群的选举机制进行了一个概括性的介绍,具体细节还是很复杂的。之前有文章重点分析过Zookeeper的leader选举,后续还会另起文章分析其他几种集群的选举机制,到时候我们再进行更深入的讲解。

阅读剩余
THE END