| 字数
249
系统配置 Q1:我的MacOS系统语言是英文,怎么把微信单独切换成中文? A:找到了一个一劳永逸的方法,以后什么app都可以用这个方法了。在 Terminal 运行下面的命令: 1 defaults write com.tencent.xinWeChat AppleLanguages '("zh-CN")' 如果不清楚配置名,可以试试TAB补全。 希望可以帮到其他人。 还原默认配置 1 defaults delete com.tencent.xinWeChat AppleLanguages 参考链接……
阅读全文
| 字数
555
生活的忙碌可以分成七个层次。 大家可以对照一下,自己属于哪个层次? 第 1 级:一点不忙。 时间很自由,怎么安排都可以,没有一定要去完成的事项,周末想睡多久就多久。 第 2 级:有一些小事。 你记得有一些事要做。这些事情是合理的事项,没有截止期,但是你知道这些事迟早要做。 第 3 级:有一些重要的事。 你有必须要做的事情,需要及时跟踪,不能拖延,你会时刻提醒自己这些事情。 第 4 级:日程排满了。 你的日程排满了,不得不经常问自己"什么事情更重要?",以便决定先做哪些事,后做哪些事。 你没有计划外的时间,不过你……
阅读全文
| 字数
206
一、设计问题 (ABI 原则) CR 的意图 (Intention) 首先要了解整个 CR 要解决的问题; 正确的解决方案 (Better Solution) 在了解问题的基础上,思考标准的解决方案; 架构设计(合理的分层)(Architecture Design) 包设计 类设计 接口设计 安全 (safety) 不要迫使使用方到处传递敏感信息 二、实现问题 命名规范 命名规范: 一致性 注释和代码保持一致 同一个概念,不要用多个(近似但不一样的)名称 作用域……
阅读全文
| 字数
688
1 为什么要做一个机器人? 解决的问题 (🤖的适用场景) 日常工作中,重复繁琐的运营工作 线上问题定位 (媒资 Union 查询,用户染色、错误日志等 ) 借助机器人做错误告警,业务周报等 2 设计思想 可扩展 可扩展,轻松增加新指令 统一的指令注册接口 指令按照 tree 的方式管理,每个指令实现一个文件。 内聚:指令实现细节在内部的 rpc 包中管理 基于文本消息指令 基于空格分隔的多级指令设计; 格式:@robot <cmd…> < arguments > 易用性(对用户友好) 类似 unix 工具,每一级指令要带有 help 指令,并给出示例,无需查询文档,即可上手。 采用 markdown 消息, 消息样式丰富,可读性好,提示使……
阅读全文
| 字数
550
“尽管很多人都很努力地工作,但却没能取得什么成就。 ——安迪·格鲁夫 1. 简单介绍 OKR 分为目标和关键结果, 关键结果必须是可以衡量的,最终是可以看到的。 OKR也可以作为逆向思考问题的有效方法,比如:快速分析各类业务协议报文? 关键结果可以定义为: 基于go编写通用 Wireshark 插件,30分钟内对接一种新的七层协议; 协议解析性能 1w/s; 支持 wireshark 显示过滤器,以及请求应答关联; 2. KPI vs OKR KPI OKR “目标是什么” “目标是什么” 及 “如何实现” 年度 季度或月度 不公开、不透……
阅读全文
| 字数
619
1 创建存储过程 1.1 创建一个存储过程 1 2 3 4 5 6 7 8 9 CREATE PROCEDURE `ClearExpiredData`() BEGIN -- 清理已过期10天的数据 delete from vid_blacklist where expire_time > CAST('2010-10-10' AS DATETIME) and expire_time < SUBDATE(CURDATE(), 10); -- end END 1.2 执行存储过程 1 call ClearExpiredData() 2 数据库定时任务 2.1 创建一次性事件 1 2 3 CREATE EVENT clearEvent ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 1 DAY DO call ClearExpiredData() 2.2 创建周期性事件 每天早上8点执行一次: 1 2 3 4 5 CREATE EVENT clearEvent ON SCHEDULE EVERY 1 DAY STARTS '2022-01-24 08:00:00' COMMENT '定时清理过期数据' DO call ClearExpiredData(); 2.3 查询数据库 Event 1 select * from information_schema.events where event_name = 'clearEvent' 2.4 删除 Event 1 drop EVENT clearEvent 总结 TODO……
阅读全文
| 字数
518
1 DB 回档操作 1.1 mysqldump 备份表数据(不包含建表语句) 1 2 3 4 5 6 7 mysqldump -h10.10.10.10 -P15192 -uroot -pPassword \ --single-transaction \ --default-character-set=utf8 \ --no-create-info \ --skip-disable-keys \ --skip-add-locks \ [database name] [table name1] [table name2] > [dump file] 1.2 恢复数据 执行以下命令前一定要清理原有的数据,要不然会报唯一键冲突的 导入数据之前,最好将线上的表备份一下,然后 delete 清空原表; 最后进行导入,否则原数据不清理,导入的时候会报唯一健冲突。 方式一: 1 #mysql -h10.10.10.10 -P15192 -uroot -pPassword [database name] < [dump file] 方式二: 登陆mysql 然后执行source命令 1 2 3 #mysql -h10.10.10.10 -P15192 -uroot -pPassword > use db_name > source [dump file] 总结……
阅读全文
| 字数
3121
Preface OpenTelemetry 是一个可观测性工具,通过标准化的 API 和 SDK,提供了跨语言、跨平台的分布式追踪、日志和指标收集和分析能力。OpenTelemetry 的目标是让开发者更容易地维护和监测他们的应用程序。 本文将介绍 OpenTelemetry 的一些基本概念和用法,帮助读者快速入门。 1. 安装 OpenTelemetry 首先,需要安装 OpenTelemetry 的 SDK。这里以 Golang 为例,介绍如何安装 OpenTelemetry Go SDK。 1 go get go.opentelemetry.io/otel 通过运行上述命令,可以下载并安装 OpenTelemetry Go SDK。 2. 配置 OpenTelemetry Collector OpenTelemetry Collector 是一个数据收集器,它可以收集不同类型的数据并发送到指定的目的地。在使用 OpenTelemetry 进行分布式追踪时,通常需要将追踪数据发送到 Zipkin 或 Jaeger 等追踪……
阅读全文
| 字数
708
Preface
这个世界上优雅的东西很少,递归至少算一个。tree
和 single list
的数据结构,是非常适合使用递归来操作的。下面我们使用 Go 来做几道题,感受一下递归的魅力。
……
阅读全文
| 字数
1226
1 缘起 在业务开发场景中,主要用到两个开发能力:接口粘合+缓存。 一个好的缓存设计,能够降低服务的时延,抵抗流量洪峰。 比如最近的西安健康码事件,明显缓存设计上是存在明显问题的 :-)。 2 什么场景需要加缓存? 提高服务质量,降低时延; 减少对下游的请求量,节省资源 3 缓存常见问题 缓存问题 解决办法 (1) 缓存失效的策略 惰性过期(读取时判断如果过期了,就返回且异步更新) (2) 缓存集中失效 设置随机过期时间 (3) 缓存击穿(大量穿透导致雪崩) singleflight 合并多个相同的请求 3.1 50行代码,实现一个可用的 singleflight? groupCache 库实现了一个可用……
阅读全文