既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上Go语言开发知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
在Linux下使用多进程管理工具对开发和运维都很有用,常见的功能全面的主流工具主要有monit、supervisor。不过开发中使用则推荐轻量级小工具 goreman 。
goreman是对Ruby下广泛使用的foreman的重写,基于golang的工具。顺便提一句:goreman的作者是mattn,在golang社区挺活跃的日本的一名程序员。foreman原作者也实现了一个golang版:forego,不过没有goreman好用,举个例子:coreos的etcd就是使用的goreman来一键启停单机版的etcd集群。
2 安装
注意:因为 goreman
是基于golang的,所以需要先安装golang环境,golang环境的安装配置。
go工具安装都非常简单:
在GitHub:https://github.com/mattn/goreman 上有最新的下载安装命令
go install github.com/mattn/goreman@latest
goreman help
安装完成后可以在 $GOPATH/bin
下看到有 goreman 的执行文件。
3 使用
由于是小工具,参考goreman help列出的命令基本就足够了。简单的使用步骤:
- 新建一个Procfile文件,如果改名则需要goreman -f指定。
- 在包含Procfile的目录下执行:goreman start
- 关闭时直接ctrl-c推出,goreman会自动把所有启动的进程都shut down
3.1 使用示例
以Apache kafka
的使用为例,kafka使用时通常需要启动两个进程:一个zookeeper,一个kafka broker,因此可以编写一个kafka开发环境的Procfile:
zookeeper: bash ~/tool/kafka_2.11-0.8.2.1/bin/zookeeper-server-start.sh config/zookeeper.properties
broker: bash ~/tool/kafka_2.11-0.8.2.1/bin/kafka-server-start.sh config/server.properties
然后执行goreman start
,可以看到不同颜色区分的zookeeper、kafka broker进程的启动日志:
11:04:10 zookeeper | Starting zookeeper on port 5000
11:04:10 broker | Starting broker on port 5001
...
关闭时,直接ctrl-c,则两个bash进程也会被自动关闭。
4 高级用法
上述是最简单的使用场景:直接使用goreman start,不过有个缺点,即goreman绑定到了当前的session,而且不能灵活控制多个进程启停以及顺序。而实际开发过程中,通常需要经常单独启停某个正在开发的模块相关的进程,比如上面例子中的kafka-broker,而Zookeeper通常不需要频繁启停。
可以使用更高级的goreman run命令来实现,如:
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**