Alpakka 특징
알파카(Alpakka)는 레액티브(Reactive) 스트림 처리를 위한 라이브러리입니다. 이 라이브러리의 주요 장점은 다음과 같습니다:
다양한 스트림 처리 기술 지원: 알파카는 다양한 스트림 처리 기술을 지원합니다.
예를 들어, Apache Kafka, Amazon S3, Amazon Kinesis, RabbitMQ 등과 같은 다양한 데이터 소스와 Sink를 처리할 수 있습니다.
높은 확장성: 알파카는 대용량 데이터 처리를 위한 높은 확장성을 제공합니다.
알파카는 Akka Streams 프레임워크를 기반으로 하며, Akka는 높은 확장성을 가진 Actor 모델을 사용하여 대용량 처리를 처리할 수 있습니다.
유연성: 알파카는 다양한 데이터 형식을 처리할 수 있으며, 다양한 소스와 Sink를 조합하여 유연하게 처리할 수 있습니다. 이러한 유연성은 다양한 비즈니스 요구에 대응할 수 있도록 도와줍니다.
개발 생산성 향상: 알파카는 스트림 처리에 필요한 많은 기능을 제공하므로 개발 생산성을 향상시킵니다. 예를 들어, 알파카는 배압 처리, 에러 핸들링, 메모리 관리 등과 같은 기능을 제공합니다.
리액티브 프로그래밍 모델 지원: 알파카는 리액티브 프로그래밍 모델을 지원하므로 비동기적이고 반응적인 코드를 작성할 수 있습니다.
이러한 코드는 보다 성능이 높고 유지 보수가 용이합니다.
다양한 언어 지원: 알파카는 다양한 언어를 지원합니다. 현재는 자바와 스칼라를 지원하며, 앞으로는 더 많은 언어를 지원할 예정입니다.
개발자 커뮤니티 지원: 알파카는 매우 활발한 개발자 커뮤니티를 가지고 있습니다. 이러한 커뮤니티는 알파카를 사용하는 개발자들에게 지속적인 지원을 제공합니다.
by chat gpt
Reactive Stream을 선언한 오픈스택과 스트림처리 개발방식을 단일화 할수 있습니다.
- https://doc.akka.io/docs/akka/current/stream/stream-flows-and-basics.html - Akka Stream API가 전반적으로 이용이됩니다.
의존모듈 셋업하기
plugins { id 'java' id 'org.springframework.boot' version '2.7.8-SNAPSHOT' id 'io.spring.dependency-management' version '1.0.15.RELEASE' } group = 'com.webnori' version = '0.0.1-SNAPSHOT' sourceCompatibility = '11' configurations { compileOnly { extendsFrom annotationProcessor } } repositories { mavenCentral() maven { url 'https://repo.spring.io/milestone' } maven { url 'https://repo.spring.io/snapshot' } } dependencies { def scalaVersion = '2.13' def akkaVersion = '2.7.0' implementation 'org.springframework.boot:spring-boot-starter-web' implementation 'org.springframework.boot:spring-boot-starter-aop:2.7.0' implementation 'org.springframework.boot:spring-boot-starter-validation:2.7.5' compileOnly 'org.projectlombok:lombok' annotationProcessor 'org.projectlombok:lombok' //DB implementation 'org.springframework.boot:spring-boot-starter-data-jpa' implementation 'com.mysql:mysql-connector-j' //AKKA implementation platform("com.typesafe.akka:akka-bom_$scalaVersion:$akkaVersion") implementation "com.typesafe.akka:akka-actor_$scalaVersion:$akkaVersion" implementation "com.typesafe.akka:akka-stream_$scalaVersion" implementation "com.typesafe.akka:akka-stream-kafka_$scalaVersion:4.0.0" //Logging implementation 'ch.qos.logback:logback-classic:1.2.3' implementation "com.typesafe.akka:akka-slf4j_$scalaVersion:$akkaVersion" //Swagger implementation 'org.springdoc:springdoc-openapi-ui:1.6.6' //Test testImplementation 'org.springframework.boot:spring-boot-starter-test' testImplementation "org.scalatestplus:junit-4-12_$scalaVersion:3.3.0.0-SNAP2" testImplementation "com.typesafe.akka:akka-testkit_$scalaVersion:$akkaVersion" testImplementation "com.typesafe.akka:akka-stream-testkit_$scalaVersion" testImplementation "com.typesafe.akka:akka-stream-kafka-testkit_$scalaVersion:4.0.0" } tasks.named('test') { useJUnitPlatform() }
Spring Boot -JAVA 버전에서 이용할수 있습니다.
상위페이지 : ReactiveStreams
Add Comment