[TOC]
作为测试人员,我们需要了解后端的技术栈和架构设计,才能更好地
精准狠
测试,提高业务测试效率,给我们的业务测试注入一针强心针
!记得只需要了解即可,不需要熟悉!下面我们来浅谈一下微服务···
花里胡哨
用户起来了,单机器部署的单体应用肯定是不满足业务的需求,老板说,没事那就加机器吧,每台机器配置都是 16c 32g,属实有点浪费···
Microservice
简称微服务,微服务架构模式就是将整个 web 应用组织成一系列小的 web 服务,而这些小服务能够独立编译和部署,并通过各自暴露的 API 接口相互通讯。它们彼此相互协作,作为一个大整体为用户提供功能,这些小服务又可以独立进行扩展下面举个通俗点的例子
刚出来工作的时候,那时候微服务还没兴起,服务实现和实施思路(相当于整个系统)是将很多功能从开发到交付都打包成一个很大的服务单元(一般称为 Monolith,单体应用),而微服务实现和实施思路则更强调功能趋向单一,服务单元小型化和微型化。如下面的图片所示···一个茶壶煮很多个饺子,现在(微服务化之后)则基本上是在一个茶壶煮一个饺子,可以在各个茶壶里定制不同口味,而这些饺子就是服务的功能,茶壶则是将这些服务功能打包交付的服务单元。
就拿上面的单体应用来说,根据业务把单体应用拆分为一个一个的服务,彻底的解耦,每一个服务都是提供特定的功能,一个服务只做一件事,类似进程,每个服务都能够单独部署,甚至可以拥有自己的数据库。这样的一个一个小服务就是微服务,比如上面的商城系统,可以拆分成mh-pdm
、mh-crm
、mh-pay
、mh-oms
拆分了之后,即使mh-pay
突然宕机了,只是支付功能不能用罢了,整个系统的核心功能还是可以用的,假如还是上面的单体应用,整个系统相当于瘫痪了···
mh-oms
出现了问题,只需修复mh-oms
即可,修复之后部署即可生效,不必重启整个项目从而大大节约时间。mh-oms
使用 Java 写的,mh-pdm
可以用 php 技术,技术更换成本很低。mh-oms
的服务器可以升级闪存和硬盘,提升性能,不必考虑其他模块的情况上云
,k8s
,集群
,容器调度
一大堆mh-oms
要改创建订单的接口,创建订单接口被其他微服务所调用,所有依赖它的微服务都要做相应的调整,由于微服务可能非常多,那么调整接口所造成的成本将会明显提高上游改东西了,可能影响到下游,下下下游···
中秋活动到来,流量增多,用户量激增,可能会对订单服务影响比较大,对应加大部署订单服务的服务器性能
微服务强调的是服务的大小和对外提供的单一功能,而微服务架构是指把一个一个的微服务组合管理起来,对外提供一套完整的服务
合适
不合适
下次我们来讲讲微服务之间是如何通信的,还有相关的测试方法···