datastax java_如何使用Datastax Java驱动程序的异步/批量写入功能

我打算使用Datastax Java驱动程序写入Cassandra ..我主要对Datastax java驱动程序的 Batch Writes 和 Asycnhronous 功能感兴趣,但我无法获得任何可以解释如何在我的下面的代码中包含这些功能的教程 . 使用Datastax Java驱动程序..

/**

* Performs an upsert of the specified attributes for the specified id.

*/

public void upsertAttributes(final String userId, final Map attributes, final String columnFamily) {

try {

// make a sql here using the above input parameters.

String sql = sqlPart1.toString()+sqlPart2.toString();

DatastaxConnection.getInstance();

PreparedStatement prepStatement = DatastaxConnection.getSession().prepare(sql);

prepStatement.setConsistencyLevel(ConsistencyLevel.ONE);

BoundStatement query = prepStatement.bind(userId, attributes.values().toArray(new Object[attributes.size()]));

DatastaxConnection.getSession().execute(query);

} catch (InvalidQueryException e) {

LOG.error("Invalid Query Exception in DatastaxClient::upsertAttributes "+e);

} catch (Exception e) {

LOG.error("Exception in DatastaxClient::upsertAttributes "+e);

}

}

在下面的代码中,我使用Datastax Java驱动程序创建了与Cassandra节点的连接 .

/**

* Creating Cassandra connection using Datastax Java driver

*

*/

private DatastaxConnection() {

try{

builder = Cluster.builder();

builder.addContactPoint("some_nodes");

builder.poolingOptions().setCoreConnectionsPerHost(

HostDistance.LOCAL,

builder.poolingOptions().getMaxConnectionsPerHost(HostDistance.LOCAL));

cluster = builder

.withRetryPolicy(DowngradingConsistencyRetryPolicy.INSTANCE)

.withReconnectionPolicy(new ConstantReconnectionPolicy(100L))

.build();

StringBuilder s = new StringBuilder();

Set allHosts = cluster.getMetadata().getAllHosts();

for (Host h : allHosts) {

s.append("[");

s.append(h.getDatacenter());

s.append(h.getRack());

s.append(h.getAddress());

s.append("]");

}

System.out.println("Cassandra Cluster: " + s.toString());

session = cluster.connect("testdatastaxks");

} catch (NoHostAvailableException e) {

e.printStackTrace();

throw new RuntimeException(e);

} catch (Exception e) {

}

}

任何人都可以帮助我如何将批量写入或异步功能添加到我的上述代码..感谢您的帮助..

我正在运行Cassandra 1.2.9

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值