You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 21 Next »

AKKA와 관련된 인터넷 리소스를 참고하여

AKKA 개념을 쉽게 설명하고 한글로 카테고리화하는데 목적이 있는 문서페이지입니다.

Akka.net(C#)인 코드베이스로 테스트하며 작성예정이지만, 상황에따라 스칼라/자바 코드등이 언급될수도 있습니다.

AKKA/ACTOR를 이용한 동시성/분산처리 기법은 언어에 종속적이지 않다것이며

최종골은 AKKa의 컨셉을 이해하고, 이를 적용함으로 이제것 하지 못한것에 대한 개발 스택을 쌓는데 있습니다.

Akka

Akka는 오픈 소스 툴킷으로 동시성과 분산 애플리케이션을 단순화하는 런타임이다. 

동시성을 위한 여러 프로그래밍 모델을 지원하며, Erlang으로부터 영향을 받아 actor기반의 동시성이 두드러진다.

Akka는 Java환경및 .net Framework에서 개발가능하다.  

  • Akka for JVM ( Java/Scala)
  • Akka.Net ( C# )

번외 - MS Orleans ( https://dotnet.github.io/orleans/ ) : MS에서도 Actor의 장점을 인지했는지?

Microsoft. 네임스페이스에 포함되기 시작했으며  다음 .net framework에는 기본 탑재될것으로 예상해봅니다.( 항상 틀리는 저의 개인적 예상)

MS Orleans에서 언급되는 스택이 AKKA에서 언급되는 스택의 범위가 유사합니다. .NET환경에서만 Actor모델을 사용하고 싶으면 Orleans만 사용해되도 무방하지만

Java(JVM) ↔ C#(CRM) 환경을 넘나들기위해서는 개인적으로 AKKA를 추천합니다.


특징

  • 동시성은 메시지 기반이며 비동기 방식으로 이루어진다: 일반적으로 변형 가능한 데이터를 공유하거나 동기화되는 primitive를 사용해서는 안됩니다: Akka는 액터 모델을 구현한다. ( 객체 공유는 죽음의 칵테일과 같다라고 비유하기도 합니다.)
  • 동일한 호스트든 분산된 호스트들이든, 직접 통신하든, 몇몇 혹은 다수의 스레드 상에서 동작하는 라우팅 채널을 이용하여 통신하든, 혹은 이외의 방법으로 통신을 하든 actor들이 상호작용하는 방식은 동일하다. 이러한 세부사항들은 프로그램이 수정 없이 스케일-업(더 성능이 뛰어난 서버를 사용)하거나 스케일-아웃(더 많은 서버를 사용)하기 위해 배포 시점의 구성 메카니즘에 따라 변경할 수 있다.
  • Actor들은 프로그램의 오류를 연관성에 따라 계층적으로 분류한다. 이 오류들은 actor의 supervisor의 이벤트로 처리된다(어느 actor가 오류를 발생했다는 메시지인지를 가리지 않음). 얼랭과는 대조적으로 Akka는 parental supervision을 강조한다. 이는 각 actor가 parent actor에 의해 생성되고 감독받는 것을 의미한다.


주요 지원 모듈

  • Actors
  • Remoting
  • Cluster
  • Cluster Sharding
  • Cluster Singleton
  • Cluster Publish-Subscribe
  • Persistence
  • Distributed Data
  • Streams

이 문서 검색

인기있는 주제

특별 페이지

최근에 변경된 페이지

  • No labels