摘要: 背景 之前在一次不规范HTTP请求引发的nginx响应400问题分析与解决 中写过客户端query参数未urlencode导致的400问题,当时的结论是: 对于query参数带空格的请求,由于其不符合HTTP规范,golang的net/http库无法识别会直接报错400,而nginx和使用uwsgi 阅读全文
posted @ 2022-11-30 00:16 及时 阅读(1092) 评论(2) 推荐(4) 编辑
摘要: 背景 最近有一个需求需要自定义一个多继承abc.ABC与django.contrib.admin.ModelAdmin两个父类的抽象子类,方便不同模块复用大部分代码,同时强制必须实现所有抽象方法,没想按想当然的写法实现多继承时,居然报错metaclass conflict: In [1]: impo 阅读全文
posted @ 2022-10-29 23:37 及时 阅读(175) 评论(0) 推荐(0) 编辑
摘要: 背景 最近尝试了解Django中ORM实现的原理,发现其用到了metaclass(元类)这一技术,进一步又涉及到Python class中有两个特殊内置方法__init__与__new__,决定先尝试探究一番两者的具体作用与区别。 PS: 本文中涉及的类均为Python3中默认的新式类,对应Pyth 阅读全文
posted @ 2022-09-25 23:15 及时 阅读(413) 评论(0) 推荐(1) 编辑
摘要: 背景 近期接触容器技术时,经常看到各类比较容器与虚拟机区别的文章中会提到:容器是共享宿主机的内核,而虚拟机则是拥有自己独立的内核,所以不可能在Linux上用容器运行windows,但是用虚拟机则可以。 乍看下去,觉得Linux上无法运行windows是很自然的结论,然后突然升起一个疑问:Linux上 阅读全文
posted @ 2022-08-29 00:39 及时 阅读(562) 评论(0) 推荐(1) 编辑
摘要: 背景 进入6月后,随着一个主要功能版本api的上线,服务端的QPS翻了一倍,平时服务器的CPU使用稳定在30%上下,高峰期则在60%上下,但是偶尔会有单台机器出现持续数分钟突然飙到90%以上,导致大量api响应缓慢超过客户端等待时间,触发其主动断开连接产生大量nginx499。 问题分析与解决 问题 阅读全文
posted @ 2022-07-31 15:15 及时 阅读(3485) 评论(2) 推荐(7) 编辑
摘要: 背景概述 最近计划着重分析一下线上各api的HTTP响应耗时情况,检查是否有接口平均耗时、99分位耗时等相关指标过大的情况,了解到nginx统计请求耗时有四个指标:request_time、upstream_response_time、upstream_connect_time与upstream_h 阅读全文
posted @ 2022-06-29 00:25 及时 阅读(574) 评论(0) 推荐(0) 编辑
摘要: 背景 最近偶然听了几堂极客时间的云原生免费公开课程,首次接触到了Linux namespace技术,并了解到这正是现在风头正劲的容器技术基石,引起了自己探究一二的兴趣,结合课程+网络搜索+实践操作,也算有了一些初步的了解,这里记录、总结一些学习过程。 Linux namespace简介 namesp 阅读全文
posted @ 2022-05-30 08:55 及时 阅读(608) 评论(1) 推荐(1) 编辑
摘要: 背景 最近分析数据偶然发现nginx log中有一批用户所有的HTTP POST log上报请求均返回400,没有任何200成功记录,由于只占整体请求的不到0.5%,所以之前也一直没有触发监控报警,而且很奇怪的是只对于log上报的POST接口会存在这种特定用户全部400的情况,而对于其他接口无论PO 阅读全文
posted @ 2022-04-27 00:57 及时 阅读(2253) 评论(0) 推荐(2) 编辑
摘要: 问题背景 最近接入微信支付,微信官方并没有提供Python版的服务端SDK,因而只能根据文档手动实现一版,这里记录一下微信支付的整体流程、踩坑过程与最终具体实现。 微信支付APP下单流程 根据微信官方文档: https://pay.weixin.qq.com/wiki/doc/apiv3/open/ 阅读全文
posted @ 2022-03-31 00:23 及时 阅读(1349) 评论(0) 推荐(0) 编辑
摘要: 问题背景 最近用explain命令分析查询sql执行计划,时而能看到Extra中显示为"Using index"或者"Using where; Using Index",对这两者之间的明确区别产生了一些疑惑,于是通过网上搜索、自行实验探究了一番其具体区别。 测试数据准备 以下表作为测试表进行sql分 阅读全文
posted @ 2022-02-28 22:26 及时 阅读(803) 评论(0) 推荐(0) 编辑