cassandra 笔记,学了点点记录下,分享下

首先导入pom,这是datastax的驱动,很好用。spring

<dependency>
    <groupId>com.datastax.cassandra</groupId>
    <artifactId>cassandra-driver-mapping</artifactId>
    <version>3.0.2</version>
</dependency>

 

创建session链接:session

PoolingOptions poolingOptions = new PoolingOptions();
poolingOptions
        .setConnectionsPerHost(HostDistance.LOCAL, 4, 10)
        .setConnectionsPerHost(HostDistance.REMOTE, 2, 4)
        .setMaxRequestsPerConnection(HostDistance.LOCAL, 32768)
        .setMaxRequestsPerConnection(HostDistance.REMOTE, 2000)
        .setHeartbeatIntervalSeconds(60);

cluster = Cluster.builder()
        .addContactPoint(address)
        .withPoolingOptions(poolingOptions)
        .build();

Metadata metadata = cluster.getMetadata();
for (Host host : metadata.getAllHosts()) {
    log.info("Data center: " + host.getDatacenter() + "; Host: " + host.getAddress() + "; Rack: " + host.getRack());
}
session = cluster.connect();

对于model类的创建好像官网没提示多个PartitionKey怎么写,我也是猜出来的:app

@PartitionKey 后面的0 -5表明查询时参数依次添加,不标明的话用mapper查询会报错ui

,原文:spa

Ordinal to add when the partition key has multiple components.
@Table(keyspace = "wumartcluster", name = "table_name")
public class TestClass{

    @PartitionKey(0)
    private Long exe_id;

    @PartitionKey(1)
    private String promo_plan;

    @PartitionKey(2)
    private String mandt;

    @PartitionKey
    private Date execute_by_date;

    @PartitionKey(4)
    private String shops_no;

    @PartitionKey(5)
    private String goods_no;

    private Date start_date;

}日志

 

今天补充一点,datastax 的 Mapper 只初始化一次就行,否则会不停的报warn日志警告component

Mapper<ObjectBean> mapper ;
if (mapper == null) {
    mapper = cassandraClient.getMapper(ObjectBean.class);
}

这里本身写个单例模式就好了,或者springMVC整合,很少说。ip

相关文章
相关标签/搜索