code: func (m *Mercury) CreateLock(key string, ttl int) (lock.DistributedLock, error) {
  	lockKey := fmt.Sprintf("%s/%s", m.config.Etcd.LockPrefix, key)
  	mutex, err := etcdlock.New(m.cliv3, lockKey, ttl)
  	return mutex, err
  }
docs: // CreateLock create a lock instance