借Kubernetes-Pod访问内部服务器组件
当我们在 Kubernetes 上工作时,有时会遇到这样的场景:我们需要从本地访问一个位于集群内部的 Redis 服务器,但出于安全考虑,这个 Redis 服务并没有直接暴露给外部。不过,集群里有一个 Pod 已经具备了访问这个 Redis 服务器的能力。 利用这个 Pod 作为跳板,我们可以安全地从本地连接到目标 Redis 服务器。由于这个 Pod 本身并不是 Redis 服务,我们不能直接使用 kubectl port-forward。相反,我们需要在 Pod 内部运行一个临时的代理进程。 下面是实现这个目标的详细步骤,可以作为你的操作笔记或博客文章。 借道 Kubernetes Pod 访问内部 Redis 服务器步骤零:先安装必要工具1apt install -y socat net-tools 步骤一:找到你的“跳板” Pod首先,你需要确定那个能够连接到 Redis 服务器的 Pod 的名称。你可以使用 kubectl 命令列出集群中的所有 Pod: 1kubectl get pods 从列表中找到你需要的 Pod,例如它的名字是 my-redis-client...
使用 TypeScript 创建 Koa 服务器
概述尽管使用 NodeJS 搭建 HTTP 服务器早已是 Web 开发者们的家常便饭,但结合时下最热门的 TypeScript 却能带来更棒的开发体验。今天,我们就来一起尝试将它们结合起来,快速搭建一个健壮的 Koa 服务。 Koa 基础环境搭建我们从 Koa 开始,它是一个轻量且富有表现力的 NodeJS Web 框架。 安装核心依赖安装 Koa 及其常用的中间件 (Middleware): 1npm install koa koa-bodyparser koa-json koa-logger koa-router 注意: koa-bodyparser、koa-json、koa-logger 和 koa-router 都属于 Koa 的中间件。 编写基础 Koa 代码首先,创建 src 目录用于存放源代码,并在其中创建 index.js 文件: 123// 文件结构src└── index.js 基础 Koa 服务 (index.js): 123456789101112131415161718192021222324252627import Koa from '...
Nodejs应用提取heap并加以分析的一些常用方法
提取heap snapshot在 Node.js 的本地运行环境中,开发者可以利用多种工具来提取堆(heap)转储,以分析内存使用情况,检测内存泄漏,优化性能。以下是一些常用且有效的工具: heapdump 模块heapdump 是一个流行的 Node.js 模块,允许在运行时生成 V8 引擎的堆快照。通过这些快照,开发者可以深入分析应用程序的内存使用情况,识别潜在的内存泄漏。 安装与使用: 1npm install heapdump 在应用程序中引入并使用: 12345678910const heapdump = require('heapdump');// 在需要生成堆快照的地方调用heapdump.writeSnapshot((err, filename) => { if (err) { console.error('Heap snapshot failed:', err); } else { console.log('Heap snapshot written...
强大的包管理器Poetry
摘自:https://www.cnblogs.com/liuzhongkun/p/16797346.html Poetry概述介绍Poetry 是Python 中用于依赖管理和**打包的工具。**它允许您声明项目所依赖的库,并将为您管理(安装/更新)它们。Poetry 提供了一个锁定文件以确保可重复安装,并且可以构建您的项目以进行分发。 作为一个传统虚拟环境的实现,poetry 凭借其强大的依赖分析能力被大量项目所推荐的虚拟环境管理工具。 对于绝大部分的开发者而言,poetry 作为首选的虚拟环境管理工具是最优方案,其强大的依赖分析能力、环境封装能力以及庞大的社区均可为你的开发保驾护航,这也是我目前最为推荐所有 python 开发者所掌握的虚拟环境管理工具。 环境配置官方推荐安装1curl -sSL https://install.python-poetry.org | python3 - 环境变量: POETRY_HOME:安装目录 POETRY_PREVIEW:是否安装预发布版本,如果需要,设置为POETRY_PREVIEW=1 POETRY_VERSION:...
mac配置防火墙
在 macOS 中,防火墙(Firewall)的设置通常通过系统偏好设置(System Preferences)中的“安全性与隐私”面板来进行配置,但也可以通过终端(Terminal)命令来修改防火墙设置。macOS 还使用一个名为 pf.conf 的文件来配置其内置的 Packet Filter(PF),这是一个强大的网络过滤工具。 通过系统偏好设置配置防火墙 打开“系统偏好设置”。 点击“安全性与隐私”。 选择“防火墙”选项卡。 点击“防火墙选项...”。 在这里,你可以启用或禁用防火墙,以及配置特定的规则,如允许或阻止特定的应用程序访问网络。 通过终端(Terminal)配置防火墙如果你希望通过命令行来配置防火墙,可以使用 pfctl 命令。pfctl 是一个用于管理 PF 防火墙的工具。 启用防火墙1sudo pfctl -e 禁用防火墙1sudo pfctl -d 查看防火墙状态1sudo pfctl -s rules 编辑 pf.conf 文件pf.conf 文件位于 /etc/pf.conf。你可以使用文本编辑器(如 nano 或 vim)来编辑此文件。 例...
scrapy爬虫框架的使用
Scrapy的介绍scrapy的工作流程如下图所示: 爬虫: 负责向引擎提供要爬取网页的URL,引擎会把这个URL封装成request对象并传递给调度器, 把引擎传递过来的response对象进行数据解析。数据解析有两种结果: 解析出具体的数据,那么通过引擎把这个具体的数据传递给管道,然后存入文件、数据库等 解析出一个新的URL,那么过程同作用1 管道:负责把引擎传递过来的数据进行存储,存入文件、数据库等。管道可以有多个,比如MySQL的管道,某个文件的管道,mango的管道等。 调度器:可以把调度器的存储结构看成一个优先队列,不同的request对象可能优先级不一样,按优先级的高低进行调度 把引擎传递过来的request对象放入队列进行排队,调度器可以实现去重的效果,即对两个相同的URL,只存储一个 向引擎提供队头的request对象(即优先级高的request对象),引擎把这个request对象传递给下载器进行请求 下载器:把引擎传递过来的request对象发送给服务器请求数据,并把服务器返回的内容封装成response对象, 然后把这个response对...
Beanshell用法
Jmeter 里面有几个用到Beanshell的地方,这里作同一介绍。 Beanshell Sampler – 一个独立的beanshell请求 Beanshell PreProcessor – sample的一个预处理装置,在sample之前执行,可用来作为执行的先决条件(例如产生某些输入) Beanshell PostProcessor – 在sample之后再执行的一个提交处理器,可用来恢复数据或这清除数据 Beanshell Assertion – 一个访问jmeter api 的后期断言装置,Java的逻辑可以被用来设置这个断言的结果 __Beanshell Function – 允许在sample执行期间,客户自定义beanshell代码的jmeter函数 下面说明会经常使用的beanshell语法: 假设你有个自定义的变量id,想给这变量重新赋值,那么你可以使用vars操作相关变量:获取变量:vars.get("id"); 给变量赋值:vars.put("id","J_123456"); 如果你...
前置处理器
前置处理器 预处理器是JMeter的元素,在测试场景中用于执行采样器请求之前执行的操作。预处理器可用于不同的性能测试需求,例如从数据库中获取数据、在采样器执行之间或在测试数据生成之前设置超时。 BeanShell PreProcessor假设我们要测试一个需要“token”参数的请求,这个参数可以是任何随机自字符串,我们可以轻松使用预处理器生成随机字符串并在采样器中使用它的一个很好的例子,BeanShell预处理器适用于此,因为它可以管理性能脚本中的任何程序员任务。 Right Click on the Sampler -> Add -> Pre Processors -> BeanShell PreProcessor 参数说明: Reset bsh.Interpreter before each call: 在每次调用之前重置解释器并清除占用的内存。将此选项设置为“True”对于长时间运行的脚本可能很有用,因为重复调用可能会消耗大量内存 **Parameters :**将传递给BeanShell脚本的JMeter参数。您需要记住,如果在此配置字段中未指...
JMETER使用逻辑控制器
jmeter包含了如下多种控制器 使用方式 将请求包含在控制器内部 样例(当选中红框时,可以使用 groovy 执行beanshell 脚本。)groovy(官方建议使用方式) javascript 脚本方式(不勾选红框)
jmeter动态参数
使用csv作为动态参数的输入添加->配置元件->CSV Data Set Config添加动态参数。如下: CSV 文件的内容如下:这里随意写了几个。变量名列表。对应参数文件每列的变量名,类似Excel文件的文件头,起到标示作用,同时也是后续引用的标识符,建议采用有意义的英文标示。例如:loginToken可以被用变量名来引用:${loginToken}。多个变量名之间必须用分隔符分隔。如果该项为空,则文件首行会被读取并解析为列名。 12345loginToken111222233334444 Jmeter中配置如下: 参数解释 名称(Name ):脚本中显示的该元件的描述性名称,必须填写。 注释(Comments):对该元件的说明信息。(非必填写) 文件名(Filename ):待读取文件的名称。可以写入绝对路径,也可以写入相对路径(相对于bin目录或者脚本文件所在目录),如果直接写文件名,则该文件一定要放在bin目录中。对于分布式测试,主机和远程机中相应目录下应该有相同的CSV文件,必须填写。(建议填写相对路径,避免脚本迁移时需要修...
