Cassandra 的簡單的介紹
Cassandra是一個開源分布式NoSQL資料庫系統。
特點
- 本身不是一個資料庫,而是有一堆資料庫節點共同構成的一個分布式網絡服務,對一個 Cassandra 的寫操作,會被複制到其他節點上去,對 Cassandra 的讀操作,也會被路由到某個節點上面去讀取。
- 易于水準擴充。隻要添加節點就行
-
是一個面向列的資料庫,不向傳統結構式資料庫是用表來模拟關系。其實就是 Map 的嵌套
這裡我們使用 Docker 部署一個 Cassandra 的叢集環境。
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本地傳輸端口