Page History
목차
| Children Display | ||||
|---|---|---|---|---|
|
| Tip |
|---|
Akka 를 JAVA에서 사용하는것은 몇가지 언어적인 사용법의 차이이며, Actor 를 이용하는 방식은 SCALA/JAVA/.NET 와 유사합니다. 여기서는 JAVA버젼으로 JAVA 버젼으로 ACTOR를 이용하는 방식을 설명하고 최종 마이크로 웹서비스를 SPARK과 연동을 목표로 할것입니다. 외부 메시징 시스템과 어떻게 자연스럽게 상호연동을 할수 있는가 를 살펴보겠습니다.
|
AKKA - Fast Data Architecture
AKKA를 SCALA 혹은 JAVA로 이용했을때 이점- 최근 웹서비스에 서비스에 생산되는 메시지들을 바로 소비하여 처리하는 분석에 용이한 데이터로 정제하는 방식으로 가고있음( 배치X 긴 주기의 배치선호되지 않음 )
- Akka Stream 은 Spark와 Spark또는 Kafka와 실시간 연동처리에대한 고민을 많이 하고 자료가 많음( AKKA.net 대비장점)
- Spark도 SCALA를 이용했을때 사용성이 극대화대고 AKKA도 SCALA BASE ( JAVA로 동일한 이용가능)
- 많이하고 자료가 많음,궁극적으로 ReactiveStream이라는 표준인터페이스를 모두 준수
- Spark와 AKKA는 각각 Scala 함수형언어의 장점을 살린 빅데이터분석기,대용량 분산처리 메시징시스템이라고 간단하게 정의하겠습니다. 몇가지 장점은 사라지지만 이것은 JAVA에서도 활용가능합니다.
AKKA를 범용적으로 사용하기
AKKA는 웹플랫폼 종속적인 툴이 아니며, SPRINGBOOT에도 자연스럽게 통합이 가능합니다AKKA는 웹서비스 종속적인 툴이 아니기때문에, 조금더 개발자에게 범용적인 아키텍쳐 구성으로 시도해보겠습니다.
- SCALA → JAVA ( SCALA의 이점이 있지만 ,JAVA 개발자가 더 많기때문에 JAVA 버젼이 높아짐에따라 언어스펙의 큰차이가 많이 줄어들었습니다. )
- PLAY → SPRING ( PLAY는 웹개발을위한 풀스택 프레임웍이며 ,SPRING 역시 동일한 스택을가지고 있으며 더 범용적입니다.모던웹으로 PLAY도 휼륭하나, SPRING은 범용성성있는 웹프레임웍 )
- LAGOM → SPRING BOOT ( 마이크로서비스를 실현하기위해 SCALA에서는 라곰이 유용하지만, SPRING BOOT로 대체하겠습니다.실현하기위한 선택지는 많음 )
- SPARK,KAFKA,기타등등 ( AKKA STREAMS 을 통해 외부 리액티브 서비스와 상호운영하는방법 )
머신러닝으로 확장
AKKA는 머신러닝을 위한 툴킷은 아니지만, AKKA 스트림이 어떻게 러닝머신으로 확장가능한지
보여주는 스트림처리에 있어서 유연함을 보여주는 예일뿐이며
SPARK을 통해 외부 AI 솔류션과 연동되는것이 권장되며, 여기서는 AI주제는 다루지 않을 예정입니다.
SPARK 스트림처리 영역에서,데이터 후처리는 별도로 처리가능하며 아래에 정리중에있습니다.
http://wiki.webnori.com/display/codesniper/pyspark
참고링크:
https://www.cakesolutions.net/teamblogs/lifting-machine-learning-into-akka-streams- SBT,GRADLE → MAVEN ( 메이븐의 단점이 많이부각되어 GRADLE추천되기도 하지만 메이븐으로~ )
- SPARK,KAFKA등의 Stream 연동 ( AKKA 는 기존 메시징시스템을 대체 하기위한 용도가 아닙니다. )

