- 博客(1342)
- 资源 (48)
- 收藏
- 关注
原创 keycloak创建client 接口以及相关配置说明
在企业级身份认证体系中,Keycloak 是目前最主流的开源 IAM(Identity and Access Management)解决方案之一,支持 OAuth 2.0、OpenID Connect(OIDC)和 SAML 2.0 协议。Client(客户端)是 Keycloak 中的核心资源,代表一个接入认证体系的应用程序或服务。在调用任何 Admin API 之前,需要先获取具有管理权限的 Access Token。,然后对这个用户分配角色,这样签发出来的 Token 里就会携带对应的权限信息。
2026-04-10 22:43:28
50
原创 Apache APISIX CORS 插件来处理跨域问题 |allow_credential: true配置约束
在 Apache APISIX 中同时配置 allow_origins_by_regex 和 allow_credential: true,却未显式设置 allow_origins 时,会遇到一个隐蔽问题:OPTIONS 预检请求返回 200,但没有任何 CORS 响应头。根因是 allow_origins 默认值为 *,Schema 校验阶段检测到 allow_credential: true 与 * 冲突后直接跳过整个插件,且不会因为配置了 allow_origins_by_regex 而豁免。本文通过
2026-03-26 09:42:29
127
原创 http协议header头之X-Forwarded-For (XFF) | APISIX 移除X-Forwarded-For
(简称 XFF)是一个 HTTP 请求头,用于在经过代理或负载均衡时记录请求的完整链路 IP。
2026-03-16 22:42:47
87
原创 APISIX 中轻量级的“探针“之serverless-pre-function + serverless-post-function
serverless-pre-function + serverless-post-function 是 APISIX 的轻量级"探针"组合,本质是在请求生命周期的两端注入自定义逻辑。APISIX 的 serverless-pre-function 和 serverless-post-function 两个插件,允许在路由上直接注入 Lua 代码,零侵入地完成网关层诊断。假设你有一个电商平台,支付回调接口 /api/payment/callback/* 近期频繁超时,上游是第三方支付网关,无法修改其代码。
2026-03-16 09:26:25
50
原创 APISIX vars 条件匹配:从路由冲突到精准分流 |vars 负向匹配实践
在 APISIX 网关中,当多条路由的 URI 存在通配重叠时,仅靠 priority 字段往往无法解决匹配冲突。这是因为 APISIX 采用"约束维度优先"的匹配机制——拥有更多匹配条件(如 hosts + uri)的路由会优先于仅有 uri 的路由被命中,priority 数值只在同维度路由间生效。本文通过实际案例,剖析了路由优先级的真实计算逻辑,并介绍了 vars 条件的负向匹配能力。通过在高优先级通配路由上添加 vars 正则排除条件(如 ["uri", "!", "~~", "^/specific
2026-03-15 21:12:02
59
原创 clickhouse判断用户有没有某行为-LIMIT 1 BY 和 SELECT DISTINCT
需求是什么?│├── 只判断 "有没有" ──────────→ LIMIT 1 BY ✅(最优) │├── 去重列表(不关心行内容)──→ 两者皆可,LIMIT 1 BY 略优│├── 取最早/最晚一条记录 ────→ GROUP BY + min() /max() ✅│├── 统计数量/求和/平均值 ───→ GROUP BY + 聚合函数 ✅│└── 每组取 TopN ───────────→ LIMIT N BY + ORDER BY(注意排序开销)| 场景 | 推荐写法 |
2026-03-13 22:35:57
54
原创 OpenClaw 内置 Cron 原理
OpenClaw的定时任务系统采用内置Cron调度器实现,通过维护Cron表达式周期性计算触发时间。任务配置存储在.openclaw/cron/jobs.json文件中,路径由数据目录和固定子路径组成。配置包含任务ID、执行代理、调度计划(支持三种类型:一次性、固定间隔和标准Cron)、执行内容等。系统支持自然语言配置,会自动将任务持久化到指定目录。运行状态包括下次触发时间、上次执行结果等信息,执行时可选择主会话或隔离会话模式。
2026-02-28 23:30:00
2704
原创 oepnclaw之skills开启以及配置Skills registry (ClawHub)
OpenClaw Skill 是以文件夹为单位的"能力描述 + 执行逻辑"组合包,核心是一个SKILL.md文件,AI 通过阅读它来理解技能。Skill 加载路径由中的workspace配置决定。关键配置在这个workspace字段定义了 OpenClaw 的工作区根目录。OpenClaw 会在工作区根目录下寻找skills/优先级位置说明1工作区技能(团队共享)2用户技能(个人专属)3内置技能系统自带,可被覆盖。
2026-02-15 16:51:11
11938
原创 openclaw架构原理-单进程应用 + 插件式扩展
编辑(相对于 docker-compose.yml 目录)在channels"wecom": {"token": "<你的企业微信 Token>","encodingAESKey": "<你的企业微信 EncodingAESKey>"手动注册插件(关键步骤)这是最容易踩的坑!OpenClaw 的 doctor 会自动尝试在中以通道 ID(wecom)注册插件,但实际的插件 ID 是,导致错误。必须手动在注意的 key 必须是 openclaw-wecom(npm 包名去掉前缀),而不是。
2026-02-15 09:20:54
3248
原创 数据库的三级模式:外模式 、逻辑模式、内模式(三级模式 与 MySQL 的对应关系)
数据库三级模式结构是ANSI/SPARC提出的标准体系,包括外模式(用户视图)、概念模式(全局逻辑结构)和内模式(物理存储)。外模式描述局部数据逻辑结构,概念模式定义全体数据关系,内模式管理物理存储方式。MySQL通过视图、表结构和存储引擎分别实现三级模式,并通过两层映射提供数据独立性。但在实际开发中,VIEW使用较少,因其存在性能、维护和功能限制等问题,现代应用更多通过ORM、Service层等方式替代VIEW功能。三级模式作为理论框架,在实际数据库系统中通常被透明化实现。
2026-02-08 16:27:23
950
原创 macOS 打出来的 tar 包,Linux 常见告警(tar 包里带了 macOS 的扩展属性(xattr))
macOS与Linux系统间tar包兼容性问题 当在macOS上创建tar包时,系统默认会包含扩展属性,导致在Linux系统解压时出现警告。这是因为两个系统对文件属性的处理方式不同。解决方法是在打包时使用COPYFILE_DISABLE环境变量来排除这些扩展属性,确保tar包在不同系统间的兼容性。
2026-02-01 10:17:54
167
原创 Go 语言中的 toolchain 指令-toolchain go1.23.6的作用和目的
Go 1.21引入的toolchain指令为模块系统提供精确版本控制。在go.mod中,"toolchain go1.23.6"明确指定构建所需的Go工具链版本,确保开发环境和CI/CD使用一致版本(go1.23.6),避免兼容性问题。该指令还能自动检查/下载指定版本,优化依赖解析,是现代化Go开发的重要实践。相比仅用"go 1.23.0",toolchain能精确到补丁版本,显著提升项目稳定性和可维护性,成为Go项目标准化的重要组成部分。
2026-01-31 08:20:37
565
原创 MySQL字符集排序规则冲突问题(utf8mb4_unicode_ci和utf8mb4_0900_ai_ci )
MySQL字符集排序规则冲突常见于不同collation表JOIN操作时报错。文章分析了utf8mb4_unicode_ci(基于早期UCA)和utf8mb4_0900_ai_ci(基于UCA 9.0.0)两种排序规则的特点,后者是MySQL 8.0的默认规则。建议新项目优先使用utf8mb4_0900_ai_ci以获得更现代的Unicode支持,老系统可保持utf8mb4_unicode_ci以保证兼容性。生产环境应统一使用数据库默认collation,创建表时需注意是否显式指定排序规则,建议先通过SHO
2026-01-28 10:15:17
1010
原创 Cookie 作用域-解决 www 与非 www 域名的 Cookie 共享问题(Domain 与 SameSite 属性区别和作用机制\ ORY Kratos Cookie 配置实践)
围绕 example.com 与 www.example.com 之间 Cookie 不共享导致的重复登录与第三方回调会话丢失问题,提出两类核心解决方案:一是通过选择主域名并对另一域做 HTTP 301 重定向以统一入口、简化管理并兼顾 SEO;二是通过正确设置 Cookie 的 Domain 与 SameSite 属性来实现所需的跨子域共享与跨站请求发送控制。
2026-01-26 06:30:13
60
原创 Ory kratos、Hydra快速开始(一)-基础(邮箱注册和登录流程)
本文介绍了 Ory Kratos 的基本概念与架构,重点讲解了与 Ory Hydra 的配合方式、Kratos 的服务与设计模式(依赖注入、分层、路由与 Driver 容器)以及基于 Flow 的邮箱注册与验证完整流程(包括表单初始化、密码策略、钩子、异步 Courier 邮件发送与验证码/链接验证)
2026-01-11 21:56:16
212
原创 golang路由与框架选型(对比原生net/http、httprouter、Gin)
摘要:本文对比了Go语言中三种路由实现方案(原生net/http、httprouter和Gin框架)。Go 1.22+的原生net/http新增了方法匹配、路径参数等特性,适合高安全要求场景(如金融系统),具有最小依赖和可控性优势。httprouter基于前缀树实现,路由性能最优;Gin则提供完整开发体验,包含中间件、请求绑定等功能。建议根据场景选择:高性能网关用httprouter,业务系统用Gin,关键安全服务用原生net/http。实际可混合使用,通过微服务拆分兼顾性能与开发效率。
2026-01-11 21:46:27
875
原创 Shell 管道操作的退出码陷阱(command > >(tee logfile.log) 2>&1进程替换解决退出码问题)
本文探讨了Shell管道命令退出码的机制与潜在风险。当执行管道命令时,Shell默认只返回最后一个命令的退出码,这可能导致前序命令失败却被误判为成功。文章通过两个危险场景展示了这种机制的实际危害,并提出了两种解决方案:使用set -o pipefail选项使管道在任何命令失败时返回非零退出码(但兼容性有限),以及更推荐的进程替换方法。进程替换通过重定向输出到子进程的方式,能准确获取主命令的退出状态,避免了传统管道丢失前序命令状态的问题。文章详细对比了两种方法的差异,并推荐在需要精确错误处理时采用进程替换方案
2026-01-05 21:18:12
498
原创 Bash 脚本中的 ((i++)) || true 表达式详解( set -e 表达式陷阱)
摘要: Bash脚本中((current_index++)) || true表达式是为了解决set -e严格模式下的一个常见陷阱。set -e会在命令返回非0退出码时终止脚本,而((expression))的退出码规则特殊:表达式结果为0时返回1(假),非0时返回0(真)。当current_index为0时,((current_index++))因后置自增返回原值0,触发set -e退出。通过|| true强制忽略该操作的退出状态,确保脚本继续执行。建议在纯计算场景使用((i++)) || true,或在条
2026-01-03 17:10:20
925
原创 ClickHouse 大数据量场景下执行 ALTER TABLE UPDATE问题(ClickHouse 里,数据最好“只进不出,只增不改”) | ReplicatedReplacingMergeTr
摘要: ClickHouse执行ALTER TABLE UPDATE在大数据量场景下存在显著风险:1) 资源消耗高,会重写相关数据part,导致I/O、CPU和内存压力骤增;2) 异步执行耗时可能达数小时;3) 影响查询性能且无法回滚。最佳实践包括:优先使用ReplacingMergeTree或CollapsingMergeTree追加数据而非直接修改;必须更新时按分区/批次操作;通过系统表监控mutation进度;高风险操作前备份数据或采用影子表切换方案。核心原则是避免OLTP式行级更新,利用ClickH
2026-01-03 11:06:15
173
原创 2025 年度技术工具使用心得:AI Coding 十年进化史与我的 CodeBuddy 之选
文章回顾了过去十年 AI Coding 从规则驱动工具到具备自主规划与执行能力的 Agent 的演进路径,指出 2025 年在大模型能力跃迁与工具生态爆发的共同推动下,软件开发范式正从“人写代码”转向“人机协作、描述意图+审查迭代”;作者结合自身从多工具并用到聚焦单一主力的选型经历,最终因速度、Go 语言理解、项目级上下文与性价比等因素选择腾讯云 CodeBuddy,并通过补全、代码审查与 Craft 协作模式及效率数据说明其在工程交付中的实际提升。
2025-12-30 22:30:07
1438
2
原创 dockerfile多阶段构建 + UBI 9(在指定的根目录中卸载 setup 包`rpm --root /mnt/rootfs -e --nodeps setup`)
在多阶段构建中,可通过在挂载根目录执行 rpm --root /mnt/rootfs -e --nodeps setup 删除不必要的 setup 文件以减小 UBI9 镜像体积,但该操作风险高且手动仅复制部分文件易漏掉库、符号链接和特殊文件,建议直接复制整个 /mnt/rootfs 或在最小化基础镜像上谨慎测试。
2025-12-20 13:14:46
445
原创 go语言-切片排序之sort.Slice 和 sort.SliceStable 的区别(数据库分页、内存分页场景注意点)
Go语言中sort.Slice和sort.SliceStable的主要区别在于排序稳定性。sort.Slice采用快速排序算法,性能更快但不保证相等元素的原始顺序;而sort.SliceStable使用归并排序,保持相等元素的相对顺序但性能稍慢。在需要分页或多级排序时应使用sort.SliceStable,并配合辅助排序字段确保确定性顺序。数据库排序也存在类似问题,仅靠单字段排序无法保证相同值记录的稳定顺序,必须添加唯一字段作为辅助排序条件才能实现跨请求的稳定分页。
2025-12-20 11:22:15
1138
原创 Mac下ssh终端之iTerm2 (Oh My Zsh + powerlevel10k)
iTerm2 是一款针对 macOS 系统的终端替代软件,作为 iTerm 的继任者,它将终端带入现代化时代,为经常使用终端的用户提供了丰富的增强功能。该软件是免费的开源项目,源代码托管在 Github 上,支持 macOS 10.14 或更新版本,通过众多实用的小功能累积成显著的用户体验提升。
2025-12-14 21:11:29
1773
原创 使用 grpcurl 通过命令行访问 gRPC 服务
grpcurl是一个命令行工具,用于与gRPC服务交互,支持发送请求、查看响应和调试服务。它需要服务器开启反射服务或提供.proto文件才能正常工作。安装方式包括brew、go install或直接下载二进制文件。常见问题包括TLS握手失败(需添加-plaintext参数)和反射API不支持(需提供.proto文件或在服务端启用反射)。生产环境不建议开启反射以避免安全风险,但开发环境推荐启用以提高调试效率。替代方案是建立Proto文件仓库供调试使用。
2025-11-28 07:22:32
1149
原创 什么是gRPC Metadata,使用场景是什么 | 拦截器 与 Metadata
gRPC Metadata是用于在客户端和服务端之间传输额外信息的键值对机制,类似于HTTP头。它主要用于传递非业务逻辑但系统运行必需的数据,如身份验证、全链路追踪、负载均衡和超时控制等场景。Metadata以key-value形式存储,key为字符串,value为字符串数组。在Go中通过context.Context传递,需显式操作metadata包进行读写。最佳实践是将metadata处理封装在拦截器中,实现业务逻辑与横切关注点的解耦。
2025-11-27 23:55:53
826
原创 Docker Desktop 替代方案之OrbStack、podman、Rancher Desktop
Rancher 中文文档:Rancher Desktop 是一款在桌面上提供容器和 Kubernetes 管理的应用。它适用于 Mac(包括 Intel 和 Apple Silicon)、Windows 和 Linux。Rancher desktop是SUSE主导的,开源免费的,稳定成熟的docker desktop的替代方案,相比podman desktop,其提供的操作方式与docker desktop更为接近,学习成本更低。
2025-11-10 09:07:21
3012
原创 生产Python Docker 镜像选择-Slim 版本(python:3.12-slim)
制作 Python Docker 镜像的最佳实践。不建议使用 Alpine 作为 Python 的基础镜像。
2025-11-09 08:04:16
1627
原创 APISIX Authz-Keycloak插件超时问题:lazy_load_paths配置从懒加载到静态权限映射
lazy_load_paths 控制资源是 动态加载 还是 静态配置动态模式灵活但有超时风险;静态模式性能更好、更可靠推荐生产环境使用 静态映射(lazy_load_paths=false),同时在 Keycloak 中维护完整的资源与策略定义。
2025-11-05 09:39:31
165
原创 AI Coding之SWE-bench
可以在找到完整的排行榜!大语言模型(LLM)在软件开发领域展现出了惊人的潜力。为了客观地衡量它们的能力,基准测试变得不可或缺。其中,SWE-bench已成为一个黄金标准,它通过评估模型解决真实世界GitHub问题的能力来进行测试。SWE-bench(Software Engineering Benchmark)是一个专门用于评估大型语言模型或 AI 编码智能体在真实软件工程任务上能力的基准测试集合。SWE-bench 是为了衡量 AI 在“真实软件工程”场景下的端到端能力而设计的 benchmark。
2025-11-01 10:29:25
3453
原创 FULL OUTER JOIN 和 LEFT JOIN 的区别 | 使用 UNION ALL 替代 FULL OUTER JOIN 有什么好处
本文介绍了四种SQL连接类型:INNER JOIN(只返回两表匹配记录)、LEFT JOIN(返回左表全部+右表匹配)、RIGHT JOIN(返回右表全部+左表匹配)和FULL OUTER JOIN(返回两表全部记录)。通过手动编码和AI生成数据两个表的示例演示了不同连接的效果,重点说明了LEFT JOIN和FULL OUTER JOIN的区别。特别指出FULL OUTER JOIN中COALESCE函数可能导致时间信息缺失的问题,并提出了使用日期维度表+LEFT JOIN的解决方案。
2025-10-30 08:57:50
364
原创 何时在 ClickHouse 中使用 ARRAY JOIN
ARRAY JOIN 子句. 对于包含数组列的表,将初始列的每个单独数组元素生成一行的新表是一个常见操作,同时其他列的值会被重复。
2025-10-25 15:37:44
206
1
原创 什么是MCP(python包和项目管理器uv)|常用mcp server整理(持续更新)
Claude 本身是个语言模型,不具备实际能力去操作网页、读代码、调接口。MCP 就像给它配了“远程遥控器”。它的核心作用是:把本地工具(如爬虫、Jupyter、API 接口、GitHub Repo)包装成“AI 能识别和调用”的服务。
2025-10-22 22:12:28
1276
原创 clickhouse副本只有一个节点有数据原因
ClickHouse单分片三副本集群数据同步问题排查 当ClickHouse集群出现单分片三副本中仅一个节点有数据时,主要排查方向包括: 确认使用ReplicatedMergeTree引擎(只有该引擎支持副本) 检查各副本表结构一致性 排查数据导入时机(普通表转复制表时数据不会自动同步) 通过system.replicas表检查副本状态、队列情况 验证ZooKeeper连接是否正常 关键特征:ReplicatedMergeTree采用多主架构,依赖ZooKeeper实现写入同步,但查询时不依赖;数据以Blo
2025-10-22 09:37:24
339
原创 python库 `clickhouse-driver` 使用过程报错:clickhouse-cityhash is required to use compression
是一个 Python 包(绑定库),提供 CityHash 哈希函数的实现,用于 ClickHouse 客户端或驱动在启用压缩/散列相关功能时计算哈希值或校验。错误提示的意思是你的程序需要这个包来支持压缩功能,但当前环境中没有安装它。是一个 Python 包(绑定库),提供 CityHash 哈希函数的实现,用于 ClickHouse 客户端或驱动在启用压缩/散列相关功能时计算哈希值或校验。CityHash 是 Google 提供的一组高性能非加密哈希函数,适用于短/长字符串快速哈希计算。
2025-10-22 09:14:49
322
原创 什么是 SRE(站点可靠性工程)?
SRE(站点可靠性工程)是谷歌提出的用软件工程方法解决运维问题的岗位。SRE团队负责系统部署、监控、应急响应等工作,强调自动化处理和平衡开发与运维关系。与传统运维不同,SRE通过开发自动化工具替代人工操作,实质是用工程化思维解决运维问题。SRE被认为是DevOps理念的具体实践,实现了研发和运维的有机融合。其核心在于不是追求100%可靠性,而是建立完善的故障应对机制。
2025-10-16 06:41:32
987
原创 AI时代BaaS | 开源的后端即服务(BaaS)平台Supaba
在AI应用爆发式增长的今天,BaaS(后端即服务)已成为开发者构建智能应用的核心基础设施。
2025-10-14 23:26:56
1580
2
原创 开源 ETL(Extract,Transform,Load)工具之Apache Hop
Apache Hop 是一个开源的数据编排、数据工程和数据集成平台,它源自流行的ETL 工具Kettle(也称作Pentaho Data Integration,PDI),并由Kettle 的原作者主导开发。
2025-10-14 03:13:14
2425
2
原创 什么是 Apache Parquet?ClickHouse 与 Parquet 的交互方式/安装 clickhouse-client
Parquet 是一种开源的列式存储格式,专为大数据处理和分析任务设计。它是由Apache软件基金会开发的,并且是Hadoop生态系统的一部分。自2013年首次引入以来,Apache Parquet作为一种免费和开放源代码的存储格式被广泛采用。
2025-10-09 21:28:40
254
原创 apache hop 不能处理clickhouse 数组格式怎么办?
Hop 只负责生成批次参数和调度,实际迁移用 ClickHouse 原生 SQL。既然 Hop 的 JDBC 无法处理 Array(String),那就绕过它!总结:主要区别在于数据是否经过 ETL 工具中转以及对复杂类型的处理能力。🎯 方案 :字段改为 String,存储 JSON(ETL 友好)✅ 经常使用 ETL 工具(Hop, Kettle, NiFi)Hop 在这个场景下无法使用,这是 JDBC 驱动的限制!✅ 性能最优(ClickHouse 内部处理)步骤 3:配置 “执行 SQL 脚本”
2025-10-06 19:20:26
306
原创 golang如何四舍五入到2位小数
在Go语言中实现四舍五入到2位小数有三种主要方法:1) 使用fmt.Sprintf仅用于显示;2) 使用math.Round(v*100)/100获取float64结果,这是性能最优且最常用的方法;3) 对于金融等高精度场景,推荐使用shopspring/decimal等十进制库。其中math.Round方案具有性能好、精度可靠、代码简洁、社区认可度高和可扩展性强等优点,是常规场景下的最佳选择。
2025-09-26 22:28:49
593
p2p 文件传输 socket java sqlite 数据库
2013-03-15
zhcon-0.2.5.tar.gz和zhcon-0.2.5-to-0.2.6.diff.gz
2013-01-09
LuaForWindows_v5.1.4-46(包含vcredist-x86).zip
2019-09-24
redis-desktop-manager-2019.3.0.0.zip
2019-11-20
MASM 6.11 汇编语言编程调试工具,非常好用
2011-10-19
小区物业管理系统
2013-05-06
2018年信息系统项目管理师考试葵花宝典之【金色考点汇编暨案例论文解析】733带书签
2018-08-13
RealVNC.Enterprise.v5.0.2
2013-08-10
系统架构设计师考试历年试题分析与解答
2017-01-13
web scraping with python
2016-03-02
eyes_protection_theme_and_big_front.zip
2019-10-24
HttpCat 是一个基于 HTTP 的文件传输服务,旨在提供简单、高效、稳定的文件上传和下载功能v0.1.5版本
2024-04-08
文件传输服务HttpCat
2024-02-19
如何查看自己SVN的本地帐号密码.zip
2022-09-08
Rust学习书籍整理2022-07-06.zip
2022-07-08
DevOps 初学者指南beginners-guide-devops
2022-04-11
windows驱动安装卸载的实用小工具-InstDrv.zip
2022-01-17
pkg-config_0.23-2_win64.zip
2020-05-30
jdk-8u241-linux-x64.zip
2020-04-14
GraphicsMagick-1.3.33.zip
2019-12-24
Kiwi-Syslog-Server.zip
2021-11-02
等保主机安全基线合规-配置指导windows系统.zip
2021-08-04
cmake-3.16.0含安装教程.zip
2020-05-14
Brave浏览器BraveBrowserSetup.exe
2021-12-08
RedisDesktopManager_V2020.1_XiTongZhijIa.zip
2021-11-21
TrueCrypt.zip
2021-09-26
Redis-Win-x64-3.2.100.zip
2020-03-18
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅