목차

Akka 를 JAVA에서 사용하는것은

몇가지 언어적인 사용법의 차이이며, Actor 를 이용하는 방식은

SCALA/JAVA/.NET 와 유사합니다.

여기서는 JAVA버젼으로 ACTOR를 이용하는 방식을 설명하고

최종 마이크로 웹서비스를 SPARK과 연동을 목표로 할것입니다.



AKKA를 SCALA 혹은 JAVA로 이용했을때 이점

  • 최근 웹서비스에 생산되는 메시지들을 바로 소비하여 처리하는 방식으로 가고있음( 배치X )
  • Akka Stream 은 Spark와 Kafka와 실시간 연동처리에대한 고민을 많이 하고 자료가 많음( AKKA.net 대비장점) 
  • Spark도 SCALA를 이용했을때 사용성이 극대화대고 AKKA도 SCALA BASE ( JAVA로 동일한 이용가능)


AKKA는 웹서비스 종속적인 툴이 아니기때문에, 조금더 개발자에게 범용적인 아키텍쳐 구성으로 시도해보겠습니다.

  • SCALA → JAVA ( SCALA의 이점이 있지만,JAVA 개발자가 더 많기때문에 )
  • 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