docker-compose로 Cassandra 노드 3개로 클러스터를 구축해본다.
docker-compose.yml
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 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 | version: '3.9' services: cassandra-db-node1: image: cassandra:4.0 container_name: cassandra-db-node1 ports: - "9042:9042" expose: - "9042" restart: always extra_hosts: - 'host.docker.internal:host-gateway' environment: - TZ=Asia/Seoul - CASSANDRA_CLUSTER_NAME=DbCluster - CASSANDRA_ENDPOINT_SNITCH=GossipingPropertyFileSnitch - CASSANDRA_DC=dbCentre networks: - dbeaver mem_limit: "2.5g" cassandra-db-node2: image: cassandra:4.0 container_name: cassandra-db-node2 ports: - "9043:9042" expose: - "9042" restart: always extra_hosts: - 'host.docker.internal:host-gateway' environment: - TZ=Asia/Seoul - CASSANDRA_SEEDS=cassandra-db-node1 - CASSANDRA_CLUSTER_NAME=DbCluster - CASSANDRA_ENDPOINT_SNITCH=GossipingPropertyFileSnitch - CASSANDRA_DC=dbCentre networks: - dbeaver depends_on: - cassandra-db-node1 mem_limit: "2.5g" cassandra-db-node3: image: cassandra:4.0 container_name: cassandra-db-node3 ports: - "9044:9042" expose: - "9042" restart: always extra_hosts: - 'host.docker.internal:host-gateway' environment: - TZ=Asia/Seoul - CASSANDRA_SEEDS=cassandra-db-node1 - CASSANDRA_CLUSTER_NAME=DbCluster - CASSANDRA_ENDPOINT_SNITCH=GossipingPropertyFileSnitch - CASSANDRA_DC=dbCentre networks: - dbeaver depends_on: - cassandra-db-node1 mem_limit: "2.5g" networks: dbeaver: driver: bridge | cs |
Cassandra 컨테이너 구동 시 default로 heap 메모리 사이즈가 2G로 최초 구동시 mem_limit은 최소 2g는 넘어야 안정적으로 돌아간다.
'docker-compose up -d' 명령어로 컨테이너 3개를 구동한다.
'docker ps' 명령어로 노드 3개 컨테이너가 제대로 떠 있는지 확인.
'docker exec' 명령어로 노드 1에 접속한다.
1 | docker exec -it cassandra-db-node1 cqlsh | cs |
keyspace와 table을 생성하고, 데이터까지 insert 해본다.
노드 2에 접속하여 데이터가 제대로 샤딩되었나 확인한다.



댓글 없음:
댓글 쓰기