论文总字数:33383字
摘 要
本文调研了分布式调用链跟踪技术,使用PHP语言搭建了一个OA系统,在其中部署了目前较为广泛使用的分布式调用链跟踪系统openzipkin,并进行了改进和测试。
对微服务系统的发展和遇到的困难进行了分析,表明分布式调用链跟踪技术出现的背景和必要性。对比分析了目前业内存在的几种开源分布式调用链跟踪系统。由于实际生产环境的需要,选择了对PHP支持较好的openzipkin。使用PHP语言搭建了一个简单的微服务OA系统,研究并改进了openzipkin后将其部署于OA系统中进行实际测试。根据结果,分析了调用链跟踪技术在微服务系统中的重要作用。
最后,反思了系统的不足,并根据测试得到的结果和目前流行的大数据技术,对系统未来的发展和改进提出了探讨和展望。
关键词:分布式调用链跟踪,微服务系统,PHP,大数据,OA系统
Abstract
This paper investigates the distributed call chain tracking technology, builds an OA system using PHP language, deploys the widely used distributed call chain tracking system openzipkin, and improves and tests it.
The development of the micro-service system and the difficulties encountered are analyzed, which shows the background and necessity of the distributed call chain tracking technology. A comparative analysis of several distributed call chain tracking systems that are currently in use in the industry. Due to the needs of the actual production environment, I chose openzipkin with better support for PHP. A simple microservice OA system was built using PHP language. After researching and improving openzipkin, it was deployed in the OA system for practical testing. According to the results, the important role of call chain tracking technology in microservice system is analyzed.
Finally, it reflects on the shortcomings of the system, and based on the test results and the current popular big data technology, it discusses and prospects the future development and improvement of the system.
KEY WORDS:call chain tracking, microservices system, PHP, big data
目 录
摘 要 I
Abstract II
第一章 绪论 1
1.1 引言 1
1.1.1 背景 1
1.1.2 意义 1
1.1.3 工作内容 2
1.2 相关技术简介 2
1.2.1 微服务 3
1.2.2 PHP语言 4
1.2.3 分布式调用链跟踪技术 6
1.2.4 openzipkin 9
1.2.5 MySQL 10
1.2.6 Docker 11
第二章 系统分析 13
2.1 OA系统整体需求分析 13
2.2 OA服务分析 14
2.3 账户服务分析 14
2.4 UCenter分析 15
2.5 权限管理分析 15
2.6 OA应用分析 15
2.7 OA系统的非功能需求分析 15
2.8 openzipkin需求分析 16
第三章 系统设计 18
3.1 总体设计 18
3.2 OA服务模块设计 18
3.3 账户服务模块设计 20
3.4 UCenter模块设计 23
3.5 权限管理模块设计 23
3.6 OA应用模块设计 24
第四章 系统实现 26
4.1 OA系统实现 26
4.1.1 LAMP环境配置 26
4.1.2 OA服务模块实现 27
4.1.3 账户服务模块实现: 28
4.1.4 UCenter模块实现 32
4.1.5 权限管理模块实现 34
4.1.6 OA应用模块实现 35
4.2 openzipkin软件环境配置 35
第五章 系统测试 37
5.1 OA系统测试 37
5.1.1 OA服务模块测试 37
5.1.2 账户服务模块功能测试 38
5.1.3 UCenter服务测试 39
5.1.4 权限管理以及OA应用模块测试 39
5.2 openzipkin调用链跟踪测试 39
第六章 结论和展望 41
6.1 结论 41
6.2 展望 41
参考文献 43
致 谢 45
第一章 绪论
1.1 引言
1.1.1 背景
近年来,随着互联网的不断普及,使用互联网服务的人越来越多,愈加庞大的用户群产生了越来越多的请求。为了满足日益增长的需求,开发者在原有的业务系统基础上不断地进行修改和拓展。但是伴随着业务系统规模的不断扩大,一些在中小数据规模中不易被察觉,但是在大数据环境下却非常致命的问题也慢慢地显现出来。在基于微服务体系架构之下构建的业务系统中,当系统规模达到一定程度的时候,就会出现下述这种情况:单靠开发人员已经无法理清应用的数量以及应用之间的复杂关系。因此,为了帮助开发人员解决随之而来的一系列问题,分布式调用链跟踪技术便产生了。
1.1.2 意义
分布式调用链跟踪技术的出现,为开发人员在解决规模庞大的业务系统中可能出现的问题提供了巨大的帮助。在当前大数据背景下的基于微服务架构的业务系统中,可能遇到下列四个问题:故障定位难,容量预估难,资源浪费多,链路梳理难。
第一,分布式调用链跟踪技术帮助运维人员解决了故障定位难的问题。当基于微服务架构的业务系统达到一定规模的时候,微服务之间的过度协同就会不可避免地产生。在这个时候,业务系统中一个简单的功能,往往可能由数个不同的微服务所支撑,而这些微服务又可能由数个不同的团队的开发。这就给故障排除带来了很大的不便。当故障发生时,如果没有分布式调用链跟踪技术,开发人员想要解决问题可能需要拉上十几个不用的团队一起来追根溯源找到问题的所在。
第二,分布式调用链跟踪技术也对解决容量预估难提供了很大的帮助。在实际生产环境中,很多业务系统的规模并不是一成不变而是会经常发生变动,在一些特殊的时候甚至可能需要对原有的业务系统进行较大的改变。以阿里淘宝为例,在每年之中会有数次节日大促销,而每次促销必然会出现比平时更大的流量,如果是双十一这种巨型促销节日,业务系统所需要应对的流量甚至是平时的几十上百倍。为了让业务系统在促销时能够正常工作,开发团队将原有的业务系统进行扩容是一个必然的选择。如果没有分布式调用链跟踪技术,那么开发团队的选择往往是把系统中所有的服务进行同比例规模的扩容。但是实际上,在更大的流量场景中,每一个服务在核心链路当中的参与度、重要性都是不一样的,如果只是简单地将业务系统的每个子系统进行同比例规模的扩容,那么往往会浪费大量的资源。
剩余内容已隐藏,请支付后下载全文,论文总字数:33383字
该课题毕业论文、开题报告、外文翻译、程序设计、图纸设计等资料可联系客服协助查找;