cassandra 安装

# 获取镜像
docker pull cassandra
# 运行
docker run -d --name cassandra cassandra:latest -p 9402:9402
# 进入容器
docker exec -it cassandra bash

# 更新apt-get 并安装vim
apt-get update

apt-get install vim -y

# 进入数据库
cqlsh
# 修改集群名称
UPDATE system.local SET cluster_name = 'cass_cluster' where key='local';

# 修改完成,退出
exit
# 修改配置文件
vim /etc/cassandra/cassandra.yaml

# 集群名称
cluster_name:cass_cluster
# 修改集群ip
seeds: "127.0.0.1,127.0.0.2,127.0.0.3"

保存退出重启容器
docker restart cassandra

创建集群失败 , docker集群跑不起来 , 最后使用yum 方式安装集群启动成功

下载地址

 

cassandra示例

Eugene Valchkou  方式处理业务

 <dependency>
    <groupId>com.valchkou.datastax</groupId>
    <artifactId>cassandra-driver-mapping</artifactId>
</dependency>
<dependency>
    <groupId>com.codahale.metrics</groupId>
    <artifactId>metrics-servlets</artifactId>
</dependency>

配置文件 

package com.wdz.cassandra.config;

import com.datastax.driver.core.Cluster;
import com.datastax.driver.core.PlainTextAuthProvider;
import com.datastax.driver.core.Session;
import com.datastax.driver.mapping.MappingSession;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
@ConfigurationProperties(prefix = "spring.data.cassandra")
public class CassandraConfig {

    private String clusterName;
    private String keyspaceName;
    private String username;
    private String password;
    private int port;
    private String contactPoints;
    private String consistencyLevel;


    @Bean
    public Cluster cluster() {
        Cluster build = Cluster.builder()
                .withCredentials(username,password)
                .withPort(port)
                .withClusterName(clusterName)
                .addContactPoints(contactPoints)
                .withAuthProvider(authProvider())
                .build();
        return build;

    }
    @Bean
    public PlainTextAuthProvider authProvider() {
        return new PlainTextAuthProvider(username,password);
    }

    @Bean
    public Session session(Cluster cluster) {
        // initialize datastax session.
        Session session = cluster.connect();
        return session;
    }

    @Bean
    public MappingSession mappingSession() {
        MappingSession session = new MappingSession(keyspaceName, session(cluster()));
        return session;
    }

    public String getClusterName() {
        return clusterName;
    }

    public void setClusterName(String clusterName) {
        this.clusterName = clusterName;
    }

    public String getKeyspaceName() {
        return keyspaceName;
    }

    public void setKeyspaceName(String keyspaceName) {
        this.keyspaceName = keyspaceName;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public int getPort() {
        return port;
    }

    public void setPort(int port) {
        this.port = port;
    }

    public String getContactPoints() {
        return contactPoints;
    }

    public void setContactPoints(String contactPoints) {
        this.contactPoints = contactPoints;
    }

    public String getConsistencyLevel() {
        return consistencyLevel;
    }

    public void setConsistencyLevel(String consistencyLevel) {
        this.consistencyLevel = consistencyLevel;
    }
}

domain

package com.wdz.cassandra.domian;


import javax.persistence.Column;
import javax.persistence.Id;
import javax.persistence.Table;

/**
 * demo
 */
@Table(name = "device_locus")
public class DeviceLocus {
    @Id
    private String device_key;

    @Column
    private Long timez;
    @Column
    private String latitude;
    @Column
    private String longitude;
    /**
     * 设备经纬度
     */
    @Column
    private String device_gps;
    /**
     * 设备时间戳
     */
    @Column
    private Long device_timez;

    @Column
    private Integer course;
    @Column
    private Float speed;

    public DeviceLocus() {
    }

    public DeviceLocus(String device_key, Long timez, String latitude, String longitude, Integer course, Float speed, String device_gps, Long device_timez) {
        this.device_key = device_key;
        this.timez = timez;
        this.latitude = latitude;
        this.longitude = longitude;
        this.course = course;
        this.speed = speed;
        this.device_gps = device_gps;
        this.device_timez = device_timez;
    }

    public DeviceLocus(String device_key, Long timez, String latitude, String longitude) {
        this.device_key = device_key;
        this.timez = timez;
        this.latitude = latitude;
        this.longitude = longitude;
    }

    public String getDevice_key() {
        return device_key;
    }

    public void setDevice_key(String device_key) {
        this.device_key = device_key;
    }

    public long getTimez() {
        return timez;
    }

    public void setTimez(long timez) {
        this.timez = timez;
    }

    public String getLatitude() {
        return latitude;
    }

    public void setLatitude(String latitude) {
        this.latitude = latitude;
    }

    public String getLongitude() {
        return longitude;
    }

    public void setLongitude(String longitude) {
        this.longitude = longitude;
    }

    public String getDevice_gps() {
        return device_gps;
    }

    public void setDevice_gps(String device_gps) {
        this.device_gps = device_gps;
    }

    public Long getDevice_timez() {
        return device_timez;
    }

    public void setDevice_timez(Long device_timez) {
        this.device_timez = device_timez;
    }

    public Integer getCourse() {
        return course;
    }

    public void setCourse(Integer course) {
        this.course = course;
    }

    public Float getSpeed() {
        return speed;
    }

    public void setSpeed(Float speed) {
        this.speed = speed;
    }

    @Override
    public String toString() {
        return "DeviceLocus{" +
                "device_key='" + device_key + '\'' +
                ", timez=" + timez +
                ", latitude='" + latitude + '\'' +
                ", longitude='" + longitude + '\'' +
                ", device_gps='" + device_gps + '\'' +
                ", device_timez=" + device_timez +
                ", course=" + course +
                ", speed=" + speed +
                '}';
    }
}

package com.wdz.cassandra;

import com.datastax.driver.mapping.MappingSession;
import com.wdz.cassandra.domian.DeviceLocus;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;


@SpringBootTest
class CassandraBootApplicationTests {

	@Autowired
	private MappingSession mappingSession;

	@Test
	void contextLoads() {
		DeviceLocus deviceLocus = new DeviceLocus("8655", System.currentTimeMillis(), "34.22222", "123.123123");
//		demoService.insert(deviceLocus);
		mappingSession.save(deviceLocus);
		System.out.println("================");
	}

}

server:
  port: 8888
spring:
  data:
    cassandra:
      clusterName: Test Cluster
      keyspaceName: test
      username: test
      password: test
      port: 9042
      contactPoints: 12.3.45.6
      consistencyLevel: ONE

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值