用java实现etcd分布式锁_etcdsync 一个golang的ectd分布式锁实现

etcdsync

用java实现etcd分布式锁_etcdsync 一个golang的ectd分布式锁实现_第1张图片

介绍

etcdsync is a distributed lock library in Go using etcd. It easy to use like sync.Mutex.

In fact, there are many similar implementation which are all obsolete depending on library github.com/coreos/go-etcd/etcd which is official marked deprecated, and the usage is a little bit complicated. Otherwise this library is very very simple. The usage is simple, the code is simple.

安装

go get -u github.com/zieckey/etcdsync

demo

package main

import (

"log"

"os"

"github.com/zieckey/etcdsync"

)

func main() {

m, err := etcdsync.New("/mylock", 10, []string{"http://127.0.0.1:2379"})

if m == nil || err != nil {

log.Printf("etcdsync.New failed")

return

}

err = m.Lock()

if err != nil {

log.Printf("etcdsync.Lock failed")

} else {

log.Printf("etcdsync.Lock OK")

}

log.Printf("Get the lock. Do something here.")

err = m.Unlock()

if err != nil {

log.Printf("etcdsync.Unlock failed")

} else {

log.Printf("etcdsync.Unlock OK")

}

}

使用docker跑一个etcd

docker run \

-p 2379:2379 \

-p 4001:4001 \

--name etcd \

-v /usr/share/ca-certificates/:/etc/ssl/certs \

quay.io/coreos/etcd:v2.3.0-alpha.1 \

-listen-client-urls http://0.0.0.0:2379,http://0.0.0.0:4001

你可能感兴趣的:(用java实现etcd分布式锁)