/ / Viacregionové uzly Cassandra 2.0 - Amazon-EC2, Cassandra-2.0

Rozhranie Cassandra 2.0 - viaceré oblasti - amazon-ec2, cassandra-2.0

snažíme sa nastaviť multiregionálny klaster Cassandra na ec2. Naša konfigurácia vyzerá takto

5 uzlov každý na nás-východ-1a, nás-východ-1b, nás-východ-1c, nás-západ-1a. Za týmto účelom sme upravili súbor cassandra-rackdc.properties.

príslušné použitie súboru GossipingPropertyFileSnitch a upraveného súboru cassandra.yaml

používame všetkých 20 verejných ips na konfiguráciu semien v súbore cassandra.yaml

Zaznamenali sme vlastnosť listen_address a rpc_address, takže Cassandra predvolene používa InetAddress.getLocalHost()

Odvolili sme adresu vysielania, aby sme mohli používať verejnú IP

upravili sme súbor agentov address.yaml tak, aby používal verejnú IP adresu pre vlastnosti stomp_interface a local_interface

Uzly začíname jeden po druhom s medzipriestorovou prestávkou 3 minúty.

Problém:

  1. Pri použití opscentra. Zobrazuje iba jeden uzol v klastri

  2. príkaz "nodetool status" tiež zobrazuje iba jeden uzol

  3. Pri použití príkazu cql sa zobrazia všetci jeho kolegovia

Akú chybu robíme?

odpovede:

4 pre odpoveď č. 1

Robím niečo podobné ako proof-of-concept. Mám funkčný klaster s dvoma regiónmi. Tu sú veci, ktoré som urobil inak, po prečítaní vašej otázky:

  1. Použil som Ec2MultiRegionSnitch, ktorý je navrhnutý na spracovanie verejných a súkromných adries IP v EC2.V AWS, Elastická IP nie je viazaná na rozhranie inštanciou a to spôsobuje problémy s komunikáciou klastra.
  2. v cassandra.yaml som nechal súkromnú IP adresu listen_address.
  3. tiež nastavte rpc_address na 0.0.0.0
  4. odkomentujte broadcast_address a nastavte ju na verejnú IP (ako ste to urobili vy).
  5. nastavil som dc_suffix v súbore cassandra-rackdc.properties a nekomentoval prefer_local = true (vo vnútri regiónu bude Cassandra uprednostňovať použitie súkromných IP adries).
  6. Otvoril som bezpečnostné skupiny pre Cassandru, aby tcp porty 7000 a 7001 mohli hovoriť medzi uzlami v 2 rôznych regiónoch. Opscenter používa porty 61620 a 61621.
  7. Všetky uzly majú rovnaký názov klastra.
  8. počiatočné adresy IP sú nastavené na verejné adresy IP. Nepoužíval som všetky uzly ako semená, to sa neodporúča.
  9. Začnite najskôr semenami, potom nasledujú ďalšie uzly.

To poskytlo funkčný klaster. Teraz pracujem na tom ssl uzla k uzlu komunikácia medzi regiónmi.