整体介绍
团队协作
- Ant:较少使用
- Maven
- Gradle
- Git
- SVN:较少使用
质量保证
- Checkstyle
- FindBugs:代码检测工具
- SonarQube:平台,集成了上面两种工具
压测
- JMeter
- JMH
- AB
- LoadRunner
容器与代理(随着微服务的盛行,Envoy、OpenResty、Kong等API网关的使用也越来越普遍)
- Tomcat
- Jetty
- Nginx
- Envoy
- OpenResty
- Kong
CI/CD
- Gitlab-CI
- Jenkins
- Travis
JVM相关
- JMC(JFR)
- jstack、jmap、jstat
系统分析
- vmstat
- iostat & iotop
- ifstat & iftop
- netstat
- dstat
- strace
- GDB
- lsof
- tcpdump
- traceroute
文档管理
- JavaDoc
- Swagger
网络工具
- PostMan
- WireShark(网络包分析工具)
- Fiddler(只针对HTTP进行抓捕)
- Charies
JVM相关工具
JMC(Java Mission Control)
1.7之后提供的 JVM 图形化监控工具,包括 JVM 浏览器,飞行控制器 JFR(Java Filght Recorder),JMX(Java Management Extensions)控制台。
jps:查看java进程信息
jmap:查看JVM中对象的统计信息,可以在内存溢出时查看堆中最大的对象类型
jstat:对JVM的资源和性能进行实时监控
jstack:查看JVM线程栈信息,可以检查线程死锁问题
jinfo:动态查看、调整jvm参数
jcmd:1.7提供的综合工具,使用飞行计数器分析性能。
Git
分布式管理,有四个保存数据区域,如图中的工作区,暂存区,本地仓库,远程仓库。
开发时线程远程仓库拉取代码到工作区,可以使用clone,pull,fetch,checkout。pull=fetch+merge
提交代码时先使用add,再commit,再push。
Git 工作流
github 工作流:master 分支的代码一直是可发布状态,需要新开发就直接开一个feature分支,完成后pullrequest(PR),当Review通过后,合并到mater分支。
Linux 分析工具
- vmstat:进程、虚拟内存、页面交换、IO读写、CPU活动等
- iostat & iotop:系统IO状态信息
- ifstat & iftop:实时网络流量监控
- netstat:查看网络相关信息,各种网络协议套接字状态
- dstat:全能型实时系统信息统计
- strace:诊断、调试程序的系统调用
- GDB:程序调试、coredump分析
- Isof:查看系统当前打开的文件信息
- tcpdump:网络抓包工具
- traceroute:网络路由分析工具