创建一个单节点和多节点的Cassandra集群实例

382 阅读1分钟

你可以使用下面的例子来创建一个单节点和多节点的Cassandra集群。

单一节点

version: "3.7"

services:

  blog-cassandra:
    image: "cassandra:3.11.9"
    container_name: "blog-cassandra"
    ports:
      - "9042:9042"
    environment:
      - "MAX_HEAP_SIZE=256M"
      - "HEAP_NEWSIZE=128M"

容器

      Name                   Command               State                               Ports
------------------------------------------------------------------------------------------------------------------------
blog-cassandra   docker-entrypoint.sh cassa ...   Up      7000/tcp, 7001/tcp, 7199/tcp, 0.0.0.0:9042->9042/tcp, 9160/tcp

Nodetool状态

$ docker exec -it blog-cassandra nodetool status

Datacenter: datacenter1
=======================
Status=Up/Down
|/ State=Normal/Leaving/Joining/Moving
--  Address     Load       Tokens       Owns (effective)  Host ID                               Rack
UN  172.24.0.2  70.68 KiB  256          100.0%            f0011962-19e0-488e-9f4f-cb25481ef7aa  rack1

多节点

version: "3.7"

services:

  cassandra-1:
    image: "cassandra:3.11.9"
    container_name: "cassandra-1"
    ports:
      - "9042:9042"
    environment:
      - "MAX_HEAP_SIZE=256M"
      - "HEAP_NEWSIZE=128M"
      - "CASSANDRA_SEEDS=cassandra-1,cassandra-2"

  cassandra-2:
    image: "cassandra:3.11.9"
    container_name: "cassandra-2"
    environment:
      - "MAX_HEAP_SIZE=256M"
      - "HEAP_NEWSIZE=128M"
      - "CASSANDRA_SEEDS=cassandra-1,cassandra-2"
    depends_on:
      - "cassandra-1"

  cassandra-3:
    image: "cassandra:3.11.9"
    container_name: "cassandra-3"
    environment:
      - "MAX_HEAP_SIZE=256M"
      - "HEAP_NEWSIZE=128M"
      - "CASSANDRA_SEEDS=cassandra-1,cassandra-2"
    depends_on:
      - "cassandra-2"

容器

      Name                  Command               State                               Ports
---------------------------------------------------------------------------------------------------------------------
cassandra-1   docker-entrypoint.sh cassa ...   Up      7000/tcp, 7001/tcp, 7199/tcp, 0.0.0.0:9042->9042/tcp, 9160/tcp
cassandra-2   docker-entrypoint.sh cassa ...   Up      7000/tcp, 7001/tcp, 7199/tcp, 9042/tcp, 9160/tcp
cassandra-3   docker-entrypoint.sh cassa ...   Up      7000/tcp, 7001/tcp, 7199/tcp, 9042/tcp, 9160/tcp

Nodetool状态

$ docker exec -it cassandra-1 nodetool status
$ docker exec -it cassandra-2 nodetool status
$ docker exec -it cassandra-3 nodetool status

Datacenter: datacenter1
=======================
Status=Up/Down
|/ State=Normal/Leaving/Joining/Moving
--  Address     Load       Tokens       Owns (effective)  Host ID                               Rack
UN  172.25.0.3  75.74 KiB  256          66.9%             bf167974-7248-49d5-b60e-55988af5e9ef  rack1
UN  172.25.0.2  90 KiB     256          65.2%             803da76a-41cb-415d-8acb-11cc7f7b6f69  rack1
UN  172.25.0.4  90.01 KiB  256          67.8%             51d21a7c-c65c-470a-8deb-2065b0bd2b67  rack1