自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(140)
  • 收藏
  • 关注

原创 Peewee ORM中`NOT EXISTS`条件查询的实战指南

NOT EXISTS是Peewee中处理跨表关联过滤的利器,核心在于正确构造子查询并关联主表字段。通过本文的实战示例,你可以快速掌握这一技能,解决类似“清理冗余数据”“过滤无关联记录”等场景问题。(注:本文部分SQL基础概念参考自Worktile社区和优快云博客。

2025-05-29 16:33:25 325

原创 redisson-spring-boot-starter 版本选择

本文详细介绍了 Spring Boot 与 redisson-spring-boot-starter 的版本对应关系,按 Spring Boot 主版本和子版本进行了细分。对于 Spring Boot 3.x 系列,推荐使用 Redisson 3.23.1,兼容 Redis 7.x,要求 Java 17+;Spring Boot 2.7.x 系列推荐使用 Redisson 3.17.6,兼容 Redis 6.x,支持 Java 8/11;Spring Boot 2.6.x 和 2.5.x 系列则分别推荐 R

2025-05-21 16:28:48 950

原创 不通规格的POD,jedis 连接池大小的建议配置

针对不同资源配置的POD,Jedis连接池的建议配置如下: 小资源 Pod(1核CPU + 1GB内存):最大活跃连接数(max-active)为50,最大空闲连接数(max-idle)为20,最小空闲连接数(min-idle)为5,最大等待时间(max-wait)为2000毫秒。 中等资源 Pod(2核CPU + 4GB内存):最大活跃连接数(max-active)为100,最大空闲连接数(max-idle)为30,最小空闲连接数(min-idle)为10,最大等待时间(max-wait)为1000毫秒。

2025-05-16 09:33:17 216

原创 Spring Boot 和 Jedis版本搭配的建议

本文提供了 Spring Boot 与 Jedis 的版本组合推荐及详细说明。对于新项目,建议使用 Spring Boot 3.1.x 和 Jedis 4.4.x,以支持 Java 17+ 并获得最新特性。对于需要兼容 Java 8-17 的项目,推荐使用 Spring Boot 2.7.x 和 Jedis 3.9.x。对于遗留项目,建议使用 Spring Boot 2.6.x 及以下版本与 Jedis 3.6.x-3.8.x 组合。此外,文章还提供了连接池配置示例,并建议在 Jedis 兼容性有问题时考虑

2025-05-15 13:37:39 1006

原创 k8s 中使用 Service 访问时NetworkPolicy不生效问题排查

在Kubernetes集群中,针对k8s-man服务的NetworkPolicy配置了仅允许n9e命名空间的POD访问。然而,发现通过POD的IP可以直接访问服务,但通过Service访问时却失败。排查过程中,通过检查iptables和ipset,发现经过Service访问时,源IP被NAT转换为源POD所在节点的容器IP,导致NetworkPolicy无法正确识别和允许这些请求。最终,通过调整NetworkPolicy,添加了源POD节点的容器网段(172.16.239.0/24和172.16.46.0/

2025-05-14 15:32:29 397

原创 解决使用lettuce连接Redis超时的问题(tcpUserTimeout 参数失效问题)

lettuce 连接Redis的主从实例,当主节的主机异常下电重启后,由于没有发送RST 包,导致 lettuce 一直在复用之前的TCP链接,然后会出现连接超时的情况。就可以不再等待15分钟。但是由于影响较大,也会影响主机上其他的TCP连接,此方案被排除。的错误,直到约15分钟后,TCP不再重传,断开连接才恢复。,应用日志显示参数不生效,同时验证后确实无效,问题依然存在。),升级 lettuce 的依赖到 6.3.0,同时设置。应用启动不再提示,并且在故障后30s出现重连的日志,说明。

2025-05-07 09:32:09 631

原创 Python中使用Redis的参数

在使用redis-py时,你需要通过连接参数来配置与Redis服务器的连接。在使用这些参数时,请根据你的具体需求和Redis服务器的配置进行选择和设置。如果你正在迁移到新项目或更新现有项目,建议查阅最新的redis-py文档,因为库的更新可能会引入新的功能或更改现有功能的默认行为。描述:当使用Unix socket连接Redis时,指定socket文件的路径。描述:指定要连接的Redis数据库的索引,Redis默认有16个数据库。描述:指定在Python中使用的编码方式,通常用于处理字符串数据。

2025-04-27 11:17:01 393

原创 升级vite4 vite-plugin-theme 出现的错误

然后修改 package.json 的vite-plugin-theme 为。因为安全咯漏洞升级vite4后。

2025-04-11 15:27:29 131

原创 firewall-cmd添加访问规则

若要使用允许网段访问本地的 8088 端口,你可以按照以下步骤操作。

2025-03-28 18:57:57 703

原创 技术博客:Gin框架嵌套数组参数绑定实践

该方案已在生产环境稳定运行,正确处理了K8s多工作负载类型的参数接收需求。在K8s管理平台开发中,我们经常需要处理复杂参数的接收。

2025-03-17 10:29:40 137

原创 Nginx 限流功能:原理、配置与应用

Nginx 的限流功能为我们在应对高并发场景时提供了一种简单而有效的解决方案。通过合理配置和模块,我们可以根据不同的业务需求灵活地实现请求速率限制和连接数限制。在实际应用中,结合具体的业务场景,充分发挥 Nginx 限流功能的优势,能够有效地提升系统的稳定性和可靠性,为用户提供更加优质的服务体验。希望本文能帮助读者深入理解 Nginx 限流功能,并在实际项目中成功应用。

2025-03-11 15:46:04 592

原创 Python的win32com库的简单示例

是一个强大的 Python 库,用于与 Windows COM(Component Object Model,组件对象模型)对象进行交互。

2024-08-13 15:19:35 967

原创 Python中将代码打包成exe文件

注意:PyInstaller会生成一堆文件,包括动态链接库文件(DLLs)、资源文件等。如果你的程序依赖于其他数据文件或者特定的资源,你需要手动将这些文件放置在exe文件相同的文件夹中,或者使用PyInstaller的命令行参数来指定这些额外的文件。在Python中将代码打包成exe文件,可以使用PyInstaller工具。–onefile参数表示把所有的文件打包进一个exe文件中。如果你想要生成一个不包含控制台窗口的exe文件(即GUI程序),可以使用–windowed或者–noconsole参数。

2024-08-12 15:38:22 441

原创 Vben admin Form中的 OnChange

这里以 APiselect组件的 onchange 示例。

2024-07-17 13:45:33 467

原创 DBeaver连接clickhouse数据库无法查看数据库

dbeaver-ce-22.2.2 用 0.5.0 就不行了,换成 0.4.6 就行了。dbeaver-ce-24.1.0 用的 0.5.0。是JDBC驱动原因.

2024-06-11 17:00:38 611

原创 Linux磁盘扩容操作

这些命令将会将新的物理卷添加到卷组中,并将逻辑卷扩展到卷组中所有可用的空间,最后调整文件系统大小以便可以使用新的逻辑卷大小。请根据您的实际情况和需求进行相应调整。逻辑卷扩展到卷组中所有可用的空间。的新物理卷,我们希望将其添加到名为。

2024-05-11 08:36:17 376

原创 通过Admission Webhook限制Namespace下Nodeport Service的端口范围

要注意的是,这个示例仅提供了核心的检查逻辑,你需要根据你的环境配置服务的部署和证书等。同时,你还需要配置MutatingWebhookConfiguration和ValidatingWebhookConfiguration,以便Kubernetes知道如何与你的Webhook通信。在这个示例中,我们定义了一个Webhook,它在Service创建时检查NodePort的值。如果NodePort的值不在30000到32767的范围内,Webhook将拒绝该请求。

2024-04-18 16:23:02 293

原创 使用GO语言验证证书的有效期

定时扫描K8s集群证书的过期时间, exporter 需要运行 daemonset 感觉过于浪费资源, 打算自己用Go下一个工具, 定时在每个节点上都拉起一下, 跑完了就销毁.替换为您要验证的证书文件的路径。代码将读取证书文件,解析证书并检查当前时间是否在证书的有效期内。根据验证结果,将输出相应的结果。在上面的代码中,需要将。

2024-03-26 14:51:45 729 1

原创 Deepflow Agent 自定义配置组

要修改Deepflow Agent 的配置文件。配置组的ID放进去, 同时修改对应的配置。有 deepflow-ctl 工具。后续修改配置使用文件更新即可。修改完毕后创建配置组配置。首先查看配置组的ID。

2024-03-21 16:24:57 524

原创 nginx 中 user 配置的作用

通过指定一个非特权用户来运行 Nginx 进程,可以降低潜在的安全风险。即使在被攻击时,攻击者也只能以指定用户的权限运行恶意代码,而无法获取系统更高权限。用户的身份运行(即使使用 root 用户运行nginx进程, nginx运行过程中线程的用户还是用的。:以非特权用户身份运行 Nginx 进程可以限制其对系统资源的访问权限,减少潜在的系统风险。指令用于指定 Nginx 运行时所使用的用户和用户组。:根据安全最佳实践,建议将服务进程运行在非特权用户下,以减少系统受到攻击的风险。

2024-03-20 09:23:22 1638

原创 Python 分组后携带明细记录

方法应用了一个 lambda 函数,该函数将每个分组的明细记录转换为字典列表,并将其放入一个新的 DataFrame 列中。如果你想在 Pandas 中对分组后的明细记录创建一个列表,并将其放入 DataFrame 中,你可以使用。方法按照 ‘column_to_group_by’ 列进行分组,并使用。方法重置索引并为新的列命名。这样就可以得到包含明细记录列表的分组结果了。在这个示例中,我们使用。

2024-02-02 10:07:52 321 1

原创 Python 字段进行分组和聚合操作

在这个示例中,我们创建了一个包含 ‘group’, ‘category’, ‘value1’ 和 ‘value2’ 四个字段的字典,并将其转换为。除了这些常见的聚合函数外,你还可以使用自定义的函数进行聚合操作。方法对 ‘value1’ 和 ‘value2’ 两个字段分别进行了求和和平均值的聚合操作。方法可以接受一个字典作为参数,字典的键是要进行聚合操作的列名,值是要应用的聚合函数。方法按照 ‘group’ 和 ‘category’ 两个字段进行分组,并使用。要对多个字段进行分组和聚合操作,你可以在。

2024-02-02 09:25:33 598

原创 Python 对Mysql的查询结果进行分组加工

的 DataFrame 中,然后对 DataFrame 进行分组和聚合操作。两个聚合函数对 ‘numeric_column’ 和 ‘other_column’ 两个字段进行了分组和聚合操作。最后,关闭了数据库连接。方法按照 ‘column_to_group_by’ 列进行分组,并应用了。在这个示例中,我们首先建立了到 MySQL 数据库的连接,然后使用。的 DataFrame 中。从数据库中读取数据并将结果存储在。从数据库中读取数据并将结果存储在。当使用 MySQL 时,可以使用。

2024-02-02 09:23:47 422

原创 journalctl日期范围操作

在这个示例中,–since 选项指定了一个时间范围(在这种情况下是“1 hour ago”),以便查看在这段时间内 Docker 服务的日志。选项用于指定时间范围。你可以根据需要调整日期和时间来查看特定时间段内的日志。要查看特定时间段的 Docker 服务日志,你可以使用。选项来限制日志的数量和时间范围。这里以Docker 日志为例。选项来指定服务单元名称(也可以使用相对是想见范围。

2024-01-25 14:31:27 1757

原创 预编译仓库中的 Helm Chart

通过这种方式,你可以在不安装 Chart 的情况下,预览并检查 Chart 生成的 Kubernetes 资源文件。内网部署项目, 没法直接hlem install , 需要提前看看有哪些镜像, 拉到本地看看。如果你有其他关于 Helm 的问题,或者需要更多帮助,请随时告诉我。这将会将下载的 Chart 文件预编译为 Kubernetes manifests。要使用预编译仓库中的 Helm Chart,你可以使用。命令来将 Chart 下载到本地,并使用。命令来预编译该 Chart。

2023-12-29 15:00:21 627

原创 Go 中 for循环内使用协程的变量值脏读问题

如下代码的输出, 我们在 for 循环中,使用了协程(go runtime)。原因:因为这里的v 是一个指针变量, 每次循环都会重新赋值, 再执行每次的。之前,v 的值就被改了, 这里被坑惨了。重新声明一个变量,传给协程。不是预想的 a,b, c 乱序。每个学Go的都要踩的坑。

2023-12-18 16:50:29 806 1

原创 对 K8s 中的 NameSpace的ResourceList进行加减操作

需要将命名空间内新家的STS所使用的配额自动加到NameSpace上, 就需要对NameSpace的ResourceList做加减操作。

2023-12-15 16:39:07 282

原创 将POD的ResourceList转为Namespace格式的ResourceList

k8s client 中 POD的ResourceList 和 NameSpace的ResourceList 格式不一样, 进行配额加减计算的时候需要转换, 因为开发了工具类。入参 req 是POD的 requests的ResourceList,lim 是 limits 的ResourceList。

2023-12-15 16:33:40 128

原创 K8s 的 ResourceList进行加减操作工具类

在Kubernetes Go客户端中,你可以使用一些基本的算术运算符来对ResourceList进行加减操作。ResourceList中的值是以。需要计算STS需要的资源并且扩容NameSpace的resourcequotas。类型表示的,这个类型实际上是一个map,其中key是。你可以通过操作map中的值来进行加减乘除操作。

2023-12-12 13:16:30 962 1

原创 计算修改ResourceQuota

在上面的示例中,我们首先使用 Get 方法获取了现有的ResourceQuota对象,然后修改了CPU和内存的配额,并使用 Update 方法将其更新到Kubernetes集群中。你可以根据自己的需求修改命名空间名称和现有ResourceQuota的名称。希望这个示例能够帮助你开始使用Kubernetes的Client-Go库来在现有的ResourceQuota基础上添加CPU和内存配额。如果你有其他问题或需要更多帮助,请随时告诉我。

2023-12-12 11:23:55 209

原创 K8s Informer 的 Resync 机制

Informer 的 Resync 机制是指在一定时间间隔内强制重新同步(resync)资源对象的机制。这个机制可以帮助应用程序确保本地缓存中的资源对象与实际的 API Server 中的资源对象保持同步,从而减少对 API Server 的请求频率,提高性能和效率。Resync 机制的实现通常涉及两个方面的内容:定时的全量同步:Informer 定期执行全量的列表请求,获取所有资源对象的最新状态,并将其更新到本地缓存中。这样可以确保本地缓存中的资源对象与 API Server 中的资源对象保持同步。

2023-12-11 10:56:26 1062

原创 K8s client go 合并informer

在上面的示例中,我们注册了一个统一的事件处理器,用于处理合并的多个资源的事件。在事件处理器中,我们使用类型断言来区分不同资源类型的事件,并进行相应的处理。根据对象的类型或其他标识,你可以在事件处理器中将事件路由到不同的处理逻辑中。当合并多个资源的 Informer 后,你可以注册一个统一的事件处理器来处理所有资源的事件。在事件处理器中,你可以通过类型断言来区分不同资源类型的事件,并进行相应的处理。希望这个示例能够帮助你了解如何处理合并的多个资源的事件。如果你有其他问题,或者需要更多解释,请随时告诉我。

2023-12-11 10:54:54 292

原创 Go查询Elasticsearch

方法将其添加到查询中。这样,我们就可以在查询中同时使用查询条件和过滤条件。这个示例中的过滤条件是一个范围查询,用来过滤出年龄大于等于 18 岁的文档。希望这个示例能够帮助你使用 Go 语言向 Elasticsearch 发送带有过滤条件的分页请求。如果你有其他问题或需要进一步的帮助,请随时告诉我。在 Go 中需要在 Elasticsearch 中执行带有过滤条件的查询时,你可以使用。分别为你的 Elasticsearch 主机地址和索引名称。在这个示例中,我们添加了一个名为。同样,请替换代码中的。

2023-11-27 10:55:58 779 1

原创 K8s client go 创建CRD的informer

convertUnstructuredProject的实现 Project 是实现的 runtime.Object 接口的struct。dynamicClient 是 创建的K8s的client, 这里使用的是 Unstructured 接収的CRD的结果,需要监听K8s中CRD资源的变动, 做出相应的处理, 需要针对 CRD资源建立informer。加工了一下, convertUnstructuredProject 实现下面提供。

2023-11-23 08:49:14 1132 1

原创 多参数训练Isolation Forest

在这个示例中,我们首先将数据集中的 ‘x’ 和 ‘y’ 两个指标合并成一个特征向量 ‘xy’,然后将标签 ‘label’ 转换成 -1 和 1。接着,我们使用 Isolation Forest 模型对数据进行训练,并使用训练好的模型对一个新的数据点进行预测。如果你要使用两个指标作为入参训练 Isolation Forest 模型,你需要将这两个指标合并成一个特征向量,然后将这个特征向量作为模型的输入。具体来说,你需要将每个数据点的两个指标组合成一个二元组,然后将这些二元组组成一个矩阵,作为模型的输入数据。

2023-11-20 14:31:11 199

原创 请求prometheus数据然后使用tensorflow计算正则模型

使用tensorflow 计算正则模型, 数据来源为Prometheus的数据近7天的数据, 然后计算了90%区间的上下限和当前值的概率密度。

2023-11-17 17:24:56 429

原创 使用python计算K8s的内存和CPU配额

【代码】使用python计算K8s的内存和CPU配额。

2023-10-26 17:41:58 282

原创 Linux TCP链接查看和调整

Linux系统默认情况下会保留一些TCP连接,以便快速重新使用这些连接。但是,如果您的服务器需要处理大量的并发连接,则可能需要调整TCP连接数的设置。请注意,在增加TCP连接数之前,您应该了解服务器的硬件和网络限制,并确保您的设置不会导致服务器过载或性能下降。统计已连接上的,状态为“established”的TCP连接数。统计某个IP地址连接最多的TCP连接数。统计httpd协议连接数。

2023-09-07 10:38:20 1232

原创 gin通过反射来执行动态的方法

在gin中,可以通过反射来执行对应的方法。

2023-07-31 15:46:25 1711

原创 使用Go语言爬取网页并将其保存为图片

库来控制Chrome浏览器的Headless模式。我们首先创建一个新的上下文,然后导航到指定的网页。接着,我们等待页面加载完成,然后使用。要使用Go语言爬取网页并将其保存为图片,你可以使用Go的第三方库来实现。请注意,这只是一个简单的示例,你可能需要根据自己的需求进行更多的定制和错误处理。函数来截取屏幕截图,并将其保存到指定的文件中。记得在运行代码之前,确保已安装了。在这个示例中,我们使用。

2023-07-27 17:17:47 1133

protoc-21.12-linux-x86-64

protoc-21.12-linux-x86-64

2024-01-05

windows amd x64 go-bindata.exe

windows amd x64 环境下编译的 go-bindata.exe

2023-03-29

flink 安装包 1.15.2(flink-1.15.2-bin-scala_2.12 .tgz)

flink 安装包 1.15.2(flink-1.15.2-bin-scala_2.12 .tgz)

2022-10-08

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除