Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Alpakka 특징

...


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

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

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

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

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

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

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

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

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

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

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

by chat gpt


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

Image Added






의존모듈 셋업하기

...


Code Block
    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 버전에서 이용할수 있습니다.


Children Display
depth2