Docker 常识查漏补缺

Docker是一种轻量级的虚拟化技术,同时是一个开源的应用容器运行环境搭建平台。其解决了环境差异、依赖关系管理和部署一致性等问题,已经成为极为流行的技术。云原生技术的兴起,进一步强调了它的重要性。笔者没有系统的学习过Docker,但日常却完全离不开Docker。在近期的几个项目中,发现了自己在这方面的诸多薄弱点,故回顾如下。重点介绍了PID和Namespace的概念及其在Docker中的应用,进一步分析了Cgroups的作用,以及如何在宿主机的htop中排除Docker容器进程。接着,讨论了Docker的网络代理问题,包括Docker pull、容器内代理和构建时的代理配置等问题。
阅读更多

记一次Python线程安全问题的排查

本文记录了笔者在使用Python Celery框架实现ERP自动化流程时,遇到的线程安全问题及其排查过程。Celery框架作为一个分布式任务队列,支持异步操作和定时任务,但在多线程环境下存在全局变量共享问题。某次客户反馈订单ID标注错乱,经过排查,发现是多个线程共享全局变量导致的冲突。在Python中,全局变量存储在特殊的全局命名空间中,多个线程可以访问和修改这些变量,从而引发线程安全问题。本文回顾了问题的定位过程,并总结了在多线程编程中避免全局变量共享的最佳实践。
阅读更多