Goreman 基本用法

· Read in about 1 min · (159 Words)
dev devops

Goreman

Goreman 是一个Foreman的Go语言的克隆版本,一般在开发过程中的调试多个进程时使用。

当前开发趋势中,微服务架构以及分布式架构很流行,很多应用依赖于其它应用或者集群化。这样在本地调试时,会有很多不方便的地方。而使用Goreman同时批量管理多个进程,可以方便开发。

下载安装

可以通过go get来下载安装最二进制文件

go get github.com/mattn/goreman

也可以在releases页面下载相应平台的最新二进制执行文件zip包。 然后将解压出来的二进制文件放置于你的PATH路径下。

配置文件

Foreman使用方法相同,都是基于Procfile配置文件来运行的。其中Procfile文件内容与你正常在shell中执行命令大致相同。如etcdProcfile文件示例:

# Use goreman to run `go get github.com/mattn/goreman`
etcd1: bin/etcd --name infra1 --listen-client-urls http://127.0.0.1:2379 --advertise-client-urls http://127.0.0.1:2379 --listen-peer-urls http://127.0.0.1:12380 --initial-advertise-peer-urls http://127.0.0.1:12380 --initial-cluster-token etcd-cluster-1 --initial-cluster 'infra1=http://127.0.0.1:12380,infra2=http://127.0.0.1:22380,infra3=http://127.0.0.1:32380' --initial-cluster-state new --enable-pprof
etcd2: bin/etcd --name infra2 --listen-client-urls http://127.0.0.1:22379 --advertise-client-urls http://127.0.0.1:22379 --listen-peer-urls http://127.0.0.1:22380 --initial-advertise-peer-urls http://127.0.0.1:22380 --initial-cluster-token etcd-cluster-1 --initial-cluster 'infra1=http://127.0.0.1:12380,infra2=http://127.0.0.1:22380,infra3=http://127.0.0.1:32380' --initial-cluster-state new --enable-pprof
etcd3: bin/etcd --name infra3 --listen-client-urls http://127.0.0.1:32379 --advertise-client-urls http://127.0.0.1:32379 --listen-peer-urls http://127.0.0.1:32380 --initial-advertise-peer-urls http://127.0.0.1:32380 --initial-cluster-token etcd-cluster-1 --initial-cluster 'infra1=http://127.0.0.1:12380,infra2=http://127.0.0.1:22380,infra3=http://127.0.0.1:32380' --initial-cluster-state new --enable-pprof
#proxy: bin/etcd grpc-proxy start --endpoints=127.0.0.1:2379,127.0.0.1:22379,127.0.0.1:32379 --listen-addr=127.0.0.1:23790 --advertise-client-url=127.0.0.1:23790 --enable-pprof

比如这里的配置文件表示启动三个etcd进程来构建一个本地的etcd集群。

配置文件格式为:

# 进程名: 执行进程所用命令
# 示例
web:    bundle exec thin start -p $PORT

使用方法

由于goreman是默认使用当前目录下的Procfile配置文件,所以运行前请确保正确配置。

  1. 检查配置文件是否正确:

    goreman check
    

    如果配置文件正确,会打印出类似如下内容

    valid procfile detected (etcd1, etcd2, etcd3)
    
  2. 启动服务(在配置文件目录下)

    goreman start
    
    # 如果你想使用一个自定义名称作为配置文件名称
    goreman -f myprocfile start
    

    在运行时,goreman会独占当前shell窗口。直接使用Ctrl + c即可退出运行状态。

  3. 查看状态

    goreman run status
    

    正常运行状态如下(前面带*号的即是正常状态):

    *etcd1
    *etcd2
    *etcd3
    
  4. 停止某个进程

    goreman run stop PROCESS_NAME
    

    如停止上面etcd集群中的第二个etcd2,直接goreman run stop etcd2即可。再次查看状态,会显示如下:

    *etcd1
     etcd2
    *etcd3
    
  5. 启动某个已停止进程

    goreman run start PROCESS_NAME
    
  6. 重启某个进程

    goreman run restart PROCESS_NAME
    

参考资料

Comments