我与 Android 的第二次恋爱
作者意外从Java Web转向Android开发,在电力公司零基础起步,与后端搭档“炟哥”边踩坑边成长,用三个月做出可用但界面粗糙的demo,由此正式投入安卓开发两年。因技术热情被业界大佬注意,接下了基于ArcGIS的地图类私活,在高额酬劳激励下硬啃SDK与英文文档,最终独立完成项目并跳槽至GIS公司,深耕地理信息应用一年半。随后因成长趋缓而主动转型为容器化运维工程师,学习Docker、Kubernetes等至今。2025年,他重新以纯粹兴趣拥抱Android,不再追求薪资与证明,而是回归写代码的快乐,称其为“第二次恋爱”。
- 2025-05-22
- 85
- 1
- 2
- 39.5℃
关于移动端WebView加载白屏的异常问题
飞书内嵌WebView打开AI对话页面时白屏,而电脑浏览器正常。排查发现Nginx日志中User-Agent含“wv”字段,确认是Android WebView环境。通过Android Studio自建WebView应用并开启远程调试,连接Chrome的chrome://inspect后定位到原因:HTTPS页面中混有HTTP资源(图片、JS、CSS),被WebView的混合内容安全策略拦截,导致页面空白。由于服务部署在Kubernetes并经Ingress暴露,最终在Ingress层对/onlinePreviewNew路径配置sub_filter,将响应中的http://统一替换为https://,从而保证所有资源走HTTPS,成功解决白屏问题。该方法可快速恢复业务,但临时性替换需开发人员后续从代码层修复。
- 2025-05-20
- 358
- 0
- 0
- 59.8℃
关于 Ceph “bluefs enospc” 报错异常
本次问题源于 Ceph 存储空间达到预警阈值后触发保护机制,禁止继续写入。排查发现,同事在使用 KubeSphere 创建有状态服务时,申请了数百 GB 的大容量存储卷,但实际数据仅占用几十 MB。与 VMware 不同,Ceph 按申请容量直接划拨空间并扣减可用百分比,即使未使用也会占用存储。因此,实际数据量虽小,却导致存储空间显示被占满,最终触发 Ceph 的写入保护。建议后续合理规划存储卷容量,避免过度申请。
- 2025-05-15
- 138
- 0
- 0
- 37.8℃
转生成为GIS工程师
作者在离开GIS行业近两年后,决定以全新心态回归这一技术领域。他感悟到,日常虽已用不上,但内心始终挂念,认为只要对知识和技保持认真与喜欢的态度,未来终会获得回馈。文章同时反思了因恐惧而放弃目标的现象,指出每一次放弃并非放弃梦想本身,而是放弃了那个能逐步靠近梦想的自己。核心鼓励读者直面恐惧、坚持所爱,相信持续投入的价值。
- 2025-04-20
- 162
- 0
- 0
- 40.2℃
关于springboot连接nacos出现'inetIPv6Utils': Error creating bean with name '的异常问题
系统升级后新镜像在客户环境无法连接Nacos,本地及KubeSphere测试却正常。排查发现Nacos配置无误,后怀疑其集群端口问题。Nacos官方建议开启8848、9848、9849三个端口,经telnet测试仅8848连通。通过docker inspect确认集群使用host网络,排除端口映射问题,最终定位为防火墙未放行9848、9849端口。开启后服务恢复正常。经验:Nacos部署异常时,应优先检查官方要求的三个端口是否开放,并验证防火墙规则,避免因端口不完整导致连接失败。
- 2025-04-17
- 349
- 0
- 0
- 58.9℃
关于arm平台druid与springboot的sql超时异常
本地开发与服务器连接同一数据库,Druid监控到的超时SQL用Navicat执行速度正常,排除索引问题。服务经Jenkins发布,使用`docker run -p 8080:8080`端口映射时出现异常,切换为`--network=host`主机模式后问题消失。进一步排查发现根因是宿主机物理网卡MTU为1450,而Docker默认bridge网络的veth MTU为1500,二者不一致导致较大TCP包在NAT或bridge转发时被分片或丢弃,表现为能ping通但curl卡死、HTTP请求无响应。Docker不会自动感知宿主机实际MTU,需手动指定或在host网络下运行。
- 2025-04-17
- 186
- 0
- 0
- 42.6℃
关于springboot使用openfeign穿透content-type的异常问题
数字化平台升级后,老业务系统通过OpenFeign调用基础组件时报错:Content-Type 'application/x-www-form-urlencoded;charset=UTF-8' is not supported。排查发现,原接口使用@RequestParam而非@RequestBody,导致请求Content-Type默认为表单格式,该错误头信息被Feign传递至新组件,引发兼容性问题。解决方式:编写工具类,利用RequestContextHolder和HttpServletRequestWrapper在Feign调用前将请求头Content-Type修改为application/json; charset=utf-8,再执行后续业务代码。该方法适用于Feign调用较少的场景,可快速修复升级后的接口不兼容问题。
- 2025-04-09
- 230
- 0
- 0
- 47.0℃
使用 K8S 或 Docker 快速部署 xxljob
介绍XXL-JOB调度中心在Docker与Kubernetes上的部署实践。内容包括:拉取2.3.1镜像并初始化SQL;通过挂载配置文件运行容器,配置MySQL、邮件及访问令牌;后端示例项目需修改admin地址并创建执行器与任务。给出KubeSphere DevOps流水线实现自动编译、镜像推送及部署。提供从2.1.2升级到2.3.1的SQL变更语句。K8s部署涉及ConfigMap、NodePort Service、Deployment及Ingress。常见异常:执行器注册失败并返回HTML,多为误用server.context-path,应使用server.servlet.context-path。最后提供arm64镜像的构建方法及成品镜像。
- 2025-03-21
- 1154
- 0
- 2
- 143.4℃
kubesphere自定义podTemplate支持jdk21+maven3.9.x
本文基于 KubeSphere 官方 builder-base 构建自定义 DevOps 构建镜像,核心是安装 Temurin JDK 21 与 Maven 3.9.9。Dockerfile 步骤包括下载 JDK 包、解压至 /opt、设置 JAVA_HOME 与 PATH,再安装 Maven 并验证版本。在 KubeSphere DevOps 中,可通过 PodTemplate 指定该镜像,并利用 hostPath 挂载缓存目录 /root/.m2;若要连接私有 Nexus,需在 kubesphere-devops-worker 命名空间的 ks-devops-agent ConfigMap 中配置 MavenSetting,并将其挂载到对应 Maven 版本的 settings.xml 路径,注意路径必须与版本匹配。文章还记录了常见异常(如删除 agent Pod 失败)。最终制品为镜像 tanqidi/builder-maven:jdk21-maven3.9.9,帮助用户灵活定制构建环境并集成私有仓库。
- 2025-03-07
- 494
- 0
- 1
- 75.4℃
开发与加速测试
本文为开发者提供了一份开发环境配置速查指南,涵盖多项实用工具与命令:nvm 用于快速切换 Node.js 版本;Git 可配置代理解决访问 GitHub 缓慢的问题,并支持仅代理 GitHub 域名的精细化设置;提供可直接保存为 bat 脚本的 Windows 端口占用清理命令;Python 可通过 pyenv-win 完成版本切换;Java 环境则借助 jvms 实现下载与动态切换。此外,文章还针对“有线内网+无线外网”双网络场景,详细说明了通过配置静态路由方式,让指定 IP 流量走 Wi‑Fi 网关、其余流量走内网,实现内外网互不干扰的访问;并附加一个小技巧:取消 IDE 的富文本复制功能,避免向 Halo 等平台粘贴代码时携带多余格式。整体内容实用,以操作命令为主,适合开发运维参考。
- 2025-02-28
- 78
- 0
- 0
- 31.8℃