1.学习背景
各位同学大家好,经过前面的学习我们已经掌握了《微服务架构》的核心技术栈。相信大家也体会到了微服务架构相对于项目一的单体架构要复杂很多,你的脑袋里也会有很多的问号:
-
微服务架构该如何拆分?
-
到了公司中我需要自己搭建微服务项目吗?
-
如果公司已经有了一个复杂的微服务项目,我该如何快速上手?
-
我该从哪里拉取代码?
-
开发的规范有哪些?
-
微服务开发的环境与传统项目有什么差
现在,请跟随博主我,参与一个天机学堂微服务项目开发。我会带着大家拉取代码、搭建开发环境、熟悉项目代码、熟悉业务流程、修改项目BUG、开发新功能、完成项目优化。通过整个项目的学习,真正掌握微服务架构技术栈,有能力解决微服务架构的各种问题
2.天机学堂介绍
天机学堂是一个基于微服务架构的生产级在线教育项目,核心用户不是K12群体,而是面向成年人的非学历职业技能培训平台。相比之前的项目课程,其业务完整度、真实度、复杂度都非常的高,与企业真实项目非常接近。
通过天机学堂项目,你能学习到在线教育中核心的学习辅助系统、考试系统,电商类项目的促销优惠系统等等。更能学习到微服务开发中的各种热点问题,以及不同场景对应的解决方案。学完以后你会收获很多的“哇塞”。
天机学堂的核心业务就是非学历的职业技能培训。
另外,职业教育有线上和线下之分,随着互联网发展,传统行业也逐渐网络化发展。再加上疫情的影响,很多职业技能培训企业都开始发展在线教育。相比于传统线下培训,在线教育有成本更低,学习时间碎片化,教育资源能充分利用。因此,在线教育市场规模不断增长,前景巨大。
系统架构
天机学堂目前是一个B2C类型的教育网站,因此分为两个端:
-
后台管理端
-
用户端(PC网站)
整体架构如下:
技术架构
功能演示
天机学堂分为两部分:
-
学生端:其核心业务主体就是学员,所有业务围绕着学员的展开
-
管理端:其核心业务主体包括老师、管理员、其他员工,核心业务围绕着老师展开
天机学堂开发模式
在企业开发中,微服务项目非常庞大,往往有十几个,甚至数十个,数百个微服务。而这些微服务也会交给不同的开发组去完成开发。你可能只参与其中的某几个微服务开发,那么问题来了:
如果我的微服务需要访问其它微服务怎么办?
难道说我需要把所有的微服务都部署到自己的电脑吗?
很明显,这样做是不现实的。第一,不是所有的代码你都有访问的权限;第二,你的电脑可能无法运行这数十、数百的微服务。
因此,企业往往会提供一个通用的公共开发、测试环境,在其中部署很多公共服务,以及其它团队开发好的、开发中的微服务。
而我们大多数情况下只在本地运行正在开发的微服务,此时我们就需要一些其它的测试手段:
-
单元测试:测试最小的可测试单元
-
集成测试:验证某些功能接口,是否能与其它微服务正确交互
-
组件测试:验证微服务组件
-
端对端联调:验证整个系统
单元测试
单元测试一般是在项目的test目录下自己编写的测试,可以针对具体到每一个方法的测试。
集成测试
接口开发完成后,可能需要调用其它微服务接口,此时可以调用开发环境中的其它微服务,测试接口功能是否正常工作。
组件测试
将自己团队开发的微服务部署到开发环境,作为一个微服务组件,与开发环境中的其它微服务联调,测试整个微服务是否正常工作。
端对端测试
在测试环境部署前端、后端微服务群,直接进行前后端的联调测试。
当然,实际中我们可以把集成测试与组件测试合并,开发完成后直接与开发环境的其它微服务联调,测试服务工作状态。