- 博客(80)
- 收藏
- 关注
原创 基于traceid 的故障注入方案
背景: 网约车业务复杂度非常高,在进行微服务改造之后,涉及服务众多,服务交互链路复杂,每次修改涉及的面非常大,并且线上代码变动非常快,每周迭代的需求大概在...
2022-01-19 15:35:00 750
原创 golangci-lint在cicd中的应用
一,前言 为了保证线上质量,需要每次上线对代码进行静态分析,而依赖开发者自觉是很难保证的。本文主要详细介绍一系列上线必须要通过的静态扫描规范。 二,必读官方规范 ...
2021-03-19 18:34:00 1043
原创 奇葩的sdk?sdk 设计该思考的一些原则
前言:工作中发现一些服务提供的sdk 真是非常难用,非常让人困惑,不禁想聊下自己设计sdk 会遵循哪些原则高内聚低耦合往大点看,我们的库应该功能内聚,不要有业...
2020-11-08 00:17:00 266
原创 golang 高频服务延时抖动追因
一,背景策略组同学反馈有个服务上线后 redis 写超时非常严重,严重到什么地步呢,写redis 毛刺超过100ms! 而且不是随机出现,非常多,而且均匀,导致整个接口超时严重。因为用的redis 库是由我们组维护,所以任务落我们组小伙伴头上了。这个项目有非常复杂的业务逻辑,有密集型io(...
2019-11-20 19:09:00 1018
原创 高性能异步批量ping的golang实现
一个监控项目有个需求,会对一批域名全国的边缘节点进行探测,这里包括,丢包率,http 响应时间,探测频率大概时间是2min 一个周期。这里的域名大概有几百个甚至上千。由于是golang 写的调度和agent, 所以,这里探测丢包率是一个有意思的问题。由于目前git 上没有一个好用的支持mult...
2019-09-30 22:42:00 1432
原创 golang struct to map
最近写业务,有些很恶心的需求,涉及php,go 的类型转换,因为php是弱类型,所以会涉及入参不定的情况。这里介绍下struct to map 的实现,具体例子参考:package mainimport ( "fmt" "reflect")type JsonStruct str...
2019-09-26 20:31:00 803
原创 如何维护一个自己的 golang doc 服务
本文内容是如何维护一个golang 在线的doc 服务。1 什么是godoc ?godoc 是 golang 官方提供的文档生成工具,2 为什么要有godoc ?我们经常遇到一个问题,就是代码和文档不一致,线上代码版本总和wiki 给的不一样,让人吐槽。为了解决这个痛点问题,golan...
2019-01-16 00:02:00 177
原创 一个go1.9.x 编译器内联引起的栈信息错乱的问题分析
背景是在写个日志库,日志库有个很重要的功能就是要打印出调用栈,知道具体是哪个文件,哪个函数调用的Info 等。 然后在测试中发现了一种写法,我自己本机测试一直ok, 但是业务使用的时候调用栈始终不对,打的调用栈少了一层。莫名其妙的,后来对比发现,我们就是go version 不一样。 ...
2019-01-01 11:57:00 164
原创 如何最快地批量执行音视频转码
为什么要有这个需求?我们知道,单纯的转format ,不转codec ,其实仅仅是io 操作,这个操作是很快的,但是一旦需要decodec & encodec ,这个操作是非常耗时,耗cpu的,因为这个地方有解压缩和压缩的操作。如果批量任务需要转码,而且是同时转码成不同的格式,...
2018-07-10 16:13:00 168
原创 golang 内存分析之字节对齐规则
c 的字节对齐很重要,因为c 支持指针运算。在golang 里面一般是慎用指针运算的,所以,这部分很少用,但是有些场景为了性能不得不用到指针运算,这个时候,知道golang 的内存分配就很重要了。但是基本很少有相关的参考资料,很多也不靠谱,这里借鉴c 的规则验证golang 的内存对齐...
2018-06-12 22:40:00 986
原创 kubeadm1.7 搭建 Kubernetes 集群实操
使用kubernetes 搭建集群,因为网络等原因,对于那些初识k8s 的人,是一件很困难的事情,这里记录下整个集群搭建的过程和一些坑。 该文章后续仍在不断的更新修改中, 请移步到原文地址http://www.dmwan.cc/?p=150 一、环境准备,操作系统:cent...
2018-06-11 10:47:00 118
原创 nsq 源码分析之tcp协议部分
最近刚好看到其他几个项目有socket 编程,然后,想了下,在golang 中还没用过socket tcp 编程,于是看了一些im 的协议解析过程,都不是太满意,不是太通用,刚好看到nsq,发现nsq 这部分真是简单粗暴。还用的是标准库的一些东西,非常通用。 该文章后续仍在不...
2018-05-22 23:03:00 194
原创 Ubuntu 编译ffmpeg 实现GPU 转码
前言,公司转码集群服务器资源有限,需要考虑GPU方案,本文记录下整个实现ffmpeg gpu 转码的过程。 该文章后续仍在不断的更新修改中, 请移步到原文地址http://dmwan.cc 环境: DISTRIB_ID=UbuntuDISTRIB_RELEAS...
2018-04-17 17:00:00 637 1
原创 golang gc 优化思路以及实例分析
一个即将上线的go 写的高频服务,压测的时候发现 gc 特别高,高到10%-15% 左右了,本文记录下优化 gc 的过程和和思路。线上环境1.10. 该文章后续仍在不断的更新修改中, 请移步到原文地址http://dmwan.cc 首先,查看gc 是否有异常,我们可...
2018-04-01 22:08:00 1456
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人