微服务架构项目浅析

目录

微服务架构的演变

​ 这个章节主要介绍微服务架构的从单体式架构如何演变而来,介绍为什么有这些组件侧重于微服务架构的整体,简明的表达微服务架构的全局场景,不涉及组件以及具体如何使用各个组件等细节问题,从整体把控,全文使用办公VIP系统为例做简要说明(本故事纯属虚构重在理解微服务架构)。

最初的需求

​ 由于公司成立之初人员紧张,公司里面只有Lex作为行政人员+人事+员工+老板,公司主要做化妆品售卖,为了满足购买会员越来越多,如何管理问题,Lex招聘了Alex去开发一套VIP系统进行管理VIP人员,刚开始的需求非常简单,只要能看到会员的基本信息和购买页面和记录即可,所以Alex三下五除二的就搞定了这个需求。开发出了一个war包进行部署就满足了需求。

业务发展后需要客服的问题

​ 随着会员的持续增加,以及互联网的普及单一的功能已经无法满足目前的需求,需要增加手机端的通道,新增节日的活动力度,Alex很显然已经不能一个人同时负责这么多业务了,于是招聘了Mike和Alex同时开发这个需求,很快他们就完成了这个项目。
​ 随着品牌逐渐的被人熟知,越来越多的人进行购买,数据越来越多,节日越来越多,要进行的线上促销活动也越来越多,平台暴露出的问题也越来越多。

  • 会员管理模块出现问题后,需要将war重新开发,然后部署影响到了其他模块
  • 数据越来越多,进行问题排查越来越难
  • 平台人员越来越多,平台出现了性能瓶颈
    对于这么多问题,单一的一体式架构已经无法满足目前的需求,急需一种全新的架构来解决这些问题

B/S和C/S架构是指的我们测试系统的架构,在工作中我们说的微服务架构或者一体式架构是针对我们的B/S或者C/S中的S(server)来进行说明的,一体式架构可以简单理解为war包(前端和后端在一起);而微服务是把单独的模块进行分离,前后端进行分离来说明,对于测试来说是没有任何感知的。因为测试过程中仅针对功能进行测试

微服务架构使用的组件

​ 对于我们上述的问题,急需要我们进行解决,伟大的程序员想出了把系统进行拆分为模块单独的模块构建为jar包而不是把所有东西都一股脑的放在一起构建为war包,本文主要描述组件的作用做简单了解。

Nginx

​ Nginx作为反向代理器,主要处理大量用户进行同时登录后,进行操作的负载均衡,可以把接口分发给不同服务器进行处理从而达到均衡的效果。
​ Nginx的搭建相对比较简单配置Nginx分发服务器的地址以及前端等html存放位置即可,在使用过程中一般由运维功能师或者资深开发进行安装和配置。

Redis

​ Redis主要是Key-value型高性能数据库,弥补关系型数据库的不足,在使用过程中存储登录后的session等数据。
​ Redis分为单体模式和哨兵模式,哨兵模式可以监控Redis的多个进程,仅做了解即可工作过程中不需要测试进行搭建。

Rabbitmq

​ Rabbitmq作为中间件是进行处理大数据量的很好的中间件,当大量数据同时需要处理会对服务器造成很大的冲击这时候Rabbitmq就像清道夫一样把所有数据进行排列处理。
​ Rabbitmq一般的数据量小的服务器不需要使用,在大数据集群中才会使用优势才能体现,仅做简单了解即可,不需要深入。

Mysql

​ Mysql应该是老面孔了,在微服务架构中,Mysql数据库主要用于存储数据,微服务为了更加彻底的分离实现初始化时,单独对不同模块建数据库和表的初始化脚本,达到分库分表的效果。
​ Mysql的搭建和使用只要会进行数据库的表的数据查询即可。

jar

​ jar也就是我们微服务的核心了,war需要tomcat容器进行装载而jar自带tomcat容器,不需要单独安装,单独模块跟独立系统一样,可以实现不同jar包组合形成全新的系统。
​ jar使用会启动即可,使用Linux命令查询相关jar的进程即可。

jdk

​ jdk的作用不言而喻,使用java开发的代码为什么这么流行原因就是java的特点-write once,run anywhere,而保证这一特点的脊柱就是jdk,jdk中有jvm,所有代码都会在jvm中进行运行。

总结

​ 说了这么多,相信能对微服务有所了解,简单来说微服务是为了解决互联网普及后应用或者程序越来越复杂的问题的,从而引入了各种组件来解决这些问题,组件仅仅为我们解决问题的,所有组件对于测试来讲不需要掌握做了解即可每一个组件都可以作为一个主题进行研究,并且有各种书籍作为介绍,对于测试来讲核心还是掌握测试的方法和原理是根本,开发来讲可能就是对jar包开发的开发人员掌握java语言,对组件也简单了解,架构就要对各种组件进行深入了解了,这是我对微服务的理解,希望能帮助到大家,后续随着技术的发展可能又会延伸出其他框架,需要我们保持不断的学习。

posted @ 2022-02-11 15:49  天行者_sky  阅读(532)  评论(0编辑  收藏  举报