Win10 TiKV单机单节点Docker部署测试

1. 环境

环境:Windows10、WSL2、Ubuntu20.04、Docker Desktop
目标:单节点单机部署,测试用

2. 前置操作

docker pull pingcap/tikv:latest 
docker pull pingcap/pd:latest

mkdir -p /mnt/tikv/pd
mkdir -p /mnt/tikv/tikv

ip a 命令查看虚拟机ip
1fbf38fd-a38d-41f5-8b86-c4e7aa6d3280.png

ip 为:172.22.176.88下面启动docker容器时需要指定

3. 部署

参考 https://tikv.org/docs/4.0/tasks/deploy/docker/
pd:

docker run -d --name pd \
-p 2379:2379 \
-p 2380:2380 \
-v /etc/localtime:/etc/localtime:ro \
-v /mnt/tikv/pd:/data \
pingcap/pd:latest \
--name="pd" \
--data-dir="/data/pd" \
--client-urls="http://0.0.0.0:2379" \
--advertise-client-urls="http://172.22.176.88:2379" \
--peer-urls="http://0.0.0.0:2380" \
--advertise-peer-urls="http://172.22.176.88:2380" \
--initial-cluster="pd=http://172.22.176.88:2380"

tikv:

docker run -d --name tikv \
-p 20160:20160 \
-v /etc/localtime:/etc/localtime:ro \
-v /mnt/tikv/tikv:/data \
pingcap/tikv:latest \
--addr="0.0.0.0:20160" \
--advertise-addr="172.22.176.88:20160" \
--data-dir="/data/tikv" \
--pd="172.22.176.88:2379"

4. 服务验证:

curl 172.22.176.88:2379/pd/api/v1/stores
1f2b908c-f640-4712-8eda-0717c4d10ece.png

5. Java Client 使用

官方文档:
https://tikv.org/docs/7.1/develop/clients/java/
pom引入依赖

<dependency>
    <groupId>org.tikv</groupId>
    <artifactId>tikv-client-java</artifactId>
    <version>3.3.0</version>
</dependency>

test

import org.tikv.common.TiConfiguration;
import org.tikv.common.TiSession;
import org.tikv.kvproto.Kvrpcpb;
import org.tikv.raw.RawKVClient;
import org.tikv.shade.com.google.protobuf.ByteString;
import java.util.ArrayList;
import java.util.List;
import java.util.Optional;

public class Test {

    public static void main(String[] args) throws Exception {
        TiConfiguration conf = TiConfiguration.createRawDefault("172.22.176.88:2379");
        TiSession session = TiSession.create(conf);
        RawKVClient client = session.createRawClient();

        // put
        client.put(ByteString.copyFromUtf8("k1"), ByteString.copyFromUtf8("Hello"));
        client.put(ByteString.copyFromUtf8("k2"), ByteString.copyFromUtf8(","));
        client.put(ByteString.copyFromUtf8("k3"), ByteString.copyFromUtf8("World"));
        client.put(ByteString.copyFromUtf8("k4"), ByteString.copyFromUtf8("!"));
        client.put(ByteString.copyFromUtf8("k5"), ByteString.copyFromUtf8("Raw KV"));

        // get
        Optional<ByteString> result = client.get(ByteString.copyFromUtf8("k1"));
        System.out.println(result.get().toStringUtf8());

        // batch get
        List<Kvrpcpb.KvPair> list =client.batchGet(new ArrayList<ByteString>() {{
            add(ByteString.copyFromUtf8("k1"));
            add(ByteString.copyFromUtf8("k3"));
        }});
        System.out.println(list);

        // scan
        list = client.scan(ByteString.copyFromUtf8("k1"), ByteString.copyFromUtf8("k6"), 10);
        System.out.println(list);

        // close
        client.close();
        session.close();
    }

}

控制台输出:

Hello
[key: "k1"
value: "Hello"
, key: "k3"
value: "World"
]
[key: "k1"
value: "Hello"
, key: "k2"
value: ","
, key: "k3"
value: "World"
, key: "k4"
value: "!"
, key: "k5"
value: "Raw KV"
]
  • 5
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值