분류 전체보기

·Language/Java
Marble Diagram(마블 다이어그램) ReactiveX의 문서를 읽다보면 원형 또는 사각형 등의 도형과 화살표가 들어간 그림을 말한다. 주로 Flowable/Observable에서 메서드를 호출할 때 시간경과에 따른 데이터가 어떻게 전달되고 변화되는지를 표현한다. [Filter Diagram] filter 메서드는 원본 데이터 중 지정한 조건에 맞는 데이터만 통지하는 메서드로 Flowable과 Observable에 있는 메서드로 둘 다 같은 처리를 수행한다. filter 메서드에서 인자를 받아 데이터를 받을건지 제외할 것인지 판단하는 함수형 인터페이스를 사용하여 결과가 true 인 데이터만 통지를 한다. [에러가 발생할 경우] 처리가 정상적으로 끝나지 못하고 중간에 에러를 통지하게 되면 해당 위치..
·Language/Java
Reactive Streams 라이브러리나 프레임워크에 상관없이 데이터 스트림을 비동기로 다룰 수 있는 공통 메커니즘으로 인터페이스만 제공하고 구현은 각 라이브러리와 프레임워크에서 한다. 구성 데이터를 통지하는 Publisher(생산자)와 데이터를 받아 처리하는 Subscriber(소비자)로 구성된다. Subscriber가 Publisher를 구독(Subscribe)하면 Publisher가 통지한 데이터를 Subscriber가 받을 수 있다. Publisher : 데이터를 통지하는 생산자 Subscriber : 데이터를 받아 처리하는 소비자 Subscriber가 구독하고 Publisher가데이터를 통지하고 Subscriber가 데이터를 받을 때까지 처리과정의 흐름이다. Subscriber는 Publish..
·Language/Java
RxJava 개념 RxJava는 Reactive Progrmming을 구현하는데 사용하는 라이브러리 이다. 에릭 마이어가 개발한 .NET 프레임워크의 실험적 라이브러리인 Reactive Extensions(Rx) 를 2009년 마이크로소프트에서 공개하고 2013년 넷플릭스에서 자바로 이식한 것이 RxJava의 시작이다. 현재 Reactive Extensions를 다루는 라이브러리는 ReactiveX라는 오픈 소스 프로젝트로 바뀌어 자바와 .NET 뿐만 아니라 자바스크립트, 스위프트, 등 여러 프로그램언어를 지원하는 라이브러리를 제공한다. Reactive Extensions는 동기식 또는 비동기식 스트림과 관계 없이 명령형 언어를 이용해 데이터 스트림을 조작할 수 있는 일련의 도구이다. ReactiveX는..
·Language/Java
Reactive System(리액티브 시스템) 응답이 잘 되고, 탄력적이며 유연하고 메시지 기반으로 동작하는 시스템을 말한다. 리액티브 시스템으로 구축된 시스템은 보다 유연하고, 느슨한 결합을 갖고, 확장성이 있다. 이로 인해 개발이 더 쉬워지고 변경 사항을 적용하기 쉬워집니다. 이 시스템은 장애 에 대해 더 강한 내성을 지니며, 비록 장애가 발생 하더라도 재난이 일어나기 보다는 간결한 방식으로 문제를 해결한다. 리액티브 시스템은 높은 응답성을 가지며 사용자 에게 효과적인 상호적 피드백을 제공한다. [리액티브 시스템] 4가지 핵심 응답성(Responsive) : 시스템이 가능한 한 즉각적으로 응답하는 것을 말한다. 응답성은 사용자의 편의성과 유용성의 기초가 되지만, 그것뿐만 아니라 문제를 신속하게 탐지하..
·Back-End/Kafka
Spring boot에서 kafka 구축 Spring Boot를 이용하여 kafka API를 사용해보고자 한다. 사전조건 kafka 설치 상태 개발도구 설치 상태 개발환경 jdk : 1.8 IDE : intelliJ build : gradle kafka 서버는 Ubuntu 18.04LTS에 설치되어 있다. 준비 Producer를 통해 메시지를 보내고 Consumer를 통해 topic에 있는 데이터를 받아오는 프로그램을 간단하게 만들어보자. URL 내용 /send?msg= Kafka source-topic에 메시지를 보낸다. /receiver Kafka source-topic에 들어간 메시지 한개 받는다. 진행 1. zooKeeper, kafka 실행 Zookeeper실행 $ ./bin/kafka-zook..
·Back-End/Kafka
Apache Flume Apache Flume은 오픈소스 프로젝트로 개발된 로그 데이터를 수집 기술이다. 여러 서버에서 생산된 대용량 로그 데이터를 효과적으로 수집하여, HDFS과 같은 원격 목적지에 데이터를 전송하는 기능을 제공한다. 구조가 단순하고 유연하여 다양한 유형의 스트리밍 데이터 플로우(Streaming Data Flow) 아키텍처를 구성할 수 있다. flume은 Source, Channel, Sink 세 가지 요소로 구성 데이터가 추출되는 Source Flume에 데이터를 저장하는 Sink Source에서 Sink or 저장소로 데이터를 전달하는 Channel Flume 설치 https://flume.apache.org/download.html 사이트에 들어가서 다운받을 수 있다. 구현 so..
·Back-End/Kafka
#Kafka Streams kafka streams는 입출력 데이터가 카프카 클러스터에 kafka에 저장된 데이터를 처리하고 분석하기 위해 개발된 클라이언트 라이브러리다. Kafka Stremas는 클라이언트에서 쓰기가 간편하고, 자바와 스칼라 어플리케이션을 표준으로 작성하고 배포하고, Kafka 서버-사이드 클러스터 기술의 이점을 결합하여 응용프로그램의 확장성과, 탄력성, 내결합성, 분산성등을 향상시킨다. 또한 이벤트 시간과 처리 시간을 분리하여 다루며, 다양한 옵션을 지원하여 실시간 분석을 간단하고 효율적으로 지원한다. kafka streams를 설명하기 전 몇 가지 개념 정리 Stream(스트림) : 연속적으로 업데이트되고 무제한으로 진행되는 과정을 의미한다. (무제한은 크기 제한이 없다는 뜻이다...
·Back-End/Kafka
kafka topic message 처리하기 Producer와 Consumer를 통해 topic의 메시지를 처리해본다. 요구사항 임의의 숫자 2개를 설정하여 2개의 숫자 범위 값에 들어오면 valid topic으로 존재하지 않으면 invalid topic으로 분류한다. 초기 숫자가 10 20이면 10~20 사이의 수는 valid 그렇지 않으면 invalid topic으로 이동 원본메시지(raw-message)는 kafka topic에서 각각 이벤트를 읽는다. 이벤트를 검사하고 올바른 메시지는 valid-message topic에 쓰고, 잘못된 메시지는 invalid-message 토픽에 기록한다. [구성도] raw-messages topic에서 이벤트를 읽고, 메시지를 검사하고, 조건 범위 내에 숫자가 ..
·Back-End/Kafka
Kafka clusters Cluster 의 개념 cluster는 여러대의 시스템이 한대의 시스템처럼 동작하는 시스템의 집합이라고 할 수 있다. 클러스터 모드로 사용하면 2가지 장점이 있다. 첫 번째는 병렬처리(Parallelism)를 통해 클러스터 맴버 사이에서 동시에 작업을 수행한다. 두 번째는 중복성(redundancy)인데 하나의 카프카 노드에 장애가 나면 다른 노드에 의해 접근이 가능하도록 안정성을 제공한다. kafka cluster 구축 방법 kafka에는 세 가지 구축 방법이 있다. Single Node - Single Broker Single Node - Multiple Broker Multiple Node - Multiple Broker 1. Single Node - Single Brok..
·Back-End/Kafka
Kafka Producer & Consumer API producer API는 응용 프로그램에서 Kafka 클러스터로 데이터 스트림을 보낼 수 있다. Consumer API는 응용프로그램에서 Kafka 클러스터에서 topics에 대하여 데이터 스트림으로 받을 수 있다. kafka consumer, producer 를 자바로 구현하려면 kafka-clients 라이브러리가 필요하다. ## maven org.apache.kafka kafka-clients 2.2.1 ## gradle compile group: 'org.apache.kafka', name: 'kafka-clients', version: '2.2.1' kafka client는 kafka cluster에 있는 레코드들을 기록한다. Producer..
조슈아。
'분류 전체보기' 카테고리의 글 목록 (4 Page)