Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Info

Akka의 장애허용시스템을 이해하고 활용하기 위한 관련 자료정리~장애를 허용하지 않는 시스템은 장애 허용개념이 고려되지 않은 시스템을 의미합니다.
장애 허용은 장애를 허용하겠다란 의미보다 장애를 시스템의 일부의 개념으로 고려하고
처리하겠다란 의미이며, Akka 장애허용과 관련된 자료를 정리해보았습니다.


장애허용시스템 - 위키피디아

...

링크 : https://ko.wikipedia.org/wiki/%EC%9E%A5%EC%95%A0_%ED%97%88%EC%9A%A9_%EC%8B%9C%EC%8A%A4%ED%85%9C

결함 감내 시스템(Fault tolerant system)은 시스템을 구성하는 부품의 일부에서 결함(fault) 또는 고장(failure)이 발생하여도 정상적 혹은 부분적으로 기능을 수행할 수 있는 시스템이다. 결함감내 시스템은 부품의 고장이 발생하면 부분적인 기능을 사용할 수 없게되며, 계속적으로 부품의 결함이나 고장이 발생하면 점진적으로 사용할 수 없는 기능이 증가하며, 치명적인 결함이나 고장이 발생하면 시스템이 정지한다. 이런 측면에서 결함감내 시스템은 graceful degradation (단계별 성능저하) 특징이 있다. 장애 허용 개념이 고려되지 않은 일반 시스템에서는 부품에서 사소한 결함이나 고장이 발생해도 시스템의 동작이 정지된다.

> 이중화(Fault-tolerance by replication) 시스템도, 장애 허용시스템 전략중 하나입니다.

...

  • 부모가 자식의 생성을 책임진다. - 호출자에게 책임을 떠넘기는 구조가아닌, 부모가 책임을 지는 구조입니다.
  • 자식이 잘못 되었을때, 부모 즉 감독자가 알수있다. -모니터링
  • 부모는 자식의 생성방법(생성자의 옵션)을 알고 있기때문에, 자식를 생성할수 있는 정보를 가지고 있습니다. - 계층구조 


장애처리 전략 분리

...

AkkaSystem의 Actor는 부모가 자식을 생성하는 , 계층(hierarchies) 구조로 자식노드의 관리감독이 가능합니다.
샘플코드 : https://getakka.net/articles/actors/fault-tolerance.html

장애복구 전략은, 도메인 기능이 정지될때 어느정도의 영향도가 있냐에 따라 각각 다른 복구 전략을 선택할수 있습니다.

OneForOne / RestForOne

AllForOne

Image Modified

Image Modified

하나가 망가져도 나머지가 그 역활을 하는경우( 또는 하나가 망가지면 그역활을 할수
있는 녀석이 없는경우)

  • 그냥 놔둔다. ( 그 역활을 할수 있는 녀석이 있는 경우 )
  • c1죽은 기능을 살리려노력한다. ( 없는 경우 )

하나라도 망가지면 완전한 역활을 못하는경우

  • c3죽은 기능을 살리려 부분 노력한다.
  • b3 하위 전체를 리셋한다.


장애처리 코드 샘플

예외의 종류에따라, 복구(재개,재시작,중지,탈출) 전략 선택가능

...