Protobuf 主要是以数据编码小为著名,主要是用于数据交互和数据存储等,降低带宽、磁盘、移动端网络环境较差减少报文大小等场景,关于序列化速度主要是取决于你用的sdk,所以本文不会关心序列化速度!本文将以proto3语法进行介绍!并且也介绍了如何使用pb规范的定义接口,以及对比了pb2/pb3差别!如果你还对Thrift感兴趣,可以看我这边文章: Thrift协议讲解!
grpc
学习grpc文件
python学习笔记(基本语法+脚本)
个人学习python的笔记!基于 python3 ! 相关文档可以参考: https://docs.python.org/zh-cn/3/library/index.html , 本地可以执行python3 -m pydoc -p 1234
打开文档,python作为世界上最好的语言和万能的胶水语言,只能说太过于完美了!
Mac 个人开发环境搭建
个人的Mac环境,主要是解决一些更换电脑时需要重新搞一些东西,以及分享一下个人mac的配置,以及一些命令的推荐!
Golang的调度模型
Go有四大核心模块,基本全部体现在runtime,有调度系统、GC、goroutine、channel,那么深入理解其中的精髓可以帮助我们理解Go这一门语言!
Golang的GC的回收
Golang Gc相关!
tcpdump
使用tcpdump + wireshark 可以很好的帮助我们解决线上抓包问题!这里同时也推荐一下我写的一个工具,tcpdump decoder, 因为线上我们并没有wireshark的可视化工具,往往需要tcpdump -w tcpdump.pcap
然后本地通过wireshark调试,是的太过于麻烦和冗余,因此我个人开了一个工具,可以在线解析 HTTP/Thrift流量!
Makefile学习
Makefile
在开源项目中还是相当的常见的,熟悉他的基本语法,还是很有必要的,其次是Makefile相对于shell脚本的优点就是他的关联性,和前置条件等都很好的解决的构建链条的问题。有些学c/cpp的同学可能比较熟悉,我们这个核心不关注于这个,主要是使用在日常中
Elasticsearch 基础、概念、原理学习
es作为 db、搜索、alap以及成熟的社区,已经越来越成为后端比较成熟的技术栈了,业务中由于需要大量聚合操作,来弥补传统关系型数据(My-SQL)的性能不足,行数据库的劣势,往往会以es作为辅助的存储工具,因此深入学习es基本概念,原理对于日常开发有很大的帮助!对于SQL-Body来说,es支持SQL语法,还是相当给力的!
由于我们公司es集群基本使用的是 6.8.8
版本,所以全部学习资料基于这个版本学习!
Java-ThreadLocal和InheritableThreadLocal的局限性以及如何在线程池模型中传递上下文
跨线程使用ThreadLocal
如何做???