开发者 软件设计
2023-12-09
突然来了大量客户请求,我们无法判断这些请求是正常的,还是客户被攻击所致。为了避免产生严重客损,我们需要识别到这些突然出现的流量高峰,并进行通知以及执行一些处理措施。
客户配置
比如:
request_limit = {
rate: {
// 客户配置
3600: 1000, // 指定 API 1 小时之内的请求量上限
86400: 8000, // 指定 API 1 天之内的请求量上限
},
rate_computed: {
// 根据之前的请求情况,结合客户配置计算出来的值(不小于客户配置)
3600: 1000,
86400: 8000,
},
strategy: {
times_to_notify: 1, // 连续触发几次之后通知
times_to_suspend: 3, // 连续触发几次之后暂停
times_to_intercept: 12, // 连续触发几次之后拦截请求
},
};
- 默认给所有客户开启最近 1 小时和最近 24 小时的限制。
- 速率控制以小时为单位(
[1, 24]
)
定时检查
- 定时执行
5 10 15 20 25 30
35 40 45 50 55 0
-
查询过去 1 天有请求的客户清单,根据系统参数(可能还有业务上其他条件)跳过忽略检查客户
-
逐个客户查询最近 5 分钟内的请求量,并将 5 分钟数据统计到小时内
然后逐个时间区间配置,判断总请求量是否超出预设值
end_min = (minute // 5) * 5
start_min = end_minute - 5
- 如果流量异常,按照指定策略触发相关事件
客户处理
PS:这个机制的目的是处理异常流量,如果正常的请求量上来了应该调整客户配置。
- 警告页面给出客户过去的请求情况,标出告警时间段的数据
- 让客户选择处理方案:
- 忽略并继续
- 清空暂停队列并继续
可以查看下载受影响的请求信息
- 暂不处理
- 往后 24 小时之内,下一次触发告警的数量,提供一个默认值(当前请求量的 1.5 倍)
另一种思路:如果客户选择继续请求,不用填下一次告警的数量,后面计算的时候直接跳过过去一段时间(比如 6 小时)的请求量。
Python 字符编码
2023-12-08
老项目中有时可以看到报错:unichr() arg not in range(0x10000) (narrow Python build)
经过一番调研之后,发现是和 Python 内部 Unicode 编码有关。
个人
2023-12-07
根据教育局的文件整理出来的一个高中清单。
个人
2023-12-04

早上接到辖区派出所电话,说我的这个博客涉黄。
我这个可是个静态博客,都是写技术文章和个人想法,可以说是干干净净的,也没有评论,怎么就和黄色沾边了呢?
而且也没有几个人访问。根据百度统计,平均每天大概 60 个访问。
按照民警要求,本周三上午我去派出所说明情况。再看吧!
我要民警提供相关信息,方便我排查处理问题,民警说这是机密信息,不能给我看。
怀疑是外链的问题。外链网站关闭,域名过期被别人接手做坏事。
我写了个脚本爬出我博客中引用的外链,解析出 800 多域名,逐个访问,获取 Title,也没有发现什么黄色内容。
还是等周三看看怎么回事吧!
更新:
- 12/06 去了派出所做了笔录,说明情况,说明以后如何整改,花了一个半小时,最后给我一个警告处罚。
在派出所了解到(民警拿他的手机给我看了一下网警的通知),有一个页面上有一个连接打开是黄色网站。
根据这些信息,我直接在手机上找到 《免费的编程书籍》 这个页面,打开相关链接(深入理解 PHP 内核),果然变成了黄色网站。
- 12/07 更新页面,去掉了这个链接。
图像处理
2023-12-03
使用 imagemagick 来做图片处理:
for file in *.jpg *.png; do
exif=$(identify -format "%[EXIF:*]" "$file")
if [ -n "$exif" ]; then
echo "Handling $file"
echo $exif
mogrify -strip "$file"
else
# echo "Ignore $file"
:
fi
done
Exif 相关信息在我之前的文章《Linux 工具箱: exiftool》中有提到。
Clang Golang
2023-12-01
看到一片技术文章《改了一行代码,数组遍历耗时从 10.3 秒降到了 0.5 秒!》,试验了一下。
开发者
2023-11-30
https://www.cnxclm.com/read-736-1.html
信创,全名:信息技术应用创新,是政府的一个计划,目的是推广国产 IT 技术应用,最终实现 IT 领域自主可控。
这个计划是什么时候开始的我不清楚,确实是自从美国开始对中国展开贸易战之后,这个词才广为人知,也就是近几年的事情。
目前主要是党政军相关项目国产化,以后可能会推广到国企与事业单位。
信创项目的规模不断扩大,自 2019 年起大幅加速。
从 2011 年到 2018 年,信创项目的政府合同规模达到 1.99 亿人民币(合 2852 万美元);
2020 年跃升至 279.2 亿人民币(合 40 亿美元),
2021 年初至 2022 年 11 月为 184.5 亿人民币(合 26.4 亿美元)。
预计 2025 年,这一领域估值将达 2 万亿元(1250 亿美元)。
内容
- 基础设施:CPU、芯片、服务器、交换机、路由器
- 基础软件:操作系统、数据库、大数据、中间件、云平台(如 IaaS、PaaS 和低代码平台)
- 应用软件:办公软件、通用软件、行业软件等
- 信息安全
信创工委会
https://itaic.org.cn/
2016 年,信创工委会(信息技术应用创新工作委员会)成立。
包括很多知名国产厂商都在信创委员会中,比如:
- 龙芯(CPU)
- 浪潮(服务器)
- 深信服
- 华为
- 麒麟软件(操作系统)
- WPS
- 奇虎 360
- 奇安信(360 企业安全)
具体哪些产品符合信创要求,似乎也没有看到一个公开的清单。
项目
-
操作系统
-
麒麟 Kylin
- 统信 UOS
- 红旗
-
华为 EularOS
-
数据库
-
武汉达梦
-
其他
-
东方通
开发者 Java
2023-11-28
根据《The most copied StackOverflow snippet of all time is flawed!》,StackOverflow 上被复制最多的一段代码来自问题 How can I convert byte size into a human-readable format in Java?,也就是将字节数转换成可读格式,比如 1024 -> 1KB 这样。
计算机网络 WiFi
2023-11-27
标准 |
名称 |
年份 |
频率(GHz) |
理论最大速率 |
备注 |
IEEE 802.11 |
Wi-Fi 0 |
1997 |
2.4 |
2 Mbps |
|
IEEE 802.11b |
Wi-Fi 1 |
1999 |
2.4 |
11 Mbps |
|
IEEE 802.11a |
Wi-Fi 2 |
1999 |
5 |
54 Mbps |
正交频分复用(OFDM) |
IEEE 802.11g |
Wi-Fi 3 |
2003 |
2.4 |
54 Mbps |
正交频分复用(OFDM),兼容 802.11b |
IEEE 802.11i 草案 |
WPA |
2003 |
-- |
-- |
|
IEEE 802.11i-2004 |
WPA 2 |
2004 |
-- |
-- |
|
IEEE 802.11n |
Wi-Fi 4 |
2009 |
2.4/5 |
600 Mbps |
最多 4 个 MIMO |
IEEE 802.11ac |
Wi-Fi 5 |
2014 |
5 |
|
最多 8 个 MIMO;下行 MU-MIMO (2016 Wave2) |
IEEE 802.11i-2018 |
WPA 3 |
2018 |
-- |
-- |
|
IEEE 802.11ax |
Wi-Fi 6 |
2019 |
2.4/5 |
9.6 Gbps |
上下行 MU-MIMO |
|
Wi‑Fi 6E |
2020 |
6 |
|
|
IEEE 802.11be |
Wi-Fi 7 |
2024 |
2.4/5/6 |
23 Gbps |
|
- 802.11a 其实早于 802.11b 提出,只是因为一些非技术原因,推广滞后
- 2000 年,Wi-Fi 这个词被提出,无线以太网兼容性联盟(WECA)更名为 Wi-Fi 联盟(Wi-Fi Alliance,缩写 WFA)
- Wi-Fi 一词,国内通常读作
歪fai
,有一些人引经据典提出过不同看法引发争议
- Wi-Fi 0、1、2、3 不是官方认定的名称
- WEP:有线等效加密(Wired Equivalent Privacy),又称无线加密协议(Wireless Encryption Protocol)
- WPA:Wi-Fi Protected Access (Wi-Fi 访问保护)
现状
市面上大部分路由器都是支持 Wi-Fi 1 - 5,常常可以在广告上看到 IEEE 802.11a/b/g/n/ac 字样。
旗舰型,贵一点的(至少 300+),支持 Wi-Fi 6。
我没有做过这方面研究和对比,只能说理论上:
- Wi-Fi 6 速率上限有了提升,网络质量也有优化,同时能耗降低(TWT),能够同时支持更多终端连接(OFDMA),同时支持更多并发数据传输(MU-MIMO)。
- Wi-Fi 6E 引入了 6GHz 频段,能支持更高的速度和更低的延迟。
目前我家的路由器,手机,其他设备大多还不支持 Wi-Fi 6。
我家的有线网络用的 5 类线,所以我家理论上最高网速也就 100Mbps(12MB/s)。
Wi-Fi 7
- 支持最大 320MHz 带宽(Wi-Fi 6 是 160MHz)
新的带宽模式:连续 240MHz、非连续 160+80MHz、连续 320 MHz、非连续 160+160MHz
主要作用是提升 QoS(减少延迟,降低丢包率)
- 支持 Multi-RU 机制
- 引入更高阶的 4096-QAM 调制技术(Wi-Fi 6 是 1024-QAM)
- 引入 Multi-Link 多链路机制
- 支持多 AP 间的协同调度
网络漫游问题
我不太懂。
场景应该是一些工业和商业场景。家用的话,可能只有土豪的游戏设备(VR 游戏?)才能用得上,或者发烧友自己搭建的家庭网络设施。
想必和 Wi-Fi 6 / 5G 一样,对绝大多数普通人来说,只是一个新的营销噱头。
参考资料与拓展阅读
Wi-Fi(发音: /ˈwaɪfaɪ/),又称“无线网络”,是 Wi-Fi 联盟的商标,一个基于 IEEE 802.11 标准的无线局域网技术。“Wi-Fi”常写作“WiFi”或“Wifi”,但是这些写法并没有被 Wi-Fi 联盟认可。
1999 年,几家富有远见的公司联合起来组成了一个全球性非营利性协会——无线以太网兼容性联盟(Wireless Ethernet Compatibility Alliance, WECA),其目标是使用一种新的无线网络技术,无论品牌如何,都能带来最佳的用户体验。在 2000 年,该小组采用术语“Wi-Fi”作为其技术工作的专有名称,并宣布了正式名称:Wi-Fi Alliance。
第七代 WiFi 无线网络,速度可高达 30Gbps,是 WiFi 6 最高 9.6Gbps 速率的三倍之多。相比于 Wi-Fi 6,WiFi 7 将引入 CMU-MIMO 技术最多可支持 16 条数据流,8 车道变 16 车道,妥妥的星际高速公路,其次 WiFi 7 除传统的 2.4GHz 和 5GHz 两个频段,还将新增支持 6 GHz 频段,并且三个频段能同时工作。
2021 年 12 月,联发科宣布 2022 年初将推出 WiFi 7 网络,此前数据显示其网速是 Wi-Fi 6 的 3 倍多。在 2022 年世界移动通信大会(MWC 2022)上,中兴推出 WiFi 7 标准的产品。
Golang 配置文件
2023-11-26
Golang Configuration tool that support YAML, JSON, TOML, Shell Environment (Supports Go 1.10+)