Page History
Info |
---|
AKKA System은 수많은 Router전략을 지원하지만 L7,Haproxy 를 대체하는 솔류션 시스템이 아닙니다. 또한 고성능 Data 메모리 처리를 위해 메모리유지 기술을 지원하지만 Redis를 대체하는 시스템도 아닙니다.. 그리고 실시간 분산처리를 위해 Cluster-샤딩을 지원하지만 하둡을 대체하는 분산 저장 기술도 아닙니다. 다양한 통신메카니즘을 사용하지만 사용자에게 제공하는 RESTAPI 를 대체하는 프로토콜도 아닙니다. 도대체 이것을 어디다 쓸고? 고민을 해보겠습니다. 자신이 설계한 API가 10노드로 구성했다고 가정했을때 DB(관계형이던 NOSQL이던)와 사용자하고만 대화를 할수 있다란것은 아주 큰 개발 제약입니다. NODE1-API 에서 발생한 일을, 자신이 설계한 NODE2-API 또는 동료가 설계한 API와 DB의존없이 실시간으로 대화 할수있는것만으로 어떠한 부분에 대해서는 DB의존을 줄이고 고성능 처리로 전환 할수가 있습니다. ( DB가용성 확보의 의미) 직접 커스텀한 로직을 작성해야하며, AKKA는 어떠한 서비스도 제공해주지 않습니다. 고성능 분산서비스 개발을 지원하며 ,주로 서비스내에 특화된 분산처리를 지원하는 개발툴킷입니다. |
간단한 AKKA 시스템 구성도
AKKA SYSTEM이란? : Actor를 통해 대화할수 있는 모든 Node를 계층적 으로 포함하는 범위
고급 API 설계
Rest Model과 연동되어, 고급(스케일 업다운/클러스터) API를 설계를한 케이스입니다.
AKKA는 클러스터/분산처리를 단순화할수 있는 툴킷이지만, 복잡한 문제를 풀어야 하는 툴킷이자
라이브러리이기때문에, 잘 사용하고/구현하는것은 만만한것은 아닙니다.
하지만 이러한 개발을 AKKA없이 기존 가진 개발 스택으로는 아주어려운것 임을 인지하는게 중요한듯합니다.
link:http://www.aaronstannard.com/markedup-akkadotnet/
장애처리 모델(Supervision)
try-catch는 메시지 전송및 구조적 모델에서 적합하지 않는 예외 처리모델입니다.
Akka에서는 여러가지 장애처리모델을 지원하고 있습니다.
One-For-One Strategy vs. All-For-One Strategy
link : http://getakka.net/articles/concepts/supervision.html
다양한 라우팅 전략 사용가능
BroadCast
RoundRobin
ConsistentHashRouter
ScatterGatherFirstCompleted
SmallestMailBox Test
Persistence ( Memory DB,Local DB )
Persistence모듈은 고성능 유지 처리를 위해 Actor의 상태를 메모리에서 변경하고 유지하는 모듈로
메모리DB인 Redis와 목적이 유사하지만 , 단순하게 key base(NO SQL) 로 접근하고 저장하는 기술은 아닙니다.
데이터의 상태를 좀더 추상적(FSM디자인패턴)으로 관리하고 유지함으로, 서비스 특화된 고성능 메모리DB를
구현할수가 있습니다.
활용사례 : http://getakka.net/articles/persistence/persistent-fsm.html
역활별 저장 지원 모듈
In-memory journal plugin. -고성능 Read처리를 메모리에서 하기 위해
In-memory snapshot store plugin. -메모리 스냅샷을 관리(실시간 복구력)
Local file system snapshot store plugin. -메모리의 휘발성에 대비(업데이트 포함 서버다운 대응,임시백업)
cluster-sharding
Data를 실시간 분산처리 할수가 있습니다.
-하둡과 같은 순수 분산 저장 기술은아니며, 이방식을 사용하여 하둡처럼 맵리듀스가 반영된 저장기술 개발도 가능할것으로 예측해봅니다.
link : https://petabridge.com/blog/introduction-to-cluster-sharding-akkadotnet/
Java와 이기종통신
AKKA의 태생은 JAVA로부터 왔기때문에, .net에서 Actor기반 메시지 설계가 가능하다면
JAVA에서도 동일한 컨셉으로 구현이 가능합니다. 이기종간 Actor메시지 전송을 기대해보지만 아직 미지원으로 확인되었으며
이경우 웹소켓중간 인터페이스를 경유해 이기종 고성능 통신이 가능합니다.
플래폼 파편화에 따른 저수준의 순수한 고성능 이기종 통신이 필요하다면 JnBridge 도입 검토도 해볼 필요가 있습니다.
link : http://git.interparktour.com/N17042/AKKATEST/snippets/7
link2 : https://www.playframework.com/documentation/2.6.x/ScalaWebSockets
link3 : https://jnbridge.com/
Akka를 이용한 머신러닝으로 확장
Info |
---|
AKKA는 텐서플로우 대체 플랫폼도 아니며 AI전용 플랫폼도아닙니다. AKKA가 제공하는 기능으로, 어떻게 머신러닝으로 확장가능한지? 심화학습을 하는데 목적이 있습니다.
|
link : http://getakka.net/articles/streams/workingwithgraphs.html (고성능 네트워크 데이터 전송및 연산 실현을 위해,AkkaStreams/Graphs로 확장이됩니다.)
link : http://www.cakesolutions.net/teamblogs/lifting-machine-learning-into-akka-streams
그외 Akka를 이용한 개인진행 저장소 : https://github.com/psmon/psmonSearch/blob/master/README.md
이 문서 검색
Livesearch | ||
---|---|---|
|
인기있는 주제
Popular Labels | ||||
---|---|---|---|---|
|
특별 페이지
Content by Label | ||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
최근에 변경된 페이지
Recently Updated | ||||||||
---|---|---|---|---|---|---|---|---|
|