3。4。3 数据校验 39
3。5 界面设计 43
3。6 典型模块设计 45
3。7 安全 48
4 测试 50
4。1 测试项目 51
4。2 测试方法 52
4。3 测试用例、测试结果 53
5 监控 66
6 结论 68
致谢 69
参考文献 70
附录 71
1 绪论
1。1 课题的目的和意义
随着计算机技术的飞速发展,海量数据引爆互联网,我们已经进入了大数据的时代,互联网+浪潮悄然而至。云计算发展到今天,已经不再那么遥远,正在逐渐成为一种基础设施,大数据、物联网、人工智能、虚拟现实都以云计算为基础。“大众创业 万众创新”大潮也随之兴起,软件开发行业呈快速增长态势。然而面对软件开发需求量大,需求变更速度快,开发人员不断更替等问题,瀑布模式无能为力,敏捷方法通过快速迭代,每一次迭代交付用户一个可用的、可部署的系统,保证了软件的质量和速度。“在软件工业界,敏捷开发已成为众多高效开发团队的制胜之道”[1]。它不仅被许多中小公司应用,在全球大量互联网企业中,也受到很多资深项目管理者和开发人员的青睐。
然而,随着系统功能的增加,系统的复杂度逐渐提高,积累的技术债务也随之增多,巨大的单体式应用也不利于持续性开发和部署,敏捷开发举步维艰,如何对单体式应用进行合理的拆分成为分布式应用,成为解决问题的关键。
微服务架构应运而生,什么是微服务架构呢?简单说就是将一个完整的应用(单体应用)按照一定的拆分规则(后文讲述)拆分成多个不同的服务,每个服务都能独立地进行开发、部署、扩展。服务于服务之间通过注入RESTful api或其他方式调用。
微服务不是免费的午餐,分布式系统需要面对一个很难的问题,就是复杂性,需要在部署、测试和监控方面做很多的额外工作,并且需要考虑如何扩展系统,而且要保证有弹性,还需要处理类似分布式事务或者与CAP(即Consistency(一致性)、 Availability(可用性)、Partition tolerance(分区容错性))相关的问题。
本课题主要研究如何开发微服务应用、如何把已有的系统改造成微服务应用,提供合理解决实施微服务应用中遇到的问题,最终完成轻享早餐移动应用系统的开发任务。
1。2 国内外研究现状与水平
有人倾向于在系统设计中采用微服务架构方式来实现系统模块的松耦合,跨部门开发更加方便,被认为是IT软件架构的未来方向,Martin Fowler也给微服务架构极高的评价;同时,反对之声也很强烈,持反对观点的人表示微服务增加了系统维护、部署的难度,导致一些功能模块或代码无法复用,同时微服务允许使用不同的编程语言和框架来开发不同的服务,这会大大增加系统测试与集成的难度,而且随着系统规模的日渐增长,微服务在一定程度上也会导致系统变得越来越复杂。虽然很多公司还处在观望,但是有一些公司已经在具体生产系统中应用了微服务架构,并且取得了良好的效果。论文网