Cassandra multi-region clusters interconnect

I faced with problem due to connect two cassandra clusters placed in different datacenters. Each datacenter have public ip – lets assume there are 111.111.111.111 and 222.222.222.222. Cassandra nodes starts in docker contaners – 3 nodes in each cluster. The problem is clusters don’t see each other.

Here are docker-compose files for first cluster on host with ip 111.111.111.111

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
<code>version: '3.3'
services:
cass1:
image: cassandra
container_name: cass1
hostname: cass1
healthcheck:
test: ["CMD", "cqlsh", "-e", "describe keyspaces" ]
interval: 5s
timeout: 5s
retries: 60
networks:
- cassandra
ports:
- "9042:9042"
- "7000:7000"
environment: &environment
HEAP_NEWSIZE: 128M
MAX_HEAP_SIZE: 2048M
CASSANDRA_SEEDS: "cass1, cass2, 222.222.222.222”
CASSANDRA_CLUSTER_NAME: ks
CASSANDRA_DC: DC1
CASSANDRA_RACK: West
CASSANDRA_ENDPOINT_SNITCH: GossipingPropertyFileSnitch
CASSANDRA_NUM_TOKENS: 256
cass2:
image: cassandra
container_name: cass2
hostname: cass2
healthcheck:
test: ["CMD", "cqlsh", "-e", "describe keyspaces" ]
interval: 5s
timeout: 5s
retries: 60
networks:
- cassandra
ports:
- "9043:9042"
- "7001:7000"
environment: *environment
depends_on:
- cass1
cass3:
image: cassandra
container_name: cass3
hostname: cass3
healthcheck:
test: ["CMD", "cqlsh", "-e", "describe keyspaces" ]
interval: 5s
timeout: 5s
retries: 60
networks:
- cassandra
ports:
- "9044:9042"
- "7002:7000"
environment: *environment
depends_on:
- cass2
networks:
cassandra:
</code>
<code>version: '3.3' services: cass1: image: cassandra container_name: cass1 hostname: cass1 healthcheck: test: ["CMD", "cqlsh", "-e", "describe keyspaces" ] interval: 5s timeout: 5s retries: 60 networks: - cassandra ports: - "9042:9042" - "7000:7000" environment: &environment HEAP_NEWSIZE: 128M MAX_HEAP_SIZE: 2048M CASSANDRA_SEEDS: "cass1, cass2, 222.222.222.222” CASSANDRA_CLUSTER_NAME: ks CASSANDRA_DC: DC1 CASSANDRA_RACK: West CASSANDRA_ENDPOINT_SNITCH: GossipingPropertyFileSnitch CASSANDRA_NUM_TOKENS: 256 cass2: image: cassandra container_name: cass2 hostname: cass2 healthcheck: test: ["CMD", "cqlsh", "-e", "describe keyspaces" ] interval: 5s timeout: 5s retries: 60 networks: - cassandra ports: - "9043:9042" - "7001:7000" environment: *environment depends_on: - cass1 cass3: image: cassandra container_name: cass3 hostname: cass3 healthcheck: test: ["CMD", "cqlsh", "-e", "describe keyspaces" ] interval: 5s timeout: 5s retries: 60 networks: - cassandra ports: - "9044:9042" - "7002:7000" environment: *environment depends_on: - cass2 networks: cassandra: </code>
version: '3.3'

services:
  cass1:
    image: cassandra
    container_name: cass1
    hostname: cass1
    healthcheck:
        test: ["CMD", "cqlsh", "-e", "describe keyspaces" ]
        interval: 5s
        timeout: 5s
        retries: 60
    networks:
      - cassandra
    ports:
      - "9042:9042"
      - "7000:7000"
    environment: &environment
        HEAP_NEWSIZE: 128M
        MAX_HEAP_SIZE: 2048M
        CASSANDRA_SEEDS: "cass1, cass2, 222.222.222.222”
        CASSANDRA_CLUSTER_NAME: ks
        CASSANDRA_DC: DC1
        CASSANDRA_RACK: West
        CASSANDRA_ENDPOINT_SNITCH: GossipingPropertyFileSnitch
        CASSANDRA_NUM_TOKENS: 256

  cass2:
    image: cassandra
    container_name: cass2
    hostname: cass2
    healthcheck:
        test: ["CMD", "cqlsh", "-e", "describe keyspaces" ]
        interval: 5s
        timeout: 5s
        retries: 60
    networks:
      - cassandra
    ports:
      - "9043:9042"
      - "7001:7000"
    environment: *environment
    depends_on:
      - cass1

  cass3:
    image: cassandra
    container_name: cass3
    hostname: cass3
    healthcheck:
        test: ["CMD", "cqlsh", "-e", "describe keyspaces" ]
        interval: 5s
        timeout: 5s
        retries: 60
    networks:
      - cassandra
    ports:
      - "9044:9042"
      - "7002:7000"
    environment: *environment
    depends_on:
      - cass2

networks:
  cassandra:

And the second cluster on host with ip 222.222.222.222

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
<code>version: '3.3'
services:
cass1:
image: cassandra
container_name: cass1
hostname: cass1
healthcheck:
test: ["CMD", "cqlsh", "-e", "describe keyspaces" ]
interval: 5s
timeout: 5s
retries: 60
networks:
- cassandra
ports:
- "9042:9042"
- "7000:7000"
environment: &environment
HEAP_NEWSIZE: 128M
MAX_HEAP_SIZE: 2048M
CASSANDRA_SEEDS: "cass1, cass2, 111.111.111.111”
CASSANDRA_CLUSTER_NAME: ks
CASSANDRA_DC: DC2
CASSANDRA_RACK: East
CASSANDRA_ENDPOINT_SNITCH: GossipingPropertyFileSnitch
CASSANDRA_NUM_TOKENS: 256
cass2:
image: cassandra
container_name: cass2
hostname: cass2
healthcheck:
test: ["CMD", "cqlsh", "-e", "describe keyspaces" ]
interval: 5s
timeout: 5s
retries: 60
networks:
- cassandra
ports:
- "9043:9042"
- "7001:7000"
environment: *environment
depends_on:
- cass1
cass3:
image: cassandra
container_name: cass3
hostname: cass3
healthcheck:
test: ["CMD", "cqlsh", "-e", "describe keyspaces" ]
interval: 5s
timeout: 5s
retries: 60
networks:
- cassandra
ports:
- "9044:9042"
- "7002:7000"
environment: *environment
depends_on:
- cass2
networks:
cassandra:
</code>
<code>version: '3.3' services: cass1: image: cassandra container_name: cass1 hostname: cass1 healthcheck: test: ["CMD", "cqlsh", "-e", "describe keyspaces" ] interval: 5s timeout: 5s retries: 60 networks: - cassandra ports: - "9042:9042" - "7000:7000" environment: &environment HEAP_NEWSIZE: 128M MAX_HEAP_SIZE: 2048M CASSANDRA_SEEDS: "cass1, cass2, 111.111.111.111” CASSANDRA_CLUSTER_NAME: ks CASSANDRA_DC: DC2 CASSANDRA_RACK: East CASSANDRA_ENDPOINT_SNITCH: GossipingPropertyFileSnitch CASSANDRA_NUM_TOKENS: 256 cass2: image: cassandra container_name: cass2 hostname: cass2 healthcheck: test: ["CMD", "cqlsh", "-e", "describe keyspaces" ] interval: 5s timeout: 5s retries: 60 networks: - cassandra ports: - "9043:9042" - "7001:7000" environment: *environment depends_on: - cass1 cass3: image: cassandra container_name: cass3 hostname: cass3 healthcheck: test: ["CMD", "cqlsh", "-e", "describe keyspaces" ] interval: 5s timeout: 5s retries: 60 networks: - cassandra ports: - "9044:9042" - "7002:7000" environment: *environment depends_on: - cass2 networks: cassandra: </code>
version: '3.3'

services:
  cass1:
    image: cassandra
    container_name: cass1
    hostname: cass1
    healthcheck:
        test: ["CMD", "cqlsh", "-e", "describe keyspaces" ]
        interval: 5s
        timeout: 5s
        retries: 60
    networks:
      - cassandra
    ports:
      - "9042:9042"
      - "7000:7000"
    environment: &environment
        HEAP_NEWSIZE: 128M
        MAX_HEAP_SIZE: 2048M
        CASSANDRA_SEEDS: "cass1, cass2, 111.111.111.111”
        CASSANDRA_CLUSTER_NAME: ks
        CASSANDRA_DC: DC2
        CASSANDRA_RACK: East
        CASSANDRA_ENDPOINT_SNITCH: GossipingPropertyFileSnitch
        CASSANDRA_NUM_TOKENS: 256

  cass2:
    image: cassandra
    container_name: cass2
    hostname: cass2
    healthcheck:
        test: ["CMD", "cqlsh", "-e", "describe keyspaces" ]
        interval: 5s
        timeout: 5s
        retries: 60
    networks:
      - cassandra
    ports:
      - "9043:9042"
      - "7001:7000"
    environment: *environment
    depends_on:
      - cass1

  cass3:
    image: cassandra
    container_name: cass3
    hostname: cass3
    healthcheck:
        test: ["CMD", "cqlsh", "-e", "describe keyspaces" ]
        interval: 5s
        timeout: 5s
        retries: 60
    networks:
      - cassandra
    ports:
      - "9044:9042"
      - "7002:7000"
    environment: *environment
    depends_on:
      - cass2

networks:
  cassandra:

After startup each cluster is seeing only itself and doesn’t see other cluster. For example nodetool status output for 111.111.111.111

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
<code>Datacenter: DC1
===============
Status=Up/Down
|/ State=Normal/Leaving/Joining/Moving
-- Address Load Tokens Owns (effective) Host ID Rack
UN 172.18.0.4 108.81 KiB 256 60.1% 3ceecd38-0c30-4189-9a52-cb23465ca0ca West
UN 172.18.0.3 113.77 KiB 256 70.4% f1f6f63a-7cc5-4883-8b90-5159c6b6613c West
UN 172.18.0.2 108.74 KiB 256 69.5% 94395942-8efa-447b-9961-2d80375bce35 West
</code>
<code>Datacenter: DC1 =============== Status=Up/Down |/ State=Normal/Leaving/Joining/Moving -- Address Load Tokens Owns (effective) Host ID Rack UN 172.18.0.4 108.81 KiB 256 60.1% 3ceecd38-0c30-4189-9a52-cb23465ca0ca West UN 172.18.0.3 113.77 KiB 256 70.4% f1f6f63a-7cc5-4883-8b90-5159c6b6613c West UN 172.18.0.2 108.74 KiB 256 69.5% 94395942-8efa-447b-9961-2d80375bce35 West </code>
Datacenter: DC1
===============
Status=Up/Down
|/ State=Normal/Leaving/Joining/Moving
--  Address     Load        Tokens  Owns (effective)  Host ID                               Rack
UN  172.18.0.4  108.81 KiB  256     60.1%             3ceecd38-0c30-4189-9a52-cb23465ca0ca  West
UN  172.18.0.3  113.77 KiB  256     70.4%             f1f6f63a-7cc5-4883-8b90-5159c6b6613c  West
UN  172.18.0.2  108.74 KiB  256     69.5%             94395942-8efa-447b-9961-2d80375bce35  West

netcat show that another host is available

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
<code>nc -v 222.222.222.222 7000
Connection to 222.222.222.222 7000 port [tcp/*]
succeeded!
</code>
<code>nc -v 222.222.222.222 7000 Connection to 222.222.222.222 7000 port [tcp/*] succeeded! </code>
nc -v 222.222.222.222 7000
Connection to 222.222.222.222 7000 port [tcp/*]
succeeded!

No errors in cassandra logs.
Maybe is some missconfiguration happened? I tried to run 2 cluster on same host and it worked properly with intercommunication between clusters.
TY for answers.

New contributor

stroiker is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.

Trang chủ Giới thiệu Sinh nhật bé trai Sinh nhật bé gái Tổ chức sự kiện Biểu diễn giải trí Dịch vụ khác Trang trí tiệc cưới Tổ chức khai trương Tư vấn dịch vụ Thư viện ảnh Tin tức - sự kiện Liên hệ Chú hề sinh nhật Trang trí YEAR END PARTY công ty Trang trí tất niên cuối năm Trang trí tất niên xu hướng mới nhất Trang trí sinh nhật bé trai Hải Đăng Trang trí sinh nhật bé Khánh Vân Trang trí sinh nhật Bích Ngân Trang trí sinh nhật bé Thanh Trang Thuê ông già Noel phát quà Biểu diễn xiếc khỉ Xiếc quay đĩa Dịch vụ tổ chức sự kiện 5 sao Thông tin về chúng tôi Dịch vụ sinh nhật bé trai Dịch vụ sinh nhật bé gái Sự kiện trọn gói Các tiết mục giải trí Dịch vụ bổ trợ Tiệc cưới sang trọng Dịch vụ khai trương Tư vấn tổ chức sự kiện Hình ảnh sự kiện Cập nhật tin tức Liên hệ ngay Thuê chú hề chuyên nghiệp Tiệc tất niên cho công ty Trang trí tiệc cuối năm Tiệc tất niên độc đáo Sinh nhật bé Hải Đăng Sinh nhật đáng yêu bé Khánh Vân Sinh nhật sang trọng Bích Ngân Tiệc sinh nhật bé Thanh Trang Dịch vụ ông già Noel Xiếc thú vui nhộn Biểu diễn xiếc quay đĩa Dịch vụ tổ chức tiệc uy tín Khám phá dịch vụ của chúng tôi Tiệc sinh nhật cho bé trai Trang trí tiệc cho bé gái Gói sự kiện chuyên nghiệp Chương trình giải trí hấp dẫn Dịch vụ hỗ trợ sự kiện Trang trí tiệc cưới đẹp Khởi đầu thành công với khai trương Chuyên gia tư vấn sự kiện Xem ảnh các sự kiện đẹp Tin mới về sự kiện Kết nối với đội ngũ chuyên gia Chú hề vui nhộn cho tiệc sinh nhật Ý tưởng tiệc cuối năm Tất niên độc đáo Trang trí tiệc hiện đại Tổ chức sinh nhật cho Hải Đăng Sinh nhật độc quyền Khánh Vân Phong cách tiệc Bích Ngân Trang trí tiệc bé Thanh Trang Thuê dịch vụ ông già Noel chuyên nghiệp Xem xiếc khỉ đặc sắc Xiếc quay đĩa thú vị
Trang chủ Giới thiệu Sinh nhật bé trai Sinh nhật bé gái Tổ chức sự kiện Biểu diễn giải trí Dịch vụ khác Trang trí tiệc cưới Tổ chức khai trương Tư vấn dịch vụ Thư viện ảnh Tin tức - sự kiện Liên hệ Chú hề sinh nhật Trang trí YEAR END PARTY công ty Trang trí tất niên cuối năm Trang trí tất niên xu hướng mới nhất Trang trí sinh nhật bé trai Hải Đăng Trang trí sinh nhật bé Khánh Vân Trang trí sinh nhật Bích Ngân Trang trí sinh nhật bé Thanh Trang Thuê ông già Noel phát quà Biểu diễn xiếc khỉ Xiếc quay đĩa
Thiết kế website Thiết kế website Thiết kế website Cách kháng tài khoản quảng cáo Mua bán Fanpage Facebook Dịch vụ SEO Tổ chức sinh nhật