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

Compare with Current View Page History

« Previous Version 172 Next »

AKKA.net 을 문서화중에 있으며, 주로 C# 위주의 샘플코드로 진행이되나

분산환경에서의 동시성 처리에대한 개발모델은 오리지널 AKKA와 동일합니다.

*ACTOR : 여러가지 개발 플래폼에서 도입 하기 시작하였으며, 분산 미들웨어에서 수많은 일을 하기위한, 능동적 메시지 객체 

Akka

  • Akka는 오픈 소스 툴킷으로 동시성과 분산 애플리케이션을 단순화하는 런타임이다.  
  • 동시성을 위한 여러 프로그래밍 모델을 지원하며, Erlang으로부터 영향을 받아 actor기반의 동시성이 두드러진다.
  • Akka는 Java환경및 .net Framework에서 이용가능하며, Actor모델은 이제 대부분의 개발플래폼에서 라이브러리릍 통해 사용가능합니다.


AKKA에서 내세우는 강점



시스템

액터와 스트림을 사용하면 여러 서버에서 효율적으로 리소스를 사용하여

확장하고 확장하는 시스템을 구축 할 수 있는 개발 모델지원

디자인에 의한 유여한 대처

장애가 발생할 경우,자가 치유되고 응답 성을 유지하는 시스템을 작성할 수 있는

개발 모델을 제시해줍니다.

Resilient : 탄력적인 , 유연한

고성능

단일 기계에서 최대 초당 5 천만 메시지 처리 가능하며

메모리 힙 GB 당 250 만명의 액터생성가능합니다.

탄성및 분산

단일 실패 지점이없는 분산 시스템. 로드 밸런싱 및 라우팅 노드. 클러스터 소싱을 사용한 이벤트 소싱 및

CQRS CRDT를 사용한 최종 일관성을위한 분산 데이터 프로그래밍 모델지원



탄성: (Elastic) ,

장애발생시 스스로 복원하여 정상적인 상황으로 가려고 하는 속성,

IT용어는 영어권형님들이 먼저 정의를 하고 대부분 넘어오며

부가적으로  과학적 용어가 어떠한 자연적 현상에대해 정의를 잘 내렸으며

대부분 과학자들은 같은의미로 동의를 하지만

IT에서는 현상이 비슷할시 차용해오거나,여러가지 다른의미로 해석을 합니다.


IT에서의 탄성과 탄력은 개발자가 설계한 이벤트를 통해 상호작용을 통해 이루어진다는점에서

분산처리에서 공통적으로 다루고 있는 부분이며, 자연현상에서 발견하기 어려우며

때로는 늘리고 줄이고 피해상황을 복구하는 개미집단을 예를 들며

이것을 이루기위해 마이크로서비스를 강조하기도 합니다. 여기서 더 나가면 소설이됩니다.


이벤트소싱 (EventSourcing)

이벤트 소싱(및 샤딩) 은 커다란 웹사이트를 수십억명의 사용자 규모로 확장하는 아이디어이며

이아이디어는 매우 간답합니다. 액터가 처리가 될때 명령의 이벤트 목록을 생성하고 저장을 합니다.

이 계획은 이벤트만이 저장소에 추가되고 아무것도 변이되지 않는 점이며 

이를 통해 이벤트 스트림의 소비자를 완벽하게 복제하고 확장할수 있습니다. 

구성요소의 컴퓨터가 고장이나거나 푸시로기능중 손실되는경우 , 이벤트 스트림을 재생하여 쉽게 재구성합니다.

이벤트 소싱은 Akka.net 지속성(Persistence)에서 지원됩니다.  (  참고 소스 : http://getakka.net/articles/persistence/event-sourcing.html )



CQRS (Command Query Responsiblity Segregation)

대부부의 대용량 트래픽은 Read에서 발생하며

이름에서 알 수 있다시피 코맨드, 즉 C (Create – INSERT), U(Update – UPDATE), D (Delete – DELETE) 쿼리와

R (Read – SELECT) 쿼리를 분리하자는 것이다.


CRDT(Conflict-free replicated data types)

충돌없는 데이터 복제란 : 분산환경에서 데이터복제를 통한 분산처리가 필요하며

이전략을 세우기위해 복제에따른 데이터 불일치 문제를 해결하고자 하는 방법




반응형 스트리밍 데이터

성능에 있어서 역압력장치(backpressure) 사용으로, 비동기 비 차단 스트림을 모두 처리하려고함.

완전 비동기 및 스트리밍 HTTP 서버 및 클라이언트에서

마이크로 서비스를 구축하기위한 훌륭한 플랫폼을 제공합니다.


불안정한 상태에서는, 입력량을 제어해야 출력량이 더 안정적으로 많이 처리를 할수 있다란 내용


출처 : http://readme.skplanet.com/?p=12465





AKKA-Training에서 샘플코드 기능검증과 활용안을 준비중에있습니다.

키워드로 살펴본 AKKA가 가진 스택범위



  • ReceiveActor
  • UntypedActor
  • Routers
  • Dispachers
  • Mailboxes
  • Inbox
  • FiniteStateMachines
  • FalutTolerance
  • DependencyInjection
  • TesitingActorSystems
  • CorrdinatedShotdown
  • EventSourcing
  • SnapShots
  • AtLeast OnceDelivery
  • Event Adapters
  • PersitentFSM
  • Storage Plugins
  • Custom Serialization
  • Persitence Query
  • Basics and working with Flows
  • Working with Graphs
  • Modularity,Composition and Hierarchy
  • Buffers and working with rate
  • Custom Stream processing
  • Working with stream IO
  • Pipelining and Paralleism
  • Cluster Routing
  • Cluster Configuration
  • Accesing the Cluster Actor
  • Distibuted Publish Subscribe in Cluster
  • Cluster Client
  • Cluster Sharding
  • Distibuted Data
  • Event Bus
  • Logging
  • Scheduler
  • Circuit Breaker

분산처리관련 동일한 목표를 가진 녀석들


액터모델을 도입한 개발 툴킷들

Akka : http://akka.io/ -Akka (Scala및 Java에서 사용가능)

Akka.net : http://getakka.net/ ( JVM버젼을 닷넷 변환버젼)

Erlang : http://erlang.org/doc/getting_started/conc_prog.html - Actor의 원조

Orleans : https://dotnet.github.io/orleans/ - MS에서도 Actor모델을 도입

TypeSafe CoduntR : https://www.lightbend.com/products/reactive-platform (종합선물 셋트)


그외 기타 정보

액터도입현황 : https://en.wikipedia.org/wiki/Actor_model#Actor_libraries_and_frameworks

국내도서 추천 : Akka 코딩 공작소








  • No labels