温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

微服务测试的本质是什么

发布时间:2021-10-25 16:55:00 来源:亿速云 阅读:194 作者:iii 栏目:开发技术

这篇文章主要讲解了“微服务测试的本质是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“微服务测试的本质是什么”吧!

微服务概念

微服务英文名称Microservice,微服务架构模式就是将整个Web应用组织为一系列小的Web服务。这些小的Web服务可以独立地编译及部署,并通过各自暴露的API接口相互通讯。它们彼此相互协作,作为一个整体为用户提供功能,却可以独立地进行扩展。

要点

  • 微服务的基本思想在于考虑围绕着业务领域组件来创建应用;

  • 微服务主要框架包括:Dubbo、Spring Cloud、 Istio ;

  • 对于互联网谈到微服务架构一定会谈到Devops即开发测试和部署运维的一体化;

  • 微服务简化了开发,它将创建复杂系统的任务切分为数十乃至上百个小服务,这些小服务易于被小型的软件工程师团队所理解和修改。但是微服务并未真正地消除复杂性,而是将复杂性迁移到对大量服务的连接、管理和监控上;

  • 微服务与SOA,微服务是SOA发展出来的产物,它是一种比较现代化的细粒度的SOA实现方式;

传统服务与微服务的区别

微服务测试的本质是什么

大家可以看到,传统服务是所有的功能都部署在一台机器上(上图左),通过增加服务器数量来扩容!而微服务是以业务为单位进行部署,不同的业务部署在不同的服务器上,业务使用频繁的还可以使用更多的资源进行部署(上图右侧,橘黄色部署了5个单元,而玫红色只部署了一个单元),这样就可以更合理的利用资源了!

传统设计与微服务在数据库方面设计的区别

微服务测试的本质是什么

大家可以看到传统服务的所有功能对应一个DB (上图左),而微服务可以根据不同的业务设计不同的DB (上图右,可以一个业务对应一个独立的DB)

微服务架构设计核心

1:我们把整个系统根据业务拆分成几个子系统。

2:每个子系统可以部署多个应用,多个应用之间使用负载均衡

3:需要一个服务注册中心,所有的服务都在注册中心注册,负载均衡也是通过在注册中心注册的服务来使用一定策略来实现。

4:所有的客户端都通过同一个网关地址访问后台的服务,通过路由配置,网关来判断一个URL请求由哪个服务处理。请求转发到服务上的时候也使用负载均衡。

5:服务之间有时候也需要相互访问。例如有一个用户模块,其他服务在处理一些业务的时候,要获取用户服务的用户数据。

6:需要一个断路器,及时处理服务调用时的超时和错误,防止由于其中一个服务的问题而导致整体系统的瘫痪。

7:还需要一个监控功能,监控每个服务调用花费的时间等

SpringCloud

Spring  Cloud是基于SpringBoot的一整套实现微服务的框架。他提供了微服务开发所需的配置管理、服务发现、断路器、智能路由、微代理、控制总线、全局锁、决策竞选、分布式会话和集群状态管理等组件。

官网:https://springcloud.cc/

特点:

  • 分布式/版本化配置

  • 服务注册和发现

  • 路由

  • service - to - service调用

  • 负载均衡

  • 断路器

  • 分布式消息传递

SpringCloud包括的主要组件如下图:

微服务测试的本质是什么

一个Spring Cloud 工程的pom配置文件如下,大家可以简单的理解为在SpringCloud

工程的pom.xml中,你需要什么功能,把它直接引入工程就可以了

微服务测试的本质是什么

在这里由于我们主要介绍微服务概念,所以就不过多解释springcloud相关的开发内容了。

微服务测试

  • 前端UI

与传统测试没有区别,因为你只做功能那么你感受不到架构的变化!

  • 服务端

微服务通常使用通过HTTP的REST来暴露,因此微服务的测试等价于接口测试。对微服务提供的接口进行功能、性能、安全测试,具体测试方法如下:

1.通过构建请求调用各个微服务接口,可以通过编码或者工具模拟的方式完成。

编码:python(unittest+requests);Java(junit4+httpclient)

工具模拟:jMeter、soupUI、postman等

2.请求的验证:除了验证接口的返回值外,还要关注负载均衡(请求是否分发到多点应用)

3.监控:通过工具 SpringCloud Sleuth、 Turbine、Prometheus进行监控

4.日志:通过ELK( ElasticStack )来集中化管理日志

  • 重点:

微服务架构下,既需要保障各服务内部每个模块的完整性,又需要关注模块间、服务间的交互。

  • 难点:

1.关联性:微服务通常情况下会与多个微服务进行交互。当某服务发生变化时,会直接影响到依赖的其他服务。

2.可靠性:为了尽可能降低微服务间通信对网络情况的高度依赖,降低因网络不稳定引起的故障率,设计微服务架构时会设计隔离机制。

3.数据一致性:微服务是基于分布式系统设计的,这就需要考虑分布式系统数据一致性的问题。

感谢各位的阅读,以上就是“微服务测试的本质是什么”的内容了,经过本文的学习后,相信大家对微服务测试的本质是什么这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI