erpeng's code area


  • Home

  • Tags

  • Archives

go bytes包/strings包源码分析

Posted on 2019-05-23 |
bytes包包函数123func Equal(a, b []byte) boolfunc Compare(a, b []byte) intfunc IndexByte(b []byte, c byte) int 如上三个基础函数及其他一些函数分体系结构使用汇编分别编写 go doc bytes可以看 ...
Read more »

go net包源码分析

Posted on 2019-05-22 |
net包中按实体分层分为mac,ip,tcp,udp,unix.按逻辑有Listener,Conn,Resolver 实体分层mac1234567struct:type HardwareAddr []bytefunc:将一个string类型的MAC地址解析为二进制格式,格式无效会返回错误:fun ...
Read more »

go context包源码分析

Posted on 2019-05-19 |
go的context包可以用来实现goroutine间的数据同步或控制goroutine的生命周期 最佳实践 Context最好显式的作为函数的第一个参数进行传递,而非保存在一个结构体中 不要传递一个nil的context,如果不知道需要使用哪种context,传递context.TODO 使用 ...
Read more »

go sync包源码分析

Posted on 2019-05-19 |
go的sync包中所有的结构都适用于goroutine并发执行的情况 sync.Once包一个示例123456789101112131415161718192021222324package mainimport ( "fmt" "sync")func m ...
Read more »

如何设计一个高效的rpc监控系统

Posted on 2019-05-17 |
本文主要关注两点,一为分布式追踪系统的监控设计,一为分布式调用指标的采集.主要思路来源于google dapper与statsd. dapper:大规模分布式追踪系统基础架构 traceId:一次请求的唯一标识,通过traceid可以将该请求所有的调用串联起来 spanId:我们需要知道调用方与 ...
Read more »

如何设计一个并行、高可用、高并发的A/B实验系统

Posted on 2019-05-14 |
A/B实验系统设计 圈定人群或者流量圈定人群或者流量功能可以独立出来做灰度发布.人群可以根据白名单、号码包、uid、城市、时间或者自定义等维度做区分 分组分组之后可以写两套代码分别部署于不同的IDC或者服务器,也可以在一套代码中根据分组走不同的逻辑.人群划分之后为了避免多因素影响A/B测试的准确性 ...
Read more »

如何设计一个高并发的日志系统

Posted on 2019-05-13 |
日志系统基本概念日志系统必要的因素 日志级别:FATAL,WARNING,NOTICE,DEBUG,ALL … 调用栈:文件,函数,行数,日期php可以通过debug_backtrace()获取,go通过runtime.Caller()获取 日志信息:自定义 日志系统性能考量我们知道日志系统是需要 ...
Read more »

Redis连接处理

Posted on 2019-05-10 |
本文从网络层视角看一下客户端连接,超时,输入输出缓冲区相关的一些知识 连接客户端连接之后做如下处理: 设置socket为non-blocking 设置socket为TCP_NODELAY 注册读取事件准备读取客户端请求 但如果已经超出maxclients配置的最大连接数,则会发送错误后断开连接注 ...
Read more »

Redis stream简介

Posted on 2019-04-30 |
stream简介append-only mode数据结构为一个前缀树加listpack,listpack的介绍详见 [Redis的一个历史bug及其后续改进]一文.前缀树中保存的为ID,ID由两部分组成,毫秒级时间戳+该ms内的递增计数.stream结构可以理解为如下三种模式: 一个sorted ...
Read more »

Mysql 其他

Posted on 2019-04-25 |
引言理解Mysql的 order by,count(*),MDL语句,onlineDDl,insert及自增主键参考极客时间mysql45讲之第6讲,13讲,14讲,16讲,17讲,29讲,31讲,33讲,39讲,40讲 重建表12可以减少数据空洞,将复用的page清除掉alter table t ...
Read more »
<1…6789>

87 posts
43 tags
GitHub
© 2022 erpeng
Powered by Hexo
|
Theme — NexT.Muse v5.1.4