#82 异常流量监控

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. 默认给所有客户开启最近 1 小时和最近 24 小时的限制。
  2. 速率控制以小时为单位([1, 24]

定时检查

  1. 定时执行
 5 10 15 20 25 30
35 40 45 50 55  0
  1. 查询过去 1 天有请求的客户清单,根据系统参数(可能还有业务上其他条件)跳过忽略检查客户

  2. 逐个客户查询最近 5 分钟内的请求量,并将 5 分钟数据统计到小时内
    然后逐个时间区间配置,判断总请求量是否超出预设值

end_min = (minute // 5) * 5
start_min = end_minute - 5
  1. 如果流量异常,按照指定策略触发相关事件

客户处理

PS:这个机制的目的是处理异常流量,如果正常的请求量上来了应该调整客户配置。

  1. 警告页面给出客户过去的请求情况,标出告警时间段的数据
  2. 让客户选择处理方案:
  3. 忽略并继续
  4. 清空暂停队列并继续
    可以查看下载受影响的请求信息
  5. 暂不处理
  6. 往后 24 小时之内,下一次触发告警的数量,提供一个默认值(当前请求量的 1.5 倍)
    另一种思路:如果客户选择继续请求,不用填下一次告警的数量,后面计算的时候直接跳过过去一段时间(比如 6 小时)的请求量。

#81 信创是什么

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

  • 数据库

  • 武汉达梦

  • 其他

  • 东方通

#79 开源编程字体

2023-11-14

已经有的开源字体:

厂商 字体 协议 网址
Adobe Source Code Pro OFL https://adobe-fonts.github.io/source-code-pro/ / Repo
Google Noto OFL https://fonts.google.com/noto / Repo
GitHub Monaspace OFL https://monaspace.githubnext.com/ / Repo
JetBrain Mono OFL https://www.jetbrains.com/zh-cn/lp/mono/ / Repo

Adobe 的 Source Code Pro 补上 CJK 文字就成为了我们熟悉的思源黑体系列。

Google Noto 其实就是思源黑体的基础上,再补充其他语言,试图给所有语言文字一个统一的展示效果。
Noto 这个名字来自 No More Tofu。

#77 奔 35 程序员的职业生涯思考

2023-10-22

周一被问到这个问题,我真的是一身汗,因为我发现自己真的很长一段时间没有思考过这个问题了。
每天按照固定的步骤处理各种问题,时间久了,工作就成为了一种惯性。
或许很多人都是这样,但我认为这不是一种积极的,上进的人生态度。

生活中充满了变化,我们应该能够适应不断变化的生活,而不是在稳定中消磨掉自己的斗志。
运气好的话,一直稳定下去,运气不好,今后要摔大跟头的。

我刚开始工作时,经理告诉我们,大家在这里相聚,应该要有一点基础的认知,大家都不是杰出人才,只有资历深浅而已,没有谁高人一等。
我认为说的非常实际,现实就是这样,大多数人都是普通人。我也是一个一般水平的开发者。
这么说并不是要打击个人的积极性,这完全不耽误我们大家在工作学习中力争上游。只是说,我们要清楚认知到我们力争的这个“上游”在社会上的一个真实位置。
如果我们没有这个认知,可能对职业生涯的规划产生错误的影响。

好,现在开始说说职业生涯规划的事情。

TODO: 未完待续...

#75 什么是全栈?

2023-01-15

关于全栈开发者,我之前的理解是,能做前端、后端、移动端的开发,或许再包括小程序。

方向比较多,如果说要精通各个方向的话,实在是有点费力,要么是天才,要么是技术狂。
所以比如说着重后端的的话,再学一下 React,能对 React 开源项目二次开发,再用 RN 做移动端,就可以了。

今天,看到的这篇文章却提出来更多的要求:The Full Stack

作者举了一个例子,认为掌握以下三项远远谈不上全栈:

  • Ruby,Rails,Postgres,React Native,iOS,Android
  • Docker,Kubernetes
  • 谷歌云计算

上面只是技术,还应该包括:

  1. 和人打交道:

  2. 基础设施团队

  3. 管理人员
  4. 产品人员
  5. 业务人员
  6. 客户

  7. 业务

  8. 产品设计
  9. 合规

#74 服务丧尸?为什么

2022-10-31

发现一个问题,暂时没有任何思路:

一个线上执行了 66 天的服务,突然在前天凌晨 1:30 没有日志输出了,从外网连接不上,内网可以连上。

等后续有了进展再更新。