利用简单方法解决外部系统回调测试环境,多套环境便捷切换

本文主要是介绍利用简单方法解决外部系统回调测试环境,多套环境便捷切换,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

原文由JoyMao发表于TesterHome社区网站,点击原文链接可与作者直接交流

这个是简单的措施来解决外部系统回调测试环境时面临多套环境的方法。

背景:

部门有10套测试环境并发,每套环境都有一些同样的应用来接受外网或者内网内的其他系统的webhook回调处理,但回调地址只能有一个:每次版本变化,对应应用ip都会发生变化,需要及时去修改,存在管理混乱的问题。

过程

解决的方法很多,比如服务化、proxy、k8s…复杂度不一,不改动现有测试发布环境的基础上,利用proxy是最方便的,但需要提供方便改动proxy转发的方式。
这时候nginx的dynamic_upstream插件就能解决,他提供http接口来管理upstream(server的加、删、上线、下线),非常方便。
我们要做的就是在发布系统中建立一个管理页面来管理,结构如下:

此插件比较古老(古老不代表过时),github地址:https://github.com/cubicdaiya/ngx_dynamic_upstream
readme中有具体的API,这里就不再粘贴了。

附:安装插件及nginx过程(centos为例)

[1]
yum -y install make zlib zlib-devel gcc-c++ libtool  openssl openssl-devel
cd /home
mkdir callback_switch
[2]
cd callback_switch
wget https://nchc.dl.sourceforge.net/project/pcre/pcre/8.45/pcre-8.45.tar.gz --no-check-certificate
tar zxvf pcre-8.45.tar.gz
cd pcre-8.45
./configure
make && make install
[3]
cd ..
wget https://nginx.org/download/nginx-1.16.1.tar.gz --no-check-certificate
tar zxvf nginx-1.16.1.tar.gz
wget https://github.com/cubicdaiya/ngx_dynamic_upstream/archive/refs/tags/v0.1.6.tar.gz --no-check-certificate
tar zxvf v0.1.6.tar.gz
[4]
make nginxbin
cd nginx-1.16.1
./configure --prefix=/home/callback_switch/nginxbin --with-http_stub_status_module --with-http_ssl_module --with-pcre=/home/callback_switch/pcre-8.45 --add-module=/home/callback_switch/ngx_dynamic_upstream-0.1.6
make
make install
[6]
ln -s /home/callback_switch/nginxbin/sbin/nginx /usr/sbin/nginx 

后续优化

因为插件本身接口响应不利于UI端使用,我用go-iris重新包装了下他的http接口,配合vue-element实现对应的管理UI,实现只要配置好nginx的uptream zone后,可以十分方便的进行回调请求接收应用的设置。

原文由JoyMao发表于TesterHome社区网站,点击原文链接可与作者直接交流


今日份的知识已摄入,埋头学技术也不忘抬头看路 >>>

这篇关于利用简单方法解决外部系统回调测试环境,多套环境便捷切换的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/846550

相关文章

PHP轻松处理千万行数据的方法详解

《PHP轻松处理千万行数据的方法详解》说到处理大数据集,PHP通常不是第一个想到的语言,但如果你曾经需要处理数百万行数据而不让服务器崩溃或内存耗尽,你就会知道PHP用对了工具有多强大,下面小编就... 目录问题的本质php 中的数据流处理:为什么必不可少生成器:内存高效的迭代方式流量控制:避免系统过载一次性

C++右移运算符的一个小坑及解决

《C++右移运算符的一个小坑及解决》文章指出右移运算符处理负数时左侧补1导致死循环,与除法行为不同,强调需注意补码机制以正确统计二进制1的个数... 目录我遇到了这么一个www.chinasem.cn函数由此可以看到也很好理解总结我遇到了这么一个函数template<typename T>unsigned

通过Docker容器部署Python环境的全流程

《通过Docker容器部署Python环境的全流程》在现代化开发流程中,Docker因其轻量化、环境隔离和跨平台一致性的特性,已成为部署Python应用的标准工具,本文将详细演示如何通过Docker容... 目录引言一、docker与python的协同优势二、核心步骤详解三、进阶配置技巧四、生产环境最佳实践

python获取指定名字的程序的文件路径的两种方法

《python获取指定名字的程序的文件路径的两种方法》本文主要介绍了python获取指定名字的程序的文件路径的两种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要... 最近在做项目,需要用到给定一个程序名字就可以自动获取到这个程序在Windows系统下的绝对路径,以下

JavaScript中的高级调试方法全攻略指南

《JavaScript中的高级调试方法全攻略指南》什么是高级JavaScript调试技巧,它比console.log有何优势,如何使用断点调试定位问题,通过本文,我们将深入解答这些问题,带您从理论到实... 目录观点与案例结合观点1观点2观点3观点4观点5高级调试技巧详解实战案例断点调试:定位变量错误性能分

Python中 try / except / else / finally 异常处理方法详解

《Python中try/except/else/finally异常处理方法详解》:本文主要介绍Python中try/except/else/finally异常处理方法的相关资料,涵... 目录1. 基本结构2. 各部分的作用tryexceptelsefinally3. 执行流程总结4. 常见用法(1)多个e

SpringBoot 多环境开发实战(从配置、管理与控制)

《SpringBoot多环境开发实战(从配置、管理与控制)》本文详解SpringBoot多环境配置,涵盖单文件YAML、多文件模式、MavenProfile分组及激活策略,通过优先级控制灵活切换环境... 目录一、多环境开发基础(单文件 YAML 版)(一)配置原理与优势(二)实操示例二、多环境开发多文件版

使用docker搭建嵌入式Linux开发环境

《使用docker搭建嵌入式Linux开发环境》本文主要介绍了使用docker搭建嵌入式Linux开发环境,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面... 目录1、前言2、安装docker3、编写容器管理脚本4、创建容器1、前言在日常开发全志、rk等不同

JavaScript中比较两个数组是否有相同元素(交集)的三种常用方法

《JavaScript中比较两个数组是否有相同元素(交集)的三种常用方法》:本文主要介绍JavaScript中比较两个数组是否有相同元素(交集)的三种常用方法,每种方法结合实例代码给大家介绍的非常... 目录引言:为什么"相等"判断如此重要?方法1:使用some()+includes()(适合小数组)方法2

JWT + 拦截器实现无状态登录系统

《JWT+拦截器实现无状态登录系统》JWT(JSONWebToken)提供了一种无状态的解决方案:用户登录后,服务器返回一个Token,后续请求携带该Token即可完成身份验证,无需服务器存储会话... 目录✅ 引言 一、JWT 是什么? 二、技术选型 三、项目结构 四、核心代码实现4.1 添加依赖(pom