A basic http key/value example of how to use hashicorp/memberlist
go get github.com/asim/memberlist
memberlist
-members="": comma seperated list of members
-port=4001: http port
Start first node
memberlist
Make a note of the local member address
Local member 192.168.1.64:60496
Listening on :4001
Start second node with first node as part of the member list
memberlist --members=192.168.1.64:60496 --port=4002
You should see the output
2015/10/17 22:13:49 [DEBUG] memberlist: Initiating push/pull sync with: 192.168.1.64:60496
Local member 192.168.1.64:60499
Listening on :4002
First node output will log the new connection
2015/10/17 22:13:49 [DEBUG] memberlist: TCP connection from: 192.168.1.64:60500
2015/10/17 22:13:52 [DEBUG] memberlist: Initiating push/pull sync with: 192.168.1.64:60499
HTTP API
- /add - add value
- /get - get value
- /del - delete value
Query params expected are key
and val
# add
curl "http://localhost:4001/add?key=foo&val=bar"
# get
curl "http://localhost:4001/get?key=foo"
# delete
curl "http://localhost:4001/del?key=foo"