首页> 中国专利> 一种交通环境下基于微服务的实时计算系统及其实现方法

一种交通环境下基于微服务的实时计算系统及其实现方法

摘要

一种交通环境下基于微服务的实时计算系统及其实现方法,表现层接收用户请求操作,将请求发送给API网关层;API网关层通过调用微服务治理层进行服务发现与匹配,API网关层调用微服务层服务;微服务激活数据采集器,实时采集交通社交数据;数据标准化引擎将采集的数据进行标准化并传送给分布式消息引擎;分布式消息引擎将标准化后的数据输送给流处理引擎,流处理引擎收将事故对象结果发送给分布式消息处理引擎;分布式消息引擎将输出结果反馈给微服务层,表现层通过调用相应API从微服务层中获取结果。本发明把模型抽象形成独立层次,既可应用领域驱动设计方法所具备应对繁杂业务扩展的优势,又可以加速软件体系的运行效率。

著录项

  • 公开/公告号CN108415944A

    专利类型发明专利

  • 公开/公告日2018-08-17

    原文格式PDF

  • 申请/专利权人 长安大学;

    申请/专利号CN201810090452.1

  • 申请日2018-01-30

  • 分类号G06F17/30(20060101);G06Q10/10(20120101);G06Q50/26(20120101);G06Q50/30(20120101);

  • 代理机构61200 西安通大专利代理有限责任公司;

  • 代理人安彦彦

  • 地址 710064 陕西省西安市南二环中段33号

  • 入库时间 2023-06-19 06:13:14

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2023-01-10

    未缴年费专利权终止 IPC(主分类):G06F16/2455 专利号:ZL2018100904521 申请日:20180130 授权公告日:20190322

    专利权的终止

  • 2019-03-22

    授权

    授权

  • 2018-09-11

    实质审查的生效 IPC(主分类):G06F17/30 申请日:20180130

    实质审查的生效

  • 2018-08-17

    公开

    公开

说明书

技术领域

本发明属于数据处理领域,涉及一种面向交通信息服务的实时计算系统,具体涉及一种 交通环境下基于微服务的实时计算系统及其实现方法。

背景技术

随着城市化进程的加快,交通问题已经成为经济社会发展中不得不面对的重要问题。而 随着移动互联网、车联网、社交媒体等新兴信息技术和应用模式的快速发展,交通相关数据的 体量也在急剧增加。如何有效利用这些异构的数据进行交通热点(指在一定时间范围内能够 持续带来大规模、高频次交通活动的区域)分析便成为研究热点之一,由于交通热点区域往 往对周边路造成区域性交通拥堵影响,因此交通热点区域的发现有助于及时对交通拥堵情况 进行分析,是改善交通状况的关键技术与前提条件之一,可以为交通规划、资源调度、拥堵 治理、政府决策等方面提供有价值的理论参考依据。

目前交通热点分析比较常见的系统是利用Spark或Hadoop对交通数据进行集中式的离线 数据处理,热点分析受限于单机处理能力并且时效性无法满足交通热点分析的实时性需求, 面对交通领域中日益增长的海量实时动态的流式数据,现有的热点分析框架存在着伸缩性、 扩展性较差等问题。同时现有实时交通热点分析系统大多采用政府交管部门所发布的交通数 据,无法满足交通热点分析中实时性需求,并未充分利用移动互联网与社交媒体所产生的更 加具有时效性的数据。由此可见,如何充分利用移动互联网的发展所带来的数据红利是解决 交通热点分析的重要一环。

发明内容

本发明的目的是提供一种交通环境下基于微服务的实时计算系统及其实现方法。

为实现上述目的,本发明采用如下的技术方案:

一种交通环境下基于微服务的实时计算系统,包括六个基本层次与四个执行引擎,分别 是:表现层、API网关层、微服务层、微服务治理层、交通领域模型层、数据标准化引擎、 数据流处理引擎、自然语言处理引擎、分布式消息引擎以及基础框架层;其中,

表现层用于通过UI向用户展示与提供所需的数据信息,同时接收用户的输入干预操作与 反馈的数据,并将接收的用户的输入干预操作与反馈的数据发送给API网关层;

API网关层,用于为表现层提供的统一的接口契约和入口,API网关层封装了微服务层所 提交的API,并向前台提供裁剪的API,提供路由转发与过滤器功能,实现请求转发、智能 路由、负载均衡与横切功能;

微服务层,用于为API网关层提供具体的业务实现,降低交通领域模型层与业务逻辑的 耦合度,实现交通应用的实际需求;

微服务治理层,用于将微服务层的业务逻辑动态的进行服务注册和发现,保证交通信息 服务的位置透明,提高集群利用率;

交通领域模型层,用于展现交通领域的行为逻辑、业务处理状态以及实现业务的规则, 交通领域模型层中的交通领域模型包含交通领域对象的状态信息;

数据标准化引擎用于为异构数据提供标准化的数据表示方法;

数据流处理引擎用于对实时的交通流数据进行实时计算并及时反馈结果,在有效时间内 获取其数据价值;

自然语言处理引擎用于提供中英文文本相似性检验,提高交通社交数据的可靠性与降低 信息的冗余;

分布式消息引擎用于将数据流的生成与消费进行解耦;

基础框架层用于为数据归一化引擎、数据流处理引擎、自然语言处理引擎、分布式消息 引擎与微服务层提供数据存取机制。

nosql数据库为基础框架层提供数据存储功能。

本发明进一步的改进在于,横切功能包括权限校验、监控、限流缓存、请求改造和管理 以及静态内容响应。

本发明进一步的改进在于,数据流处理引擎包括采用异构数据异构数据获取模块。

本发明进一步的改进在于,还包括为基础框架层提供数据存储功能的nosql数据库。

一种交通环境下基于微服务的实时计算方法,包括以下步骤:

步骤1:建立交通领域模型层下的交通领域模型,表现层接收用户请求操作,并将请求 发送给API网关层;

步骤2:API网关层通过调用微服务治理层进行服务发现与匹配,将匹配的服务信息发回 API网关层;

步骤3:API网关层根据返回的服务匹配信息调用微服务层服务;

步骤4:微服务激活数据采集器,实时采集交通社交数据;数据标准化引擎将采集的数 据进行标准化,并将标准化后的数据传送给分布式消息引擎;

步骤5:分布式消息引擎将标准化后的数据输送给流处理引擎,当流处理引擎收到数据 时,创建交通对象,并将交通对象的命中率置为0;然后流处理引擎通过调用自然语言处理 引擎进行信息可靠性计算,得到计算结果,并将计算结果、转发率、点赞率与发布者可信度 一并进行加权平均,得到相似性,当相似性达到78%时,对当前对象命中率加1,若命中率 达到某一阈值时,将事故对象结果发送给分布式消息处理引擎;

步骤6:分布式消息引擎将输出结果反馈给微服务层,表现层通过调用相应API从微服 务层中获取结果进行显示。

本发明进一步的改进在于,步骤1中,交通领域模型包括车辆状态模型和事故模型。

本发明进一步的改进在于,步骤4中,数据标准化引擎将采集的数据进行标准化,具体 将利用自然语言处理引擎中的LDA主题模型分析算法对数据进行归类,然后再进行信息裁 剪。

本发明进一步的改进在于,步骤6中,进行信息可靠性计算的过程为:将调用自然语言 处理引擎中的文本相似性处理模块利用TF-IDF算法对数据进行余弦相似性计算,得到计算结 果。

与现有技术相比,本发明具有的有益效果:

按照领域驱动设计(DDD)的思想,通常需要在微服务层建立交通领域模型,这样能够更 好地应对复杂与不断扩展的交通应用需求。然而在实际应用中,较常见的交通应用表现出繁 琐且复杂性不高的业务逻辑,因此,本发明把模型抽象形成独立层次,既具备繁杂业务情况 下高可扩展性的优势,又可以加速软件体系的运行效率。

本发明采用微服务架构模式,微服务架构模式采用一组服务的方式来构建分布式应用, 服务基于业务能力构建并独立部署在不同的进程中,能够通过自动化部署机制来独立部署。 不同服务通过一些轻量级交互机制来通信,例如RPC、HTTP等,服务可独立扩展伸缩,每 个服务定义了明确的边界,不同的服务甚至可以采用不同的编程语言来实现,以及不同数据 存储技术,并保持最低限度的集中式管理。相对于传统的单体应用架构,微服务架构通过将 功能分解到各个离散的服务实现对应用系统的解耦,具有明显的优势:

①复杂度更低:每一个微服务专注于单一功能,并通过定义良好的接口清晰表述服务 边界,体积小、复杂度低,提高了系统的可维护性和开发效率。

②通过服务实现应用的组件化:微服务架构中将组件定义为可被独立替换和升级的软 件单元,在应用架构设计中通过将整体应用切分成可独立部署及升级的微服务方式进行组件 化设计。当某个微服务发生变更时无需编译、部署整个应用。由微服务组成的应用相当于具 备一系列可并行的发布流程,使得发布更加高效,同时降低对生产环境所造成的风险,最终 缩短应用交付周期。

③技术选型灵活:每个团队可以根据自身服务的需求和行业发展的现状,自由选择最 适合的技术栈。

④容错:在微服务架构下,故障被隔离在单个服务中。可通过重试、平稳退化等机制实 现应用层面的容错,避免全局性的不可用。

⑤扩展:每个服务可以根据实际需求独立进行扩展。

⑥“去中心化”治理与“去中心化”数据管理:整体式应用往往倾向于采用单一技术平台, 微服务架构则鼓励使用合适的工具完成各自的任务,每个微服务可以考虑选用最佳工具完成 (如不同的编程语言)。微服务的技术标准倾向于寻找其他开发者已成功验证解决类似问题的 技术。微服务架构倡导采用多样性持久化的方法,让每个微服务管理其自有数据库,并允许 不同微服务采用不同的数据持久化技术。

本发明采用Apache Storm(数据流处理引擎)实现实时流处理引擎,Apache Storm是一 个分布式的,可靠的,容错的数据流处理系统。其会把工作任务委托给不同类型的组件,每 个组件负责处理一项简单特定的任务。Storm集群的输入流由一个被称作spout的组件管理, spout把数据传递给bolt,bolt要么把数据保存到某种存储器,要么把数据传递给其它的 bolt。Apache Storm相较于其他流式处理引擎具有以下特性:(a)简单的编程模型。用户只需 编写Spout和Bolt部分的实现,因此极大地降低了实时大数据流式计算的复杂性;(b)支持 多种编程语言。默认支持Clojure,Java,Ruby和Python,也可以通过添加相关协议实现对新 增语言的支持;(c)作业级容错性。可以保证每个数据流作业被完全执行;(d)水平可扩展。 计算可以在多个线程、进程和服务器之间并发执行;(e)快速消息计算。通过ZeroMQ作为 其底层消息队列,保证了消息能够得到快速的计算。

附图说明

图1为本发明提出的软件体系框架。

图2为本发明提出的交通信息环境下基于微服务的实时计算系统。

具体实施方式

以下结合附图对一种交通信息环境下基于微服务的实时计算系统及其实现方法进行具体 说明。

由于交通数据具有来源范围广,大数据量实时,数据结构异构性高等特点。为了更加有 效的实时处理这些异构交通数据,提出了基于微服务的实时计算系统。关于数据融合方面, 本框架采用自然语言处理算法将数据进行分类,分层的架构逐层处理数据,并将所有异构数 据转换为可交换数据格式。关于架构执行效率方面,本框架通过实现分布式流式计算引擎以 及分布式消息系统,以实现高扩展性和高可靠的实时计算特性。

根据微服务的设计范式,整合软件设计工具插件,采用分层架构的思想,围绕车联网业 务逻辑,面向对象进行分析与设计,可以建立如附图1所示的,以交通应用领域为中心的六 层四引擎的分布式软件体系框架。

六个基本层次与四个执行引擎,分别是:表现层、API网关层、微服务层、微服务治理 层、交通领域模型层、数据标准化引擎、数据流处理引擎、自然语言处理引擎、分布式消息 引擎、基础框架层。

表现层主要通过友好的UI向用户展示与提供所需的数据信息,同时接收用户的输入干预 操作与反馈的数据。

API网关层为表现层提供的统一的接口契约和入口,其封装了内部的系统架构并向前台 提供裁剪的API,并提供路由转发与过滤器等功能。实现请求转发,智能路由,负载均衡与 一系列横切功能,如负责诸如权限校验、监控、限流缓存、请求改造和管理以及静态内容响 应等职责。

微服务层为API网关层提供具体的业务实现。让模型层可以关注实现交通业务模型,以 及交通应用的实际需求。构造微服务可避免对大量细粒度服务的调用操作,减少表现层和交 通领域模型层之间的直接交互过程。提供对交通领域模型的便捷操作,通过网络或接口向表 现层暴露粗粒度的逻辑业务。

服务治理层是一个基于访问压力实时管理集群容量的调度中心,它支持动态地交通信息 服务注册和发现,保证交通信息服务的位置透明,提高集群利用率。

交通领域模型层主要是展现交通领域的行为逻辑、业务处理状态以及实现业务的规则, 同时也包含了交通领域对象的状态信息。交通领域模型层是整个体系框架的核心部分。它包 含实体、“值”对象、领域服务、仓储契约/接口等概念。对应于交通领域下,可构造车辆、 驾驶员、路线等领域模型。

数据标准化引擎主要为异构数据提供标准化的数据表示方法。

数据流处理引擎包括异构数据获取模块,用于采用异构数据;数据流处理引擎为本系统 提供低延迟、高吞吐且持续可靠运行的流式计算服务,主要用于对实时的交通流数据进行实 时计算并及时反馈结果,在有效时间内获取其数据价值。

自然语言处理引擎为平台提供中英文文本相似性检验,提高交通社交数据的可靠性与降 低信息的冗余。

分布式消息引擎将数据流的生成与消费进行解耦。

基础框架层提供支撑其他各层的基本库,为其他各引擎与微服务层提供数据存取机制。 可采用软件的“持久化访问”机制,或Web服务等来实现基础框架层。框架层向其它层提供通 用技术框架。

按照领域驱动设计(DDD)的思想,通常需要在微服务层建立交通领域模型,这样能够更 好地应对复杂与不断扩展的交通应用需求。然而在实际应用中,较常见的交通应用表现出繁 琐且复杂性不高的业务逻辑,因此,本发明把模型抽象形成独立层次,既可应用领域驱动设 计方法所具备的“应对繁杂业务扩展”优势,又可以加速软件体系的运行效率。

本发明的交通环境下基于微服务的实时计算方法,包括以下过程:

步骤1:建立交通领域模型层下的交通领域模型,交通领域模型包括车辆状态模型和事 故模型;表现层接收用户请求操作,并将请求发送给API网关层;

步骤2:API网关层通过调用微服务治理层进行服务发现与匹配,将匹配的服务信息发回 API网关层;

步骤3:API网关层根据返回的服务匹配信息调用微服务层服务;

步骤4:微服务激活数据采集器,实时采集交通社交数据;数据标准化引擎将采集的数 据进行标准化,具体为:数据标准化引擎将采集的数据进行标准化,具体将利用自然语言处 理引擎中的LDA主题模型分析算法对数据进行归类,然后再进行信息裁剪,并将标准化后的 数据传送给分布式消息引擎;

步骤5:分布式消息引擎将标准化后的数据输送给流处理引擎,当流处理引擎收到数据 时,创建交通对象,并将交通对象的命中率置为0;然后流处理引擎通过调用自然语言处理 引擎进行信息可靠性计算,具体为:将调用自然语言处理引擎中的文本相似性处理模块利用 TF-IDF算法对数据进行余弦相似性计算,得到计算结果,并将计算结果、转发率、点赞率与 发布者可信度一并进行加权平均,得到相似性,当相似性达到78%时,对当前对象命中率加 1,若命中率达到某一阈值时,将事故对象结果发送给分布式消息处理引擎;

步骤6:分布式消息引擎将输出结果反馈给微服务层,

表现层通过调用相应API从微服务层中获取结果进行显示。

作为本发明的第一实施例,如图2所示,为一种交通信息环境下基于微服务的实时计算 系统示意图:

该系统包括异构数据获取模块、数据标准化引擎、数据流处理引擎、自然语言处理引擎、 分布式消息引擎组成。

数据获取模块用于获取待处理数据,数据来源包括各省市交管部门发布的道路信息、省 市气象部门发布的恶劣天气预警和微博关于“交通事故”的社交数据。具体可利用新浪微博开 放平台搜索相关话题相关API(https://api.weibo.com/2/search/topics.json)或采用Python Scrapy 爬取相关交通社交信息,并将该待处理数据发送给数据归一化引擎进行归一化处理。

数据标准化引擎将利用自然语言处理引擎利用LDA算法进行主题模型分析,将社交交通 事件数据标准化为{ci,tsi.tei,li,di.pi}形式,其中ci(ci∈T)表示事件的类型主题,其中T是一些预>i和tei是事件>i的开始时间和结束时间,li是事件Ei的地理位置信息,di是事件Ei的文本描述信息,p为事>i的附图。

数据标准化引擎将利用自然语言处理引擎,例如

统一标准化分类为如下形式JSON对象:{class:‘accident’,start_time:1429619723, end_time:null,geo_location:{45.181424,9.153507},description: pic:‘https://pbs.twimg.com/media/CyL_ifiWEAAMUzJ.jpg’}

分布式消息引擎由RabbitMQ实现,由图中RabbitMQ消息引擎(入)通过接受数据归一 化引擎标准化的数据后,实现数据的分发。在本系统中通过给数据绑定 routing_key=”weibo.undo.process”,同时给Storm Spout绑定binding_key=”*.undo.*”采用Topic Exchange(主题交换机)进行数据的产生与消费。

当待处理的数据进入undo_queue(通过bindkey=”*.undo.*”所绑定的消息队列)中,Storm 框架中的Spout就会从queue中不间断的读取数据,将外部数据转化成Storm内部的数据,以 Tuple(消息元组)为基本的传输单元下发给Bolt。Blot将接收Spout发送来的数据,或上游 的bolt的发送的数据。根据业务逻辑进行处理为Topology进行消息的处理,Bolt可以执行过 滤,聚合,查询数据库等操作,而且可以一级一级的进行处理。在本系统中将Topology的数 据分组策略(StreamGrouping)设置为Local or ShuffleGrouping:表示如果目标bolt有一个或 者多个task在同一个工作进程中,tuple将会被随机发生给这些tasks。否则将随机分组,随机 派发stream里面的tuple,保证每个bolt接收到的tuple数目大致相同。

第一级blot将利用自然语言处理引擎,将每一条消息与Redis中的语料库进行文本相似 性分析,如果此条消息与redis中现有的某个对象文本相似性达到75%以上,将会对此条已有 对象的命中率进行加一操作,并丢弃当前消息。同时如果当前对象的命中数大于15,将会产 生预警信息,并将此告警对象绑定routing_key=”weibo,warning.accident”发送到 binding_key=”*.warning.*”的告警队列中,等待上层服务进行二次处理。如果相似性分析未达 到75%以上,将会把此条消息进行对象化处理,将此对象的命中率置为1,并存储进redis中。

本发明采用python实现自然语言处理,通过利用其中LSI(潜在语义索引)模型对社交交 通数据进行文本相似性分析,以此加强数据的可靠性与削减数据的冗余。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号