在Tair入门教程(1):Tair介绍我们介绍了Tair的主要功能和使用场景,以及其架构和各部分组件的作用。
在Tair入门教程(2):Tair环境搭建中我们搭建好了Tair的服务器环境。
接下来就是编写实际的应用代码了。本文给出了一个小demo,以供学习。详细的项目可以参见github源代码。
构建maven项目
首先构建MAVEN项目,导入所需要的jar包依赖
需要导入的有tair-client等jar包。
编写客户端程序
直接给我示例demo,很容易理解
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());
}
}
}
运行结果
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通。否则有可能会报下面这样的错误:
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)