Consul是开源的注册中心软件,用Go语言编写。
Golang已经不推荐用makefile,但是历史原因吧,consul还是makefile。
另外,引用consul内部的代码,也写成了import “github.com/hashicorp/consul/agent”,这就导致如果自己修改代码,目录不是hashicorp,就不会被引用。
程序启动入口:consul\main.go
命令行入口程序:consul\command\commands_oss.go
HTTP入口程序:consul\agent\http_oss.go
命令行处理使用了consul创始人开发的mitchellh/cli框架,用法可以参考我前面的文章。
集群一致性用了Serf框架,也是他们自己开发的。