jetcd

etcd java 客户端。「etcd java client」

  • 所有者: etcd-io/jetcd
  • 平台: Windows,Linux,Mac,Unix-like
  • 许可证: Apache License 2.0
  • 分类:
  • 主题:
  • 喜欢:
    0
      比较:

Github星跟踪图

jetcd - A Java Client for etcd

Build Status
License
Maven Central
Javadocs

jetcd is the official java client for etcd v3.

Note: jetcd is work-in-progress and may break backward compatibility.

Java Versions

Java 8 or above is required.

Download

Maven

<dependency>
  <groupId>io.etcd</groupId>
  <artifactId>jetcd-core</artifactId>
  <version>${jetcd-version}</version>
</dependency>

Development snapshots are available in Sonatypes's snapshot repository.

Gradle

dependencies {
    implementation "io.etcd:jetcd-core:$jetcd-version"
}

Usage

// create client using endpoints
Client client = Client.builder().endpoints("http://etcd0:2379", "http://etcd1:2379", "http://etcd2:2379").build();
// create client using target which enable using any name resolution mechanism provided
// by grpc-java (i.e. dns:///foo.bar.com:2379)
Client client = Client.builder().target("ip:///etcd0:2379,etcd1:2379,etcd2:2379").build();
KV kvClient = client.getKVClient();
ByteSequence key = ByteSequence.from("test_key".getBytes());
ByteSequence value = ByteSequence.from("test_value".getBytes());

// put the key-value
kvClient.put(key, value).get();

// get the CompletableFuture
CompletableFuture<GetResponse> getFuture = kvClient.get(key);

// get the value from CompletableFuture
GetResponse response = getFuture.get();

// delete the key
kvClient.delete(key).get();

To build one ssl secured client, refer to secured client config.

For full etcd v3 API, plesase refer to the official API documentation.

Examples

The jetcd-ctl is a standalone projects that show usage of jetcd.

Launcher

The io.etcd:jetcd-test offers a convenient utility to programmatically start & stop an isolated etcd server. This can be very useful e.g. for integration testing, like so:

import io.etcd.jetcd.Client;
import io.etcd.jetcd.test.EtcdClusterExtension;
import org.junit.jupiter.api.extension.RegisterExtension;

@RegisterExtension 
public static final EtcdClusterExtension cluster = EtcdClusterExtension.builder()
        .withNodes(1)
        .build();

Client client = Client.builder().endpoints(cluster.clientEndpoints()).build();

This launcher uses the Testcontainers framework.
For more info and prerequisites visit testcontainers.org.

Versioning

The project follows Semantic Versioning.

The current major version is zero (0.y.z). Anything may change at any time. The public API should not be considered stable.

Build from source

The project can be built with Gradle:

./gradlew compileJava

Running tests

The project is tested against a three node etcd setup started with the Launcher (above) :

$ ./gradlew test

Troubleshooting

It recommmonds building the project before running tests so that you have artifacts locally. It will solve some problems if the latest snapshot hasn't been uploaded or network issues.

Contact

Contributing

See CONTRIBUTING for details on submitting patches and the contribution workflow.

License

jetcd is under the Apache 2.0 license. See the LICENSE file for details.

概览

名称与所有者etcd-io/jetcd
主编程语言Java
编程语言Java (语言数: 2)
平台
许可证Apache License 2.0
发布数28
最新版本名称jetcd-0.8.1-alpha (发布于 2024-04-17 09:54:37)
第一版名称jetcd-0.4.0 (发布于 2019-10-22 09:13:02)
创建于2016-07-20 04:14:11
推送于2024-05-15 17:25:43
最后一次提交
星数1.1k
关注者数52
派生数314
提交数1.4k
已启用问题?
问题数426
打开的问题数13
拉请求数801
打开的拉请求数0
关闭的拉请求数121
已启用Wiki?
已存档?
是复刻?
已锁定?
是镜像?
是私有?
去到顶部