轻量级消息队列,是对 https://github.com/wuzhc/gmq 的魔改,看看正经的轻量级消息队列应该如何设计,大有裨益。
cd cmd/gnode
go build
./gnode -http_addr=":9504" -tcp_addr=":9503" -etcd_endpoints="127.0.0.1:2379" -node_id=1 -node_weight=1
cd cmd/singleCli
go run ./main.go
需要安装 etcd 并运行
etcd
cd cmd/gnode
go build
# 节点1
./gnode -http_addr="127.0.0.1:9504" -tcp_addr="127.0.0.1:9503" -etcd_endpoints="127.0.0.1:2379" -node_id=1 -node_weight=1 -data_save_path=./data1 -enable_cluster=true
# 节点2
./gnode -http_addr="127.0.0.1:9506" -tcp_addr="127.0.0.1:9505" -etcd_endpoints="127.0.0.1:2379" -node_id=2 -node_weight=2 -data_save_path=./data2 -enable_cluster=true
首先安装 raftdhttps://github.com/impact-eintr/raftd
./gnode -http_addr="127.0.0.1:9501" -tcp_addr="127.0.0.1:9502" -raftd_endpoint="127.0.0.1:8001" -node_id=1 -node_weight=1 -data_save_path=./data1 -enable_cluster=true -enable_raftd=true
./gnode -http_addr="127.0.0.1:9503" -tcp_addr="127.0.0.1:9504" -raftd_endpoint="127.0.0.1:8001" -node_id=2 -node_weight=2 -data_save_path=./data2 -enable_cluster=true -enable_raftd=true
# etcd版
cd cmd/etcdClusterCli
# raftd版
cd cmd/raftdClusterCli
# 1 2 4 3 对应四种不同的选择节点的方式
go run ./main.go 1
go run ./main.go 2
go run ./main.go 3
go run ./main.go 4
感谢伟大的开源运动,让我能看到这么多优秀的前辈留下的代码,给我这个菜鸡开个大眼。