mirror of https://github.com/tikv/client-java.git
* Close #654 To let the upper layers customize their own behavior when the region cache fails, Add RegionCacheInvalidCallBack. Signed-off-by: qidi1 <1083369179@qq.com> * change callback to list Signed-off-by: qidi1 <1083369179@qq.com> * format code Signed-off-by: qidi1 <1083369179@qq.com> * change as comment Signed-off-by: qidi1 <1083369179@qq.com> * change to synchronized Signed-off-by: qidi1 <1083369179@qq.com> * change list to copy on write Signed-off-by: qidi1 <1083369179@qq.com> * change to muti thread Signed-off-by: qidi1 <1083369179@qq.com> * format code Signed-off-by: qidi1 <1083369179@qq.com> * add comment Signed-off-by: qidi1 <1083369179@qq.com> * change to magical num Signed-off-by: qidi1 <1083369179@qq.com> * add comment Signed-off-by: qidi1 <1083369179@qq.com> * change log levle Signed-off-by: qidi1 <1083369179@qq.com> * Fmt --------- Signed-off-by: qidi1 <1083369179@qq.com> Co-authored-by: shi yuhang <52435083+shiyuhang0@users.noreply.github.com> |
||
---|---|---|
.github | ||
dev | ||
docs | ||
metrics/grafana | ||
scripts | ||
src | ||
.gitignore | ||
LICENSE | ||
Makefile | ||
README.md | ||
pom.xml |
README.md
TiKV JAVA Client
A Java client for TiKV. It is supposed to:
- Communicate via gRPC
- Talk to Placement Driver searching for a region
- Talk to TiKV for reading/writing data
Quick Start
TiKV Java Client is designed to communicate with PD and TiKV, please run PD and TiKV in advance.
Build Java client from source file:
mvn clean install -Dmaven.test.skip=true
Add maven dependency to pom.xml
:
<dependency>
<groupId>org.tikv</groupId>
<artifactId>tikv-client-java</artifactId>
<version>3.3.0</version>
</dependency>
Create a transactional KVClient
and communicates with TiKV:
import org.tikv.common.TiConfiguration;
import org.tikv.common.TiSession;
import org.tikv.txn.KVClient;
public class Main {
public static void main(String[] args) throws Exception {
TiConfiguration conf = TiConfiguration.createDefault(YOUR_PD_ADDRESSES);
TiSession session = TiSession.create(conf);
KVClient client = session.createKVClient();
}
}
Or create a RawKVClient
if you don't need the transaction semantic:
import org.tikv.common.TiConfiguration;
import org.tikv.common.TiSession;
import org.tikv.raw.RawKVClient;
public class Main {
public static void main(String[] args) throws Exception {
TiConfiguration conf = TiConfiguration.createRawDefault(YOUR_PD_ADDRESSES);
TiSession session = TiSession.create(conf);
RawKVClient client = session.createRawClient();
}
}
Find more demo in TiKV Java Client User Documents
Documentation
See Java Client Documents for references about how to config and monitor Java Client.
A Maven site is also available. It includes:
Community
Forum
- User forum: AskTUG
- Contributor forum: https://internals.tidb.io/
Contribute to TiKV Java Client
See Contribution Guide for references about how to contribute to this project.
License
Apache 2.0 license. See the LICENSE file for details.