Page History
Info |
---|
RemoteActor와 Router을 통해서 노드수가 고정된 분산 어플리케이션을 만드는 방법을 알게되었습니다. 하지만 이것만으로 충분하지 못합니다. 운영중 노드개수를 유연하게 조정하거나 부분장애발생시 전체시스템에 영향이 없는 시스템이 필요로하게되며 감시하고 제어할수 있는 그러한 환경이필요하게됩니다. 그것이 Cluster이며 Cluster를 소개하는 가장 좋은 방법은 Cluster가 해야할 역할에대해 간략하게 소개하는것입니다. |
Cluster의 역할
- 구성 변경없이 새노드를 자동으로 검색하고 추가하며, 죽은 노드를 자동으로 제거함
- 클러스터의 노드 가용성 변화에 대한 알림을 구독할수 있게함있게 제공함
- 다양한 라우터를 지원하는 '역할' 할당으로 성능 분산에 대비하며 각각은 다른 성능 전략을 세울수 있습니다.
...
위 과정에서 반대의 과정, 즉 C가 해당 노드에서 의도적이든 아니든(장애) 해당노드에서 사라지게 되면
'C가 칼퇴했어~ 나쁜놈퇴근을 했대' 이란 란 잡담과정을 거치면서 , 모든 노드가 C가 사라짐을 알게되며
...
역활에 지정된 라우터가 라운드 로빈이면, C를 제외하고 순차 작동이되고 브로드 캐스팅이라고 하면 C를 제외하고
전체 메시지를 보내게 될것입니다.
Seed Node
새로운 노드가 클러스터에 합류하고, 다른 모든노드도 공유가 필요할시
시드노드가 필요하며 주소처를 알아야합니다. 시드노드는 모든 노드의 연락처가 담겨있으며
공유(Gossip)를 시도합니다.
Info |
---|
업데이트 시나리오에서 모든 SeedNode가 교체되어 Down이 되어야하는경우 위에서 설명한 Gossip(잡담)이 멈출수 어서, 이후에 가입한 새로운 노드가 인식이 안될수도 있습니다. 즉 업데이트 순서를 고려하여, 노드를 내리고 올려야되는 단점이 있으며 이럴경우 기능이 없고 등대역활만 하는 시드노드를 사용하여 시드노드 Downd없이 업데이트 상황에 대처할수 있습니다. 추가로 시드노드는 다수개 설정이 가능합니다. 현재는 이러한게 있다라고만 인지하고 넘어가겠습니다. |
...
등대역활을 하는 Seed설계방법 : LightHouse Kafka를 사용해보셨다면, 등대는 Zookeeper가 가진 기능중 하나의 역활을 합니다. 동물사육사(zooKeeper)는 모든 동물들의 상태를 관리합니다. 아파치의 분산메시지 시스템및 저장시스템이이 모두 동물이름이란것입니다. |