Stream
-
일반적으로 kafka message queue를 활용하면 아래와 같이 하나의 topic을 두고 message를 produce 하고 consume 한다. 위와 같은 경우 이외에 filtering이나 추가 로직을 중간에 두어 여러 topic을 사용하며 체이닝 하는 형식으로 kafka를 활용하기도 한다. 이러한 경우에 여러 producer, consumer를 생성해서 사용하는 것보다는 kafka stream을 활용할 수 있을것 같다 Kafka Stream Kafka Streams는 카프카에 저장된 데이터를 처리하고 분석하기 위해 개발된 자바 라이브러리 장점 카프카와 완벽한 호환 Kafka에서 공식적으로 제공되는 라이브러리 Exactly-once 처리 보장 스케쥴링 도구가 별도로 필요 없음 자체 로컬 상태 저장..
[Kafka] Kafka Stream란 ( Consumer와 비교 )일반적으로 kafka message queue를 활용하면 아래와 같이 하나의 topic을 두고 message를 produce 하고 consume 한다. 위와 같은 경우 이외에 filtering이나 추가 로직을 중간에 두어 여러 topic을 사용하며 체이닝 하는 형식으로 kafka를 활용하기도 한다. 이러한 경우에 여러 producer, consumer를 생성해서 사용하는 것보다는 kafka stream을 활용할 수 있을것 같다 Kafka Stream Kafka Streams는 카프카에 저장된 데이터를 처리하고 분석하기 위해 개발된 자바 라이브러리 장점 카프카와 완벽한 호환 Kafka에서 공식적으로 제공되는 라이브러리 Exactly-once 처리 보장 스케쥴링 도구가 별도로 필요 없음 자체 로컬 상태 저장..
2024.02.14 -
ForkJoinPool java 7부터 사용가능한 Java Concurrency Framework 분할 정복(Divide and Conquer) 알고리즘과 유사한 구조 동일한 작업을 여러 개의 Sub Task로 분리(Fork)하여 각각 처리하고, 이를 최종적으로 합쳐서(Join) 결과를 만들어내는 방식 -> 대규모 작업을 빠르게 처리하는 데 도움 스레드풀의 큐(inbound queue)에 작업이 할당되면 pool 내의 스레드들이 해당 작업을 가져가서 수행한다. 각 스레드들은 다시 본인의 작업 큐(work queue)를 가진다. 각 스레드들의 작업 큐는 deque 자료구조를 가진다 (작업 스레드는 한쪽에서 꺼내 쓰고, 다른 스레드가 작업을 stealing 할 때 다른 한쪽을 사용) 작업 스틸링(Work ..
[Java] ForkJoinPool이란 (ParellelStream)ForkJoinPool java 7부터 사용가능한 Java Concurrency Framework 분할 정복(Divide and Conquer) 알고리즘과 유사한 구조 동일한 작업을 여러 개의 Sub Task로 분리(Fork)하여 각각 처리하고, 이를 최종적으로 합쳐서(Join) 결과를 만들어내는 방식 -> 대규모 작업을 빠르게 처리하는 데 도움 스레드풀의 큐(inbound queue)에 작업이 할당되면 pool 내의 스레드들이 해당 작업을 가져가서 수행한다. 각 스레드들은 다시 본인의 작업 큐(work queue)를 가진다. 각 스레드들의 작업 큐는 deque 자료구조를 가진다 (작업 스레드는 한쪽에서 꺼내 쓰고, 다른 스레드가 작업을 stealing 할 때 다른 한쪽을 사용) 작업 스틸링(Work ..
2023.12.21 -
Java8에서의 변경된 내역들을 정리해 보도록 하겠습니다 PermGen 영역의 제거 ( to meta space ) Lambda Expression Stream API Interface ( default, static method ) Optional java.time 패키지 나즈혼( javascript engine ) PermGen 영역의 제거 Permanent Generation - Class의 Meta정보나 Method의 Meta정보, Static변수와 상수 정보들이 저장되는 공간, 흔히 메타데이터 저장 영역 위와 같은 Exception은 Heap의 구성 중, Permanent Generation의 memory가 부족한 현상입니다 PermGen 영역은 GC가 되지 않으며 클래스 메타 데이터를 저장하는..
[JAVA] Java8 변경 사항 ( java7 to java8)Java8에서의 변경된 내역들을 정리해 보도록 하겠습니다 PermGen 영역의 제거 ( to meta space ) Lambda Expression Stream API Interface ( default, static method ) Optional java.time 패키지 나즈혼( javascript engine ) PermGen 영역의 제거 Permanent Generation - Class의 Meta정보나 Method의 Meta정보, Static변수와 상수 정보들이 저장되는 공간, 흔히 메타데이터 저장 영역 위와 같은 Exception은 Heap의 구성 중, Permanent Generation의 memory가 부족한 현상입니다 PermGen 영역은 GC가 되지 않으며 클래스 메타 데이터를 저장하는..
2023.11.25