软件工程硕士论文栏目提供最新软件工程硕士论文格式、软件工程硕士硕士论文范文。详情咨询QQ:1847080343(论文辅导)

基于HBase和微服务的全民健身系统设计与实现

日期:2021年04月08日 编辑:ad201107111759308692 作者:无忧论文网 点击次数:790
论文价格:150元/篇 论文编号:lw202104011102517235 论文字数:46566 所属栏目:软件工程硕士论文
论文地区:中国 论文语种:中文 论文用途:硕士毕业论文 Master Thesis

本文是一篇软件工程硕士论文,本文将 HBase 存储技术和微服务框架应用于健身系统中,实现了基于 HBase 和微服务的全民健身系统,该系统利用 HBase 存储全民健身群众锻炼体质信息、场馆开放与使用信息、教练施教与评测信息等海量数据;利用微服务架构,将系统拆分为用户模块、场地模块、课程模块,降低了系统的耦合性,提高了系统的可维护性,从而构建一个面向普通用户、健身教练和场地管理员的服务系统。该系统对健身场地的合理利用和全民健身水平的提高具有重要意义。


第一章 绪论


1.1 研究背景及意义

全民健身是指全国人民,不分男女老少,全体人民增强力量和柔韧性,增加耐力,提高协调控制身体各部分的能力,从而使人民身体强健[1]。国务院关于印发全民健身计划(2016—2020 年)的通知中提出[2],推动移动互联网、云计算、大数据、物联网等现代信息技术手段与全民健身相结合,建设全民健身管理资源库、服务资源库和公共服务信息平台,使全民健身服务更加便捷、高效、精准。

2016 年烽火成功中标厦门文广传媒集团智慧体育平台[3]——马拉松赛事管理运营平台建设项目。智慧体育平台引入大数据、云计算、智能学习、移动互联网、物联网、可穿戴设备等新技术,探索互联网+体育的创新服务模式。

上海市于 2016 年举办第二届市民运动会。为吸引体育运动爱好者积极参与,市体育局将加快智慧体育建设进程,大力推进体育信息服务平台建设,促进“互联网+体育”的应用,建设数字化服务体系,为市民提供更为便捷、优质的体育公共服务。市民运动会的各项赛事将更多地通过网上报名,市民可通过多种网络渠道获取赛事、场馆预订、健身设施位置、比赛成绩等实用信息。围绕体育科技创新平台建设,上海还将大力发展科技体育,支持航空航海模型、无人机等领域加强科研攻关,鼓励可穿戴运动装备发展创新,提高体育科技贡献率。

但是随着用户数量的不断增长,健身系统的数据量也在不断增加,传统的关系型数据库已经满足不了当前数据的存储,数据的读写已经成为了健身系统的瓶颈。虽然当前互联网采用分库分表的方案来对数据进行分片处理,但是无论从对业务模型的划分还是从对分库分表规则的管理上,都使得业务代码和系统存储的代码相耦合,大大降低了健身系统的可维护性。

...........................


1.2 国内外研究现状

关于 HBase 数据存储、微服务架构和健身系统的发展和研究,国内外已经取得一定的成果:

(1)健身系统

在国外,海量数据新模式下的体育行业发展的起步比较早,例如苹果公司的“健康 APP”、谷歌公司的“Google Fit 平台”等,这些平台都是以穿戴设备为基础,获取个人的运行数据,经过整合,形成一种权威的健康信息报告。在一些发达国家,更是为人们的健身提供场地,人们可以利用大数据技术,搜索出符合自己健身计划的场地,并进行在线预约,进行更合理的健身运行。随着国内科技的发展以及近年来国家对健身产业的大力扶持,许多公司和创业者开始把目光放在了健身管理系统领域。出身阿里系的自身创业者王浩等人于 2010 年创立的三体运动,是国内健身行业较早使用技术研发打造健身管理与营销系统的公司。2017 年,青橙科技获得春晓资本领头的数千万元融资,其旗下的主要产品有三款:针对健身会议的报名系统、针对健身房的预约管理系统、为健身教练提供的健身助手。青橙科技主要从小的工作室和俱乐部切入,致力于互联网重新定义健身管理,深度挖掘健身人群的消费能力[5]。

在我国,随着科技的发展,对这种体育行业新模式的研究更是百花齐放,各有千秋。俞振东等人针对目前体育运动数字化、网络化程度不高导致锻炼效果不佳等问题,设计了一套网络化数字健身系统应用于健身房之中[6]。姚广灿等人针对目前健身场地分布不均匀导致健身场地资源浪费问题,实现了智能化的场地预定系统,该系统协调了体育场地资源的整合,为民众参与体育锻炼提供了便利[7]。尹路等人设计了一款基于体育信息服务的 APP“去运动”,这款 APP 方便了该省的体育场地预定与健身信息的查询,提高了人们对健身活动的积极性,推动了“互联网+”新技术对健身行业的发展[8]。

.....................


第二章 相关技术背景知识介绍


2.1 海量数据存储技术

早在 20 世纪 70 年代,传统的关系型数据库管理系统(Relational DataBase ManagementSystem,RDBMS)就已经出现了,迄今为止,很多公司仍然使用 RDBMS 来作为数据存储的解决方案。很多情况下,关系型数据库可以完美的解决实际业务存储问题,但是面对一些特殊的场景,它并不是最佳的解决方案。随着数据量的增多,数据的数量级从 GB 扩大到 TB,乃至 PB,传统的关系型数据库根本无法处理这种级别的数据。为了解决这种问题,NoSQL解决方案孕育而生[18]。

2.1.1 HDFS 存储技术

HDFS 是 Hadoop 分布式文件系统,主要特点是保存多个副本,并提供容错机制,副本丢失或宕机自动恢复、运行在廉价的机器上、适合大数据的处理,而且它提供高吞吐量来访问应用程序的数据,适合那些有着超大数据集的应用程序。HDFS 也是按照 Master 和 Slave 的结构。分为 NameNode、SecondaryNameNode、DataNode 这几个角色。HDFS 的结构图如下图 2.1 所示:

图 2.1 HDFS 的结构图

..........................


2.2 微服务概述

2.2.1 微服务的基本概念

“微服务”最初是由 Martin Fowler 在 2014 年写的一篇文章《MicroService》中提出来的[21]。对于微服务,业界没有一个严格统一的定义,但是作为“微服务”这一名词的发明人,Martin Fowler 对微服务的定义似乎更具有权威型和指导意义。他的阐述,微服务架构的风格,就是将单一程序开发成一个微服务,每个微服务运行在自己的进程中,并使用轻量级机制进行通信,通常是 HTTP RESTFULAPI[22]。这些服务是围绕业务能力来划分构建的,并通过完全自动化部署机制来独立部署。这些服务可以使用不同的编辑语言,以及不同的数据存储技术,以保证最低限制的集中式管理。

2.2.2 微服务特点

总结微服务具有以下特点:

(1)微服务单元按业务来划分

微服务的“微”到底需要定义到什么程度,这是一个非常难以界定的概念,可以从以下三个方面来界定:一是根据代码量来定义,根据代码的多少来判定程序的大小;二是根据开发时间的长短来判定;三是根据业务的大小来划分。

根据 Martin Fowler 的定义,微服务的“微”是按照业务来划分的。一个大的业务可以拆分成若干个小的业务,一个小的业务又可以拆分成若干个更小的业务,业务到底怎么拆分才算合适,这需要开发人员自己去决定。

按业务划分的微服务单元独立部署,运行在独立的进程中。这些微服务单元是高度组件化的模块,并提供了稳定的模块边界,服务与服务之间没有任何的耦合,有非常好的扩展性和复用性[23]。

传统的软件开发模式通常由 UI 团队、服务端团队、数据库和运维团队构成,相应地将软件按照团队划分,只能划分为 UI、服务端、数据库和运维等模块。通常这些开发人员各司其职,很少人跨职能去工作。如果按照业务来划分服务,每个服务都需要独立的 UI、服务端、数据库和运维。也就是说,一个小的业务模块需要动用一个团队的人去协作,这显然增加了团队与团队之间的交流沟通成本,所以产生了跨职能团队,这个团队负责一个服务的所有工作,包括 UI、服务端和数据库。当这个团队只有一到两个人的时候,就对开发人员提出更高的要求。

...........................


第三章 健身系统需求分析 ..................................16

3.1 系统功能性需求分析 ............................. 16

3.1.1 普通用户角色 ............................. 16

3.1.2 健身教练角色 ............................ 17

第四章 健身系统设计..................................21

4.1 架构设计 ............................ 21

4.1.1 服务注册中心设计 ........................... 21

4.1.2 服务熔断、降级设计............... 22

第五章 健身系统访问控制研究.............................51

5.1 基于风险属性的访问控制模型分析 ....................... 51

5.1.1 R-ABAC 模型定义 ............................. 51

5.1.2 R-ABAC 模型组成 ....................... 52



第六章 健身系统实现及测试


6.1 系统基础架构的实现

本系统分为工具模块(common)、服务注册中心模块(eurekaserver)、熔断监控模块(monitoringservice)、主机健康监控模块(adminservice)、日志模块(logservice)、网关模块(gatewayservice)、统一认证中心模块(uaaservice)、用户模块(userservice)、课程模块(classservice)、场地模块(areaservice)组成。如下图 6.1 所示:

图 6.1 系统模块

..............................


第七章 总结与展望


7.1 总结

本文将