Cassandra 的简单的介绍
Cassandra是一个开源分布式NoSQL数据库系统。
特点
- 本身不是一个数据库,而是有一堆数据库节点共同构成的一个分布式网络服务,对一个 Cassandra 的写操作,会被复制到其他节点上去,对 Cassandra 的读操作,也会被路由到某个节点上面去读取。
- 易于水平扩展。只要添加节点就行
- 是一个面向列的数据库,不向传统结构式数据库是用表来模拟关系。其实就是 Map 的嵌套
这里我们使用 Docker 部署一个 Cassandra 的集群环境。
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
| version: '3' services: cassandra-1: image: cassandra:3.11.7 container_name: cassandra-1 volumes: - /opt/module/docker-compose/cassandra.yaml:/opt/cassandra/conf/cassandra.yaml - /data/cassandra-cluster/cassandra-1/cassandra:/var/lib/cassandra environment: - CASSANDRA_BROADCAST_ADDRESS=cassandra-1 ports: - "7000:7000" - "9042:9042" restart: always cassandra-2: image: cassandra:3.11.7 container_name: cassandra-2 volumes: - /opt/module/docker-compose/cassandra.yaml:/opt/cassandra/conf/cassandra.yaml - /data/cassandra-cluster/cassandra-2/cassandra:/var/lib/cassandra environment: - CASSANDRA_BROADCAST_ADDRESS=cassandra-2 - CASSANDRA_SEEDS=cassandra-1 ports: - "7001:7000" - "9043:9042" depends_on: - cassandra-1 restart: always cassandra-3: image: cassandra:3.11.7 container_name: cassandra-3 volumes: - /opt/module/docker-compose/cassandra.yaml:/opt/cassandra/conf/cassandra.yaml - /data/cassandra-cluster/cassandra-3/cassandra:/var/lib/cassandra environment: - CASSANDRA_BROADCAST_ADDRESS=cassandra-3 - CASSANDRA_SEEDS=cassandra-1 ports: - "7002:7000" - "9044:9042" depends_on: - cassandra-2 restart: always
|
说明
- CASSANDRA_BROADCAST_ADDRESS: 控制向其他节点播发哪个IP地址
- CASSANDRA_SEEDS:这个变量是用逗号分隔的IP地址列表,gossip 用来引导加入集群的新节点。
常用端口
- 7199 - JMX(8080 pre Cassandra 0.8.xx)
- 7000 - 节点间通信(如果启用了TLS,则不使用)
- 7001 - TLS节点间通信(使用TLS时使用)
- 9160 - Thrift客户端API
- 9042 - CQL本地传输端口