德州营销型网站,企业网站建设费用财务处理,wordpress文章关键词插件,网站怎么设计好看的图片微服务架构#xff08;Microservice Architecture#xff09; 微服务是一种架构风格。在微服务架构下#xff0c;一个大型复杂软件系统不再由一个单体组成#xff0c;而是由一系列相互独立的微服务组成。其中#xff0c;各个微服务运行在自己的进程中#xff0c;开发和部…微服务架构Microservice Architecture 微服务是一种架构风格。在微服务架构下一个大型复杂软件系统不再由一个单体组成而是由一系列相互独立的微服务组成。其中各个微服务运行在自己的进程中开发和部署都没有依赖。 微服务架构具有以下特点 每个服务运行在其独立的进程中开发采用的技术栈也是独立的 服务间采用轻量级通信机制进行沟通通常是基于 HTTP 协议的 RESTful API 每个服务都围绕着具体的业务进行构建并且能够被独立开发、独立部署、独立发布 对运维提出了非常高的要求促进了 CI/CD 的发展与落地。 微服务架构测试挑战 微服务之间的耦合关系 假定我们的被测对象是 Service T但是 Service T 的内部又调用了 Service X 和 Service Y。此时如果 Service X 和 Service Y 由于各种原因处于不可用的状态那么此时就无法对 Service T 进行完整的测试。 解耦的方式通常就是实现 Mock Service 来代替被依赖的真实 Service。实现这个 Mock Service 的关键点就是要能够模拟真实 Service 的 Request 和 Response。 基于消费者契约的 API 测试 下图中 Service T 是被测试对象进一步假定 Service T 的消费者也就是使用者一共有两个分别是 Service A 和 Service B。 Service T 可以对外提供的服务的契约所以我们把这个测试用例的集合称为“基于消费者契约的 API 测试”。 收集消费者契约的逻辑原理 在 Service T 前放置一个代理所有进出 Service T 的 Request 和 Response 都会经过这个代理并被记录成 JSON 文件也就构成了 Service T 的契约。 微服务架构中往往会存在一个叫作 API Gateway 的组件用于记录所有 API 之间相互调用关系的日志我们可以通过解析 API Gateway 的日志分析得到每个 Service 的契约。但是API Gateway 只有面向客户端的服务才会有这一层。内部调用主要靠splunk来获取。 微服务测试的依赖解耦和 Mock Service 实现 Mock Service 的关键就是要能够模拟被替代 Service 的 Request 和 Response。 契约的本质就是 Request 和 Response 的组合具体的表现形式往往是 JSON 文件此时我们就可以用该契约的 JSON 文件作为 Mock Service 的依据也就是在收到什么 Request 的时候应该回复什么 Response。 如下图当用 Service X 的契约启动 Mock Service X 后原本真实的 Service X 将被 Mock Service X 替代也就解耦了服务之间的依赖