Alpakka 특징



알파카(Alpakka)는 레액티브(Reactive) 스트림 처리를 위한 라이브러리입니다. 이 라이브러리의 주요 장점은 다음과 같습니다:

다양한 스트림 처리 기술 지원: 알파카는 다양한 스트림 처리 기술을 지원합니다.

예를 들어, Apache Kafka, Amazon S3, Amazon Kinesis, RabbitMQ 등과 같은 다양한 데이터 소스와 Sink를 처리할 수 있습니다.

높은 확장성: 알파카는 대용량 데이터 처리를 위한 높은 확장성을 제공합니다.

알파카는 Akka Streams 프레임워크를 기반으로 하며, Akka는 높은 확장성을 가진 Actor 모델을 사용하여 대용량 처리를 처리할 수 있습니다.

유연성: 알파카는 다양한 데이터 형식을 처리할 수 있으며, 다양한 소스와 Sink를 조합하여 유연하게 처리할 수 있습니다. 이러한 유연성은 다양한 비즈니스 요구에 대응할 수 있도록 도와줍니다.

개발 생산성 향상: 알파카는 스트림 처리에 필요한 많은 기능을 제공하므로 개발 생산성을 향상시킵니다. 예를 들어, 알파카는 배압 처리, 에러 핸들링, 메모리 관리 등과 같은 기능을 제공합니다.

리액티브 프로그래밍 모델 지원: 알파카는 리액티브 프로그래밍 모델을 지원하므로 비동기적이고 반응적인 코드를 작성할 수 있습니다.

이러한 코드는 보다 성능이 높고 유지 보수가 용이합니다.

다양한 언어 지원: 알파카는 다양한 언어를 지원합니다. 현재는 자바와 스칼라를 지원하며, 앞으로는 더 많은 언어를 지원할 예정입니다.

개발자 커뮤니티 지원: 알파카는 매우 활발한 개발자 커뮤니티를 가지고 있습니다. 이러한 커뮤니티는 알파카를 사용하는 개발자들에게 지속적인 지원을 제공합니다.

by chat gpt


Reactive Stream을 선언한 오픈스택과  스트림처리 개발방식을 단일화 할수 있습니다.






의존모듈 셋업하기



    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



  • No labels
Write a comment…