브리지 네트워크 (Bridge Network):

Docker에서 기본적으로 제공되는 네트워크 모드입니다.
컨테이너가 독립적인 IP 주소를 가지며, 호스트와는 브리지 네트워크를 통해 통신합니다.

 

bridge는 Docker의 기본 네트워크 드라이버 중 하나입니다. Docker가 설치되면 기본적으로 생성되는 네트워크 모드로, 개별 컨테이너들이 독립된 네트워크 네임스페이스에서 동작하게 합니다. 이렇게 하면 컨테이너 간의 네트워크 통신이 보안적으로 격리됩니다.

bridge 네트워크에 대한 주요 특징은 다음과 같습니다:

  • 격리: 각 컨테이너는 독립된 네트워크 네임스페이스를 가지기 때문에 서로 격리됩니다.
  • 자동 IP 할당: Docker의 내장 DHCP 서버에 의해 자동으로 IP 주소가 할당됩니다. 보통 172.17.0.x 범위의 주소가 기본으로 사용됩니다.
  • 포트 매핑: 호스트 시스템의 특정 포트를 컨테이너의 특정 포트에 매핑(포워딩)할 수 있습니다. 예를 들어, 호스트의 8080 포트를 컨테이너의 80 포트에 매핑할 수 있습니다.
  • 컨테이너 간 통신: 같은 bridge 네트워크에 있는 컨테이너끼리는 IP 주소를 통해 서로 통신할 수 있습니다.

그러나 bridge 네트워크 모드에는 몇 가지 제한사항도 있습니다

  • 외부 네트워크와의 통신은 NAT(Network Address Translation)를 통해 이루어지기 때문에 성능 오버헤드가 있을 수 있습니다.
  • 호스트와 컨테이너 간의 통신을 위해서는 포트 매핑이 필요합니다.
  • 다른 호스트에 있는 컨테이너와의 통신은 기본적으로 지원되지 않습니다.
  • 이러한 제한사항 때문에 복잡한 배포나 여러 호스트 간의 통신이 필요한 경우에는 overlay, macvlan 등의 다른 네트워크 드라이버를 사용하기도 합니다.

 

호스트 네트워크 (Host Network):

컨테이너가 호스트의 네트워크 네임스페이스를 사용합니다.
컨테이너는 호스트의 IP 주소와 포트를 직접 사용할 수 있습니다.

반응형

'Programming > Linux' 카테고리의 다른 글

docker-compose  (0) 2023.10.28
Nginx  (0) 2023.08.16
Redis  (0) 2023.08.10
kafka 설치(우분투 기존)  (0) 2023.07.31
ELK연습  (0) 2023.07.30

여기 참조

Windows는 무한 스트림 처리의 핵심입니다. 

Windows는 스트림을 유한한 크기의 "버킷"으로 분할하여 계산을 적용할 수 있습니다.

 

주요개념 요약

윈도우 크기

  • tumbling window: 비중첩(non-overlapping) window
  • sliding window: 중첩 window

시간

  • 발생 시간 (Event Time): 이벤트가 실제로 발생한 시간을 의미합니다. 예를 들어, 센서가 데이터를 생성하거나 사용자가 클릭한 시간 등 실제 사건이 일어난 시간을 나타냅니다.
  • 수집 시간 (Ingestion Time): 이벤트가 시스템 또는 스트리밍 플랫폼에 처음 도착한 시간을 나타냅니다. 발생 시간과 수집 시간 사이에는 네트워크 지연, 메시지 큐 지연 등 다양한 요인으로 인해 차이가 발생할 수 있습니다.
  • 처리 시간 (Processing Time): 이벤트가 실제로 처리되기 시작한 시간을 의미합니다. 처리 시간은 이벤트가 시스템에 도착한 순서대로 처리되므로, 발생 시간이나 수집 시간과는 다를 수 있습니다.

지연(latency)

  • 이벤트 시간 지연 (Event Time Latency):  이벤트가 실제로 발생한 시간 (Event Time)과 이벤트가 시스템에서 처리되는 시간 (Processing Time) 사이의 차이를 나타냅니다.

워터마크

  • 워터마크는 "지금까지 도착한 데이터 중에서 가장 늦게 발생한 이벤트의 시간"을 나타냅니다. 예를 들어, "12:06"의 워터마크가 발행된다면, 12:06 이전에 발생한 모든 이벤트들은 시스템에 이미 도착했거나 곧 도착할 것임을 의미합니다. 즉, 12:06 이후에 12:05의 이벤트가 도착할 확률은 없다는 것을 보장합니다.
  • 이렇게 워터마크를 사용하면, 스트리밍 데이터에서의 시간 관련 처리를 더 정확하게 할 수 있습니다. 워터마크가 "12:06"으로 설정되면, 시스템은 12:06 이전의 모든 이벤트를 안정적으로 처리할 수 있음을 알게 됩니다.

 

window의 생명주기

간단히 말해서, window에 속해야 하는 첫 번째 요소가 도착하자마자 window가 생성되고(고정 윈도우 방식이 아니네)

시간(이벤트 또는 처리 시간)이 종료 타임스탬프 더하기 사용자가 허용한 지연 시간을 지나면 창이 완전히 제거됩니다.

 

Flink는 시간 기반 창에 대해서만 제거를 보장하며 다른 유형( 예: 전역 창)에 대해서는 제거를 보장하지 않습니다(window 할당자 참조 ). 예를 들어, 5분마다 비중첩(또는 텀블링) 윈도우를 생성하고 1분의 허용 지연 시간을 가진 '이벤트 시간 기반' 윈도우 전략의 경우, Flink는 이 간격에 속하는 타임스탬프를 가진 첫 번째 요소가 도착하면 12:00과 12:05 사이의 새 윈도우를 생성하고, 워터마크가 12:06 타임스탬프를 지나가면 제거합니다.

 

또한 각 윈도우에는 Trigger 및 함수( ProcessWindowFunction, ReduceFunction또는 AggregateFunction)( window 함수 참조 )가 연결되어 있습니다

함수는 윈도우 내용에 적용될 계산을 포함하며, 트리거는 윈도우가 함수가 적용될 준비가 되었는지를 나타내는 조건을 지정합니다. 트리거링 정책은 "윈도우 내의 요소 수가 4개 이상일 때"나 "워터마크가 윈도우의 끝을 지날 때"와 같은 것일 수 있습니다. 트리거는 생성과 제거 사이의 어느 시점이든 윈도우의 내용을 삭제하기로 결정할 수도 있습니다.

 

또는 추방자(Evictor)를 사용해서 윈도우 내의 요소들을 제거할수도 있다. 예를 들어 1분 윈도우에 100개가 들어왔는데 10개만 사용하고 나머지 90개는 추방자로 제거.

 

반응형

'Data Engineering' 카테고리의 다른 글

flink Table API를 사용한 실시간 Reporting샘플  (0) 2023.10.28
flink  (1) 2023.10.28
Spark, Flink를 사용한 실시간 스트림 분석  (0) 2023.08.02
Apache Flink 설치  (0) 2023.08.02
kafka Consume  (0) 2023.08.02

"응용 프로그램"은 사용자가 특정 작업을 수행하기 위해 실행하는 소프트웨어를 가리킵니다.

이 응용 프로그램은 전통적인 모놀리식 구조일 수도 있고, MSA(Microservices Architecture)와 같은 구조일 수도 있습니다.

따라서 Application은  MSA보다 더 넓은 범위를 가집니다.


응용 프로그램(Application)

사용자가 특정 작업을 수행하기 위해 실행하는 소프트웨어의 집합.

전통적인 모놀리식 구조일 수도 있고, MSA(Microservices Architecture)와 같은 구조일 수도 있습니다.

 

MSA (Microservices Architecture)

응용 프로그램을 작은 서비스들로 분리하는 아키텍처 스타일.
각 서비스는 특정 기능에 초점을 맞추며 독립적으로 동작합니다.

반응형

'System Architect' 카테고리의 다른 글

위임(delegate) 패턴  (0) 2024.02.17
graphQL  (0) 2023.10.12
gRPC  (0) 2023.10.11
시스템설계 Q&A 2  (0) 2023.09.20
데이터 분석 관련 정리  (0) 2023.08.19

+ Recent posts