- What is Akka?
Scalable real-time transaction processing
우리는 정확한 시간에 동시에 접속하여 쓰는 경우나 장애 방지, 확장 가능한 application을 작성하는 것은 정말로 어렵다고 생각한다. 하지만, 그런 경우는 주로 잘못된 tool을 사용하고, 잘못된 추상화를 했기 때문이다. Akka는 그것을 변화시키기 위해서 탄생했다. Actor Model을 사용하여 추상화 level 수준을 올리고, 확장성 있고 탄력적이고 즉각적으로 반응하는 application을 작성할 수 있는 더 나은 플랫폼을 제공한다. 더 자세한 내용에 대해서는 Reactive Manifesto(reactivemanifesto.org)를 참고하라. 장애 방지를 위해서 Telecom industry에서 self-heal application(비정상 동작 시, 사람의 개입 없이 자동으로 정상 동작 하도록 복구되는 어플리케이션)과 결코 죽지 않는 시스템을 만들기 위해 매우 성공적으로 사용한 "let it crash" model을 수용했다. Actor는 또한 명백한 분산을 위한 추상화, 정말로 확장성 있고 장애를 방지할 수 있는 Application을 위한 기반을 제공한다.
Akka는 오픈소스이고, Apache 2 라이선스 하에서 이용할 수 있다.
http://akka.io/downloads 에서 다운로드 받을 수 있다.
모든 샘플 코드는 컴파일 되어 있다. 따라서, 직접 소스 코드를 보기 위해서는 github에 있는 Akka Docs subproject를 살펴보라.
Java : https://github.com/akka/akka/tree/v2.4.0/akka-docs/rst/java/code/docs
Scala : https://github.com/akka/akka/tree/v2.4.0/akka-docs/rst/scala/code/docs
1) Akka implements a unique hybrid
Actors
Actor는 다음과 같은 특징이 있다.
- 동시 실행, 병렬 실행을 위한 간단한 high-level 추상화 제공
- 비동기(Asynchronous), non-blocking, 고성능의 event-driven programming model 제공
- 매우 가벼운 event-driven process (1GB Heap 메모리 당 7백만 actor 수행)
3장에서 더 자세히 설명되어 있다.
Fault Tolerance
- "let it crash" 의미를 갖는 관리 계층 제공
- 관리 계층은 진정한 장애 방지 시스템을 제공하기 위해서 multiple JVM으로 확장할 수 있음
- Self-heal과 결코 멈추지 않는 굉장한 장애 방지 시스템 작성에 탁월함
3장에서 더 자세히 설명되어 있다.
Location Transparency
Akka에서 모든 것은 분산 환경에서 처리되도록 설계되어 있다. Actor간 모든 상호 작용은 순전히 message전송을 사용하고, 모든 것은 비동기로 처리된다.
Cluster 지원에 대한 overview는 6장에서 더 자세히 설명하고 있다.
Persistence
Actor를 통해 수신된 메시지들은 선택적으로 저장되어 actor가 시작/재시작 될 때 재사용할 수 있다. JVM Crash가 일어나거나, 또 다른 노드로 마이그레이션 될 때, 이것을 통해 actor는 상태를 복구할 수 있다.
더 자세한 내용은 3장에서 설명하고 있다.
2) Scala and Java APIs
Akka는 scala-api와 Java Document를 모두 제공한다.
3) Akka can be used in two different ways
Akka는 다른 방식으로 사용되고, 배포될 수 있다.
- 라이브러리 : Web App에서 classpath 상의 일반적인 JAR 형태로 사용. WEB-INF/lib에 넣는다.
- sbt-native-packager로 패키징하여 사용
- Typesafe ConductR을 사용하여 패키징 및 배포
4) Commercial Support
Akka는 Typesafe Inc 를 통해서 개발 및 제품 기술지원을 포함한 상용 라이선스를 이용할 수 있다.
댓글을 달아 주세요
댓글 RSS 주소 : http://www.yongbi.net/rss/comment/737