ListenTCP

ListenTCP

들어오는 TCP 연결을 수신하고 각 연결에서 줄 구분자를 메시지 구분 기호로 사용해 데이터를 읽는 프로세서예요. 기본 동작은 각 메시지가 단일 FlowFile을 생성하는 것이지만, Batch Size를 더 큰 값으로 늘려 처리량을 높일 수 있어요. Receive Buffer Size는 수신이 예상되는 가장 큰 메시지만큼 커야 해요. 즉, 100kb마다 줄 구분자가 있다면 Receive Buffer Size는 100kb보다 커야 해요. 이 프로세서는 SSL Context Service를 사용하도록 구성해 보안 연결만 허용할 수 있어요. 연결된 클라이언트가 상호 TLS 인증용 인증서를 제시하면 클라이언트 인증서 issuer와 subject의 Distinguished Names가 출력 FlowFiles에 속성으로 추가돼요. 프로세서는 Distinguished Name 값에 기반한 권한 부여를 수행하지 않지만, 이 값들이 출력 FlowFiles에 첨부되므로 이러한 속성을 기반으로 권한 부여를 구현할 수 있어요.

출처: Snowflake 문서

본문

기능 — 일반 제공(Generally Available)

Openflow Snowflake 배포는 AWS, Azure, GCP Commercial 리전의 모든 계정에서 사용할 수 있어요. Openflow BYOC 배포는 AWS Commercial 리전의 모든 계정에서 사용할 수 있어요.

Bundle

org.apache.nifi | nifi-standard-nar

설명 (Description)

들어오는 TCP 연결을 수신하고 각 연결에서 줄 구분자를 메시지 구분 기호로 사용해 데이터를 읽어요. 기본 동작은 각 메시지가 단일 FlowFile을 생성하는 것이지만, Batch Size를 더 크게 해 처리량을 높일 수 있어요. Receive Buffer Size는 수신이 예상되는 가장 큰 메시지만큼 크게 설정해야 해요. 즉, 100kb마다 줄 구분자가 있다면 Receive Buffer Size는 100kb보다 커야 해요. 이 프로세서는 SSL Context Service를 사용해 보안 연결만 허용하도록 구성할 수 있어요. 연결된 클라이언트가 상호 TLS 인증용 인증서를 제시하면 클라이언트 인증서의 issuer와 subject의 Distinguished Names가 출력 FlowFiles에 속성으로 추가돼요. 프로세서는 Distinguished Name 값에 기반한 권한 부여를 수행하지 않지만, 이 값이 출력 FlowFiles에 첨부되므로 이 속성들을 기반으로 권한 부여를 구현할 수 있어요.

태그 (Tags)

listen, ssl, tcp, tls

입력 요구사항 (Input Requirement)

FORBIDDEN (금지)

민감한 동적 속성 지원 (Supports Sensitive Dynamic Properties)

false

속성 (Properties)

Property Description
Batching Message Delimiter 여러 메시지가 함께 묶일 때 메시지 사이에 넣을 구분자를 지정해요( 속성 참고).
Character Set 수신 데이터의 문자 집합을 지정해요.
Client Auth SSL Context에 사용할 클라이언트 인증 정책이에요. SSL Context Service가 제공되는 경우에만 사용돼요.
Local Network Interface 수신 대기를 특정 LAN으로 제한하는 데 사용할 로컬 네트워크 인터페이스 이름이에요.
Max Batch Size 단일 FlowFile에 추가할 메시지의 최대 수예요. 여러 메시지가 있으면 이 구성된 최대 메시지 수까지 와 함께 연결돼요.
Max Size of Message Queue 기본 채널에서 프로세서로 전송되는 메시지를 버퍼링하는 데 사용하는 내부 큐의 최대 크기예요. 이 값을 높이면 수신 메시지 급증 시 더 많은 메시지를 메모리에 버퍼링할 수 있지만, 이 급증 동안 프로세서가 사용하는 총 메모리가 늘어나요.
Max Size of Socket Buffer 사용할 socket buffer의 최대 크기예요. 이는 socket buffer가 얼마나 커야 하는지 운영 체제에 알려주는 제안이에요. 너무 낮게 설정하면 데이터를 읽기 전에 버퍼가 가득 차 들어오는 데이터가 버려질 수 있어요.
Port 통신을 위해 수신 대기할 포트예요.
Receive Buffer Size 메시지를 수신하는 데 사용하는 각 버퍼의 크기예요. 들어오는 메시지의 예상 크기에 따라 적절히 조정하세요.
SSL Context Service SSL Context를 얻기 위해 사용할 Controller Service예요. 설정하면 메시지가 보안 연결을 통해 수신돼요.
Worker Threads TCP 연결 서비스에 사용할 수 있는 최대 worker 스레드 수예요.
idle-timeout 데이터가 수신되지 않으면 클라이언트 연결이 열려 있는 시간이에요. 기본값 0초는 클라이언트가 닫을 때까지 연결을 열어 둬요.
pool-receive-buffers 소켓 연결에서 받은 바이트를 처리할 때 프로세서가 사용하는 버퍼의 풀링을 활성화/비활성화해요. 프레임워크는 처리 중 필요에 따라 버퍼를 할당해요.

관계 (Relationships)

Name Description
success 성공적으로 수신된 메시지는 이 관계로 전송돼요.

쓰기 속성 (Writes attributes)

Name Description
tcp.sender 메시지의 전송 호스트예요.
tcp.port 메시지가 수신된 전송 포트예요.
client.certificate.issuer.dn 상호 TLS를 사용하는 연결의 경우 클라이언트 인증서를 발급한 Certificate Authority의 Distinguished Name이 FlowFile에 첨부돼요.
client.certificate.subject.dn 상호 TLS를 사용하는 연결의 경우 클라이언트 인증서 소유자(subject)의 Distinguished Name이 FlowFile에 첨부돼요.

더 알아보기 (Learn more)