一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

LBS分布式服务系统、方法和存储介质与流程

2022-02-21 09:01:11 来源:中国专利 TAG:

lbs分布式服务系统、方法和存储介质
技术领域
1.本发明涉及互联网技术领域,特别是涉及一种lbs分布式服务系统、方法和存储介质。


背景技术:

2.基于位置的服务(location based services,lbs),利用各类型的定位技术来获取定位设备当前的所在位置,通过移动互联网向定位设备提供信息资源和基础服务。用户可利用定位技术确定自身的空间位置,并将位置信息发送给lbs服务系统,然后通过移动互联网从lbs服务系统获取与位置相关资源和信息,例如寻找附近的人,或寻找用户当前位置处一定范围内的宾馆、影院、图书馆、加油站等的名称和地址等等。
3.lbs开源算法对于服务的构建是基于内存的,即其所构建出的索引是存储在服务器的内存中的,这种应用方式存在一些问题,服务端为了提高处理能力通常是分布式的,一个功能对应一个服务,这个服务实际是通过多台服务器来提供的。lbs算法只能在其中之一的内存里构建服务,无法进行平行扩展,而且存储在内存中的数据可能因代码故障而丢失。


技术实现要素:

4.本发明的实施例提供了一种lbs分布式服务系统、方法和存储介质,通过构建分布式的lbs服务,实现处理能力的扩展以及数据安全的保障。
5.根据本发明实施例的第一方面,提供了一种lbs分布式服务系统,包括:存储服务器,所述存储服务器内存储地理位置数据;消息队列服务器;多个服务器,所述多个服务器部署了lbs分布式服务,所述多个服务器从所述存储服务器中加载所述地理位置数据,并将所述地理位置数据写入到所述服务器内存中的队列中,在所述服务器内存中构建lbs索引后,开放对外服务接口,当任一服务器的服务接口接收到地理位置数据更新后,将更新后的地理位置数据存储至所述存储服务器,并投递至所述消息队列服务器,所述多个服务器读取所述投递至所述消息队列服务器的地理位置数据,更新自身内存中的lbs索引数据。
6.可选地,所述地理位置数据包括地理位置的标示以及所述地理位置的空间坐标数据。
7.可选地,所述存储服务器采用分布式存储系统。
8.可选地,所述消息队列服务器采用分布式消息队列系统。
9.根据本发明实施例的第二方面,提供了一种lbs分布式服务方法,包括:部署有lbs分布式服务的多个服务器分别从存储有地理位置数据的存储服务器中加载所述地理位置数据,将所述地理位置数据写入到所述多个服务器内存中的队列中;根据写入到所述多个服务器内存中的队列中的地理位置数据,在所述多个服务器内存中分别构建lbs索引;
所述多个服务器在完成lbs索引构建后对外提供服务接口;当被调用的服务接口接收到地理位置数据的更新后,将更新后的地理位置数据同步至所述存储服务器,并将所述更新后的地理位置数据同步至消息队列服务器;所述多个服务器通过所述消息队列服务器获取所述更新后的地理位置数据,对服务器内存中对应的lbs索引数据进行更新。
10.可选地,所述地理位置数据包括地理位置的标示以及所述地理位置的空间坐标数据。
11.可选地,当被调用的服务接口接收到地理位置数据的更新后,先校验所述存储服务器内的地理位置数据,判断相应位置是否已经存在,当存在时,更新所述存储服务器内的地理位置数据,当不存在时,新增记录到所述存储服务器中。
12.根据本发明实施例的第三方面,提供了一种存储介质,所述存储介质包括存储的程序,其中,在所述程序运行时由处理器执行根据前述任一方法。
13.本发明的上述技术方案,通过分布式部署的lbs服务,将数据存储在存储服务器中,在启动服务时由多个服务器均从存储服务器中加载数据,并将任一服务器的数据变更同步至存储服务器和所述多个服务器,实现了数据的多积累,从而实现了处理能力的动态扩展并保障了数据的安全。
附图说明
14.此处所说明的附图用来提供对本发明的进一步理解,构成本发明的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:图1是根据本发明实施例的lbs分布式服务系统的系统架构示意图;图2是根据本发明实施例的lbs分布式服务方法的数据加载流程示意图;图3是根据本发明实施例的lbs分布式服务方法的数据更新流程示意图;图4是根据本发明实施例的lbs分布式服务方法的lbs索引数据更新流程示意图;图5是根据本发明实施例的lbs分布式服务方法的一个实例的动作示意图。
具体实施方式
15.为了使本技术领域的人员更好地理解本发明的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创作性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
16.需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
17.参见图1-4,本发明的一个实施例提供了一种lbs分布式服务系统及服务方法。
18.参见图1,该lbs分布式服务系统包括服务器a、服务器b等多个服务器、存储服务器和消息队列服务器。
19.存储服务器内存储地理位置数据,地理位置数据包括地理位置的标示以及其经纬度或其他类型用于描述该地理位置的空间坐标数据。存储服务器可采用根据系统压力进行水平扩展的分布式存储系统, 其中存储服务器为广义的存储服务器,底层硬件设备可以是基于内存的,也可以是基于硬盘的等等。
20.该多个服务器均部署了基于lbs算法构建的同构服务,即本发明所谓lbs分布式服务。如图所示,服务的实例数量可根据整个系统压力进行水平扩展。该多个服务器通过从存储服务器中读取出lbs索引的描述信息,加载所述地理位置数据,并将从存储服务器中读取的地理位置数据写入到所述服务器内存中的队列中,在所述服务器内存中构建lbs索引后,开放对外服务接口。当其中之一的服务器的服务接口接收到地理位置数据更新后,将更新后的地理位置数据存储至存储服务器,并投递至消息队列服务器,该多个服务器读取该投递至消息队列服务器的地理位置数据,更新自身内存中的lbs索引数据。
21.消息队列服务器也可采用根据系统压力进行水平扩展的分布式消息队列系统。
22.下面结合图2-4,进一步说明基于上述lbs分布式服务系统的lbs分布式服务方法的一个实施例的具体流程:参见图2,为数据加载的流程,包括:读取存储中lbs索引的描述数据,即该多个服务器分别从存储服务器中读取lbs索引的描述信息,在采用分布式存储系统的情况下,lbs索引的描述信息包含对应索引的名称、分布式存储的分片数量、对应分片存储位置及存储大小;基于各索引描述数据分别读取对应索引的原始点数据,即根据读取的lbs索引的描述信息,逐个索引加载对应索引包含的地理位置数据,如上所述,每个地理位置数据中包括地理位置的标示以及其经纬度或其他类型用于描述该地理位置的空间坐标数据;批量读取原始点数据后同步到服务内部队列,即将批量从存储服务器读取的地理位置数据写入到该多个服务器内存中的队列中,该写入过程可以视数据量和加载速度由单个或多个线程完成,由于数据不会重复读取写入,线程间运行不会产生冲突;多线程消费内部队列数据,在内存中构建lbs索引,即根据写入到该多个服务器内存中的地理位置数据,在该多个服务器内存中分别构建lbs索引,数据写入到服务内部队列后可被多个消费线程消费,在内存中构建对应的lbs索引,索引数据结构可基于具体场景及需求选择b树、跳表、前缀树等多种类型的数据结构实现;完成索引构建,开启端口,对外提供调用,即该多个服务器在完成lbs索引构建后,开放自服务接口,开始对外提供查询、更新等一系列服务。
23.参见图3,为数据更新的流程,包括:某对象地理位置数据同步,即当某地理位置数据发生更新时,调用所述多个服务器中的任一服务即可向存储服务器同步更新后的地理位置数据;当服务接口调用接收到地理位置数据的更新后,先校验存储服务器内的地理位置数据,判断该位置是否已经存在:当存在时,更新存储服务器内的地理位置数据;当不存在时,新增记录到存储服务器中;
投递到消息队列中,即完成存储服务器内的地理位置数据的更新后,服务会把该次地理位置数据的变动投递至消息队列中,完成本次处理。
24.参见图4,为lbs索引数据更新的流程,包括:更新后的地理位置数据同步到消息队列服务器后,服务内多线程消费队列内数据,即由每个服务自身线程进行消费,服务通过队列拿到数据后更新自身内存中对应的lbs索引数据,至此,由任一服务发起的数据更新,全部服务及存储服务器按上述流程最终完成数据更新动作。
25.下面结合图5所示的实例举例说明上述lbs分布式服务方法的具体实现:如图所示,用户上报自己的地理位置信息到lbs服务,分布式部署的lbs服务实例收到用户请求后将用户请求写入到存储中,存储更新成功后,将该更新事件投递到消息队列内,事件投递成功后,本次更新写入完成;此时,所有分布式部署的lbs服务实例的后台任务线程都从消息队列内消费到更新事件,消费到更新事件后,对内存中的lbs索引数据进行更新;至此,用户通过一次地理位置信息上报,lbs服务将该地理位置数据同步到存储服务器的同时更新分布式部署的所有实例的内存索引,完成整体数据更新;用户查询地理位置时,通过接口访问任一lbs服务实例,服务从自身内存索引中查询附近的地理位置,并返回相关信息,结束查询。
26.本发明的上述技术方案,通过分布式部署的lbs服务,将数据存储在存储服务器中,在启动服务时由多个服务器均从存储服务器中加载数据,并将任一服务器的数据变更同步至存储服务器和所述多个服务器,实现了数据的多积累,从而实现了处理能力的动态扩展并保障了数据的安全。
27.除上述实施例外,本发明还提供有存储介质的实施例,所述存储介质包括存储的程序,其中,在所述程序运行时由处理器执行以上所述的方法。
28.需要说明的是,对于前述的各实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域普通技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
29.以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献