Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 2 Next »

InfluxDB subscriptions는 InfluxDB에 기록된 모든 데이터가 local 또는 remote endpoint로 복사됩니다.
Subscriptions는 주로 Kapacitor와 함께 사용되지만 UDP, HTTP 또는 HTTPS 연결을 할 수 있는 모든 Endpoint는 InfluxDB에 “SUBSCRIPTION”을 생성하여 모든 데이터의 사본을 받을 수 있습니다.

How subscriptions work

데이터가 InfluxDB에 Write 될 때, HTTP, HTTPS 또는 UDP line protocol을 통해 Subscriber endpoint에 복제됩니다.
InfluxDB subscriber service는 여러 개의 “writers"(goroutines)를 생성하여 Subscription endpoints에 Write 데이터를 전송합니다.

Writer goroutines의 개수는 influxdb.conf의 write-concurrency 설정으로 정의됩니다.

InfluxDB에 Writes가 발생될 때, 각각의 Subscription writer는 지정된 Subscription endpoints로 Write 된 데이터를 전송합니다. 그러나 write-concurrency(multiple writers)의 부하와 수집속도로 인해 Writer processes와 Transport layer의 Nanosecond의 차이가 발생할 수 있으며, 이에 따라 차례로 수신되지 않을 수 있습니다.

InfluxDB에 Writes가 발생할 때, 각각의 Subscription writer는 지정된 Subscription endpoints로 Write 된 데이터를 전송합니다. 그러나 write-concurrency(multiple writers)의 부하와 수집속도로 인해 Writer processes와 Transport layer의 Nanosecond의 차이가 발생할 수 있으며, 이에 따라 차례로 수신되지 않을 수 있습니다.

Important information about high write loads

While setting the subscriber write-concurrency to greater than 1 does increase your subscriber write throughput, it can result in out-of-order writes under high ingest rates. Setting write-concurrency to 1 ensures writes are passed to subscriber endpoints sequentially, but can create a bottleneck under high ingest rates.

What write-concurrency should be set to depends on your specific workload and need for in-order writes to your subscription endpoint.

InfluxQL subscription statements

아래의 InfluxQL 문을 사용하여 Subscriptions를 관리하십시오.

CREATE SUBSCRIPTION
SHOW SUBSCRIPTIONS
DROP SUBSCRIPTION

Create subscriptions

InfluxQL문 CREATE SUBSCRIPTION을 사용하여 Subscriptions를 생성합니다.
CREATE SUBSCRIPTION은 Subscription name, Database name, Retention policy, InfluxDB에 Write 된 데이터를 복사해야 하는 Host의 URL이 필요하며 구문은 아래 예시를 참고하십시오.

-- Pattern:
CREATE SUBSCRIPTION "<subscription_name>" ON "<db_name>"."<retention_policy>" DESTINATIONS <ALL|ANY> "<subscription_endpoint_host>"

-- Examples:
-- Create a SUBSCRIPTION on database 'telegraf' and retention policy 'autogen' that sends data to 'example.com:9090' via HTTP.
CREATE SUBSCRIPTION "cloudhub_sub" ON "telegraf"."autogen" DESTINATIONS ALL 'http://example.com:9090'

-- Create a SUBSCRIPTION on database 'telegraf' and retention policy 'autogen' that round-robins the data to 'h1.example.com:9090' and 'h2.example.com:9090' via UDP.
CREATE SUBSCRIPTION "cloudhub_sub" ON "telegraf"."autogen" DESTINATIONS ANY 'udp://h1.example.com:9090', 'udp://h2.example.com:9090'

수신할 Host에서 사용자 인증을 사용할 경우 자격 증명을 아래 예시와 같이 포함하도록 URL을 입력하십시오.

-- Create a SUBSCRIPTION on database 'telegraf' and retention policy 'autogen' that sends data to another InfluxDB on 'example.com:8086' via HTTP. Authentication is enabled on the subscription host (user: subscriber, pass: secret).
CREATE SUBSCRIPTION "cloudhub_sub" ON "telegraf"."autogen" DESTINATIONS ALL 'http://subscriber:secret@example.com:8086'

SHOW SUBSCRIPTIONS문은 CREATE SUBSCRIPTION으로 생성한 인증계정과 URL을 모두 출력합니다.

여러 Host로 Subscription data 전송

CREATE SUBSCRIPTION문을 사용하여 여러 Hosts의 Endpoints를 DESTINATIONS 절에 쉼표로 구분하여 지정할 수 있습니다.
또한 DESTINATIONS 절 뒤에 ALL 또는 ANY으로 구분하여 Endpoint에 쓰는 방법을 결정합니다.

ALL : 지정된 모든 Host에 기록합니다.

ANY : Round robin방식으로 지정된 Host에 기록합니다.

여러 Hosts의 Subscriptions 방법

-- Write all data to multiple hosts
CREATE SUBSCRIPTION "cloudhub_sub" ON "telegraf"."autogen" DESTINATIONS ALL 'http://host1.example.com:9090', 'http://host2.example.com:9090'

-- Round-robin writes between multiple hosts
CREATE SUBSCRIPTION "cloudhub_sub" ON "telegraf"."autogen" DESTINATIONS ANY 'http://host1.example.com:9090', 'http://host2.example.com:9090'

Subscription protocols

Subscriptions은 HTTP, HTTPS, or UDP 전송 프로토콜을 사용할 수 있습니다.

사용할 엔드 포인트는 구독 엔드 포인트에서 예상 한 프로토콜에 따라 결정됩니다.

사용은 서브스크립션 엔드포인트에서 기대하는 프로토콜에 의해 결정됩니다

Which to use is determined by the protocol expected by the subscription endpoint. If creating a Kapacitor subscription, this is defined by the subscription-protocol option in the [[influxdb]] section of your kapacitor.conf.

  • No labels