广阔天地大有作为
你想拥有什么,就去追求什么
Home
All posts
About
Weekly
Tags & Stats
Posts
08
Apr 2024
代码仓库迁移引发的包引用问题
奇怪的问题,简单的原因
06
Apr 2024
内存一直涨,是内存泄露吗?
内存一直涨就是内存泄漏?可能不是。
29
Feb 2024
go 1.14.1 timer bug
go 1.14.1 的timer 包存在bug,会导致服务hang死,问题发生在两年前,而go目前的版本也已经迭代到1.22,还是整理出来以记录当时定位问题的思路。
24
Feb 2024
100 Go Mistakes and How to Avoid Them
罗列了100个go开发中容易犯的错误、如何避免这些错误并深入分析其背后的原理,包括一些常见的错误,比如rang loop、defer使用问题,也有一些优化建议,比如减少内存申请次数、理解内存对齐、理解CPU缓存 cache line原...
18
Mar 2023
Unit Test Best Practices
### 前言 在传统的观念中,认为开发工程师的主要职责是编写代码,首先因为自测容易产生思维盲区,其次在紧迫的业务需求下,开发工程师可能会把测试工作放在次要位置。 实际上,开发工程师的职责应该跟随整个开发周期,包括开发、测试、持续集成和交...
21
Sep 2022
Google Code review 指南
Google 拥有许多覆盖所有语言和所有项目的通用工程实践。这些文档是Google长期以来形成的各种最佳做法的集体经验。 ## 名词解释 * **Nit**: nitpick 意思鸡蛋里挑骨头 - **CL**: changelist -...
17
Dec 2019
openrestry body_bytes_sent = 0
这是服务从IDC迁移上阿里云过程中遇到的一个问题,虽然定位完成以后发现其实很简单,但也算一个典型的案例。服务是一个openrestry。 ## 现象 服务在阿里云部署完以后内部测试通过,切域名。后来收到一个新接入客户端反馈,服务请求失败...
22
Nov 2019
基于argocd+kustomize实现金丝雀上线
最近研究了一些CI/CD开源工具,目前项目CI依赖gitlab,但gitlab的CD功能太弱,所以调研其他一些工具看看能不能在生产应用。 * [spinnaker](https://www.spinnaker.io/) 可谓功能最全最为成...
15
Nov 2019
一次mysql锁问题排查
查了一个线上mysql 锁等待的问题,记录一下以后别犯这么低级的错误 ## 背景 线上一个老业务有一个任务状态表,最早的设计是单库单表比较low。由于数据没有迁移,对完成任务也没有删除操作,日积月累导致数据越来越多影响正常业务。用了一个...
10
Sep 2019
envoy 代理http1.1
最近处理了一个envoy代理http1.1的问题,先简单介绍一下背景 ## 背景 我们有一个长连接通道的项目,原来是通过http2.0连接。后来因为要做扫码登录的业务,所以使用 socket.io 支持了http1.1的连接,这是同事...
10
May 2019
istio/envoy流量控制问题
最近在调研istio,很重要的一点是想利用istio金丝雀发布时精细的流量控制。我们知道在k8s的金丝雀发布一般是通过label来控制,如果需要灰度1%的流量,那么总共需要100个pod。具体可以参考[这篇文章](https://mp.w...
07
May 2019
istio 抓取应用程序的metric
istio中会对网格内数据的metric数据收集,也可以自定义一些新的metric。通过这些数据有助于了解流量如何在集群中流动的。但这些数据不包括应用程序业务层的数据。 我们的应用中都有调用prometheus的go client api...
26
Apr 2019
shell脚本变量作用域
今天写一个shell脚本遇到一个问题,脚本为实现从文件中按行读取,拼接成一个字符串。大概代码如下 ``` content="" cat ./file | while read line do content=$content"...
24
Mar 2019
cgo笔记
> 看了下上一次提交还是去年刚搭建这个博客的时候,之前在博客园维护过一个博客,三天打鱼半年晒网写过几篇,后面打算转战到此争取能多写几篇,没想到还是没做到。今天难得有时间,先总结一篇cgo相关的吧。 > > 目前公司的技术栈已经全面转go,...
30
Jul 2018
grpc established问题
### 问题起因 QA同事问我为什么服务建立连接以后,关闭防火墙过了一天netstat查看端口还是established状态。当时我也回答不出,但我觉得这是个好问题,于是花了点时间goole。 ### 定位 首先找到一句话`The d...
30
Jul 2018
grpc转换为http对外服务
# grpc转换为http对外服务 grpc支持将协议转换成http对外服务,数据通过post json提交 相对于普通的grpc服务,只需要在定义pb时稍作修改即可 ``` syntax = "proto3"; package hel...
30
Jul 2018
一道C++绑定面试题展开
> 早上排队进地铁时候看到一个面试题,据说校招社招从来没人做对过。被肉贴肉的人流中看了一眼,不是选B吗。后面细思不对,既然没人做对,必有蹊跷,肯定是一个下意识中一定错的答案。 来到公司,运行一遍。果然选C。 ``` #include <...
30
Jul 2018
一道C语言面试题
今天在群里的兄弟分享了一道考察sizeof和strlen的面试题,看似很简单,其实却不然,分析过后,还是有一些不解之处。 - 题目,写出下面代码打印结果 ``` char str1[] = "hello"; char str2[5]...
24
Mar 2018
一些TCP基础笔记
> 本文主要是看书看文章时做的笔记,记录一些TCP相关的基本概念。引用文章来自补充阅读,点击可到原文链接。 ## 概念 ### MTU:maximum transmission unit最大传输单元 > 每种网络都不一样,以太网是150...
01
Jan 1
envoy ratelimit技术验证
nginx大法好啊,nginx5分钟解决了一个envoy带来两周的伤害。 ### 背景 具体情况是这样的,我这边有个服务大概结构是这样的。 ![img](https://user-images.githubusercontent.co...