使用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
如何做???
接口mock平台
接口Mock平台主要实践在项目的开发团队太多,业务需要对接各个下层服务,而下层服务提供的API时间线的偏差,往往需要Mock接口提供给需求方(前端),进行联调,提高交付质量。最后再由我们去对接下层服务来保证交付质量,同时下层服务也需要提供mock来格式化响应参数,但是往往省略这部分工作导致接口文档可用性太低。
shell技巧介绍
Shell 脚本在我们日常开发和学习都有举足轻重的地位,比如看一些开源项目,比如项目中的各式各样的脚本,对于促进生产力工具有很大帮助!而且shell最大的好处就是依赖比较小,直接可以运行! 日常中推荐用bash,不推荐用sh!
Docker资源限制和如何监控
容器比较强大的地方就是使用方便,强大的隔离性,但是生产上往往需要做到保护,比如a容器不能对于b容器造成任何影响,比如a容器资源占用太高,导致b容器无法响应,获取a容器down机影响宿主机或其他容器等等,都是不允许的,所以容器隔离技术就解决了这些问题!
docker网络
关于容器化的思考
我最近半个月内一直在看docker,但是看完后发现,发现它对于我来说只是个cli的工具,cli提供了build,push,pull,run等功能,包含了构建镜像,打包发布,拉取,运行。其实不考虑这些,对于公司级别的cicd工具来说,也是这几个流程,比如说我一个git仓库地址,再通过Jenkins等ci工具构建,构建完成后发布到发布机器上,等我们去发布的时候,就是拉取这个zip包/或者镜像,解压/运行,程序去启动后不在考虑范围内,这个过程是最简单最常见的。
所以docker只是提供了一个工具进行这个流程。换了一种承载方式。换句话说它确定了软件究竟应该通过什么样的方式进行交付。docker的创新就是将交付转变为容器/镜像,解决了开发人员的痛点。
本篇不讨论,定义和管理容器技术的OpenStack
& kubernetes
& Docker Swarm
& Containerd
等!
ps:学习这些只是看看自己适不适合学习容器化方向的技术,每一个技术背后的技术都很多,如果只是使用,那么了解即可。为啥要学习容器化技术呢,虽然作为一个后端开发,不需要掌握容器化技术,但是了解只是为了思考和成长!
Docker学习
学习docker的基本组件、dockerfile、docker命令等!