Tair入门教程(3):使用demo

Tair入门教程(1):Tair介绍我们介绍了Tair的主要功能和使用场景,以及其架构和各部分组件的作用。

Tair入门教程(2):Tair环境搭建中我们搭建好了Tair的服务器环境。

接下来就是编写实际的应用代码了。本文给出了一个小demo,以供学习。详细的项目可以参见github源代码

构建maven项目

首先构建MAVEN项目,导入所需要的jar包依赖

需要导入的有tair-client等jar包。

编写客户端程序

直接给我示例demo,很容易理解

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
package com.winsky;

import com.taobao.tair.DataEntry;
import com.taobao.tair.Result;
import com.taobao.tair.ResultCode;
import com.taobao.tair.impl.DefaultTairManager;

import java.util.ArrayList;
import java.util.List;

/**
* author: winsky
* date: 2018/5/16
* description:
*/
public class TairClientTest {
public static void main(String[] args) {
// 创建config server列表
List<String> confServers = new ArrayList<>();
confServers.add("172.17.68.153:5198");
// confServers.add("10.10.7.144:51980"); // 可选

// 创建客户端实例
DefaultTairManager tairManager = new DefaultTairManager();
tairManager.setConfigServerList(confServers);

// 设置组名
tairManager.setGroupName("group_1");
// 初始化客户端
tairManager.init();

// put 10 items
for (int i = 0; i < 10; i++) {
// 第一个参数是namespace,第二个是key,第三是value,第四个是版本,第五个是有效时间
ResultCode result = tairManager.put(0, "k" + i, "v" + i, 0, 10);
System.out.println("put k" + i + ":" + result.isSuccess());
System.out.println(result.getMessage());
if (!result.isSuccess())
break;
}

// get one
// 第一个参数是namespce,第二个是key
Result<DataEntry> result = tairManager.get(0, "k3");
System.out.println("get:" + result.isSuccess());
if (result.isSuccess()) {
DataEntry entry = result.getValue();
if (entry != null) {
// 数据存在
System.out.println("value is " + entry.getValue().toString());
} else {
// 数据不存在
System.out.println("this key doesn't exist.");
}
} else {
// 异常处理
System.out.println(result.getRc().getMessage());
}
}
}

运行结果

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
log4j:WARN No appenders could be found for logger (com.taobao.tair.impl.ConfigServer).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
put k0:true
put k1:true
put k2:true
put k3:true
put k4:true
put k5:true
put k6:true
put k7:true
put k8:true
put k9:true
get:true
value is v3

注意事项:测试如果不是在config server或data server上进行,那么一定要确保测试端系统与config server和data server能互相通信,即ping通。否则有可能会报下面这样的错误:

1
2
3
Exception in thread "main" java.lang.RuntimeException: init config failed
at com.taobao.tair.impl.DefaultTairManager.init(DefaultTairManager.java:80)
at tair.client.TairClientTest.main(TairClientTest.java:27)