Skip to content
metacret edited this page Oct 30, 2014 · 3 revisions

Notice is sent and received by Suro sinks. For example, LocalFileSink can notify S3FileSink about its file rotation, and S3FileSink can get notice from LocalFileSink and start uploading files accordingly. After uploading is finished, S3FileSink can send corresponding notice to the next receiver. Notice interface can be created in its JSON configuration with the type property. Notice interface sends String messages with send() method and receives String messages with recv() method.

Note that specifically, LocalFileSink should have queue type notice by default to talk with S3FileSink. Also, when Notice.send() fails, RemoteFileSink including S3FileSink and HdfsFileSink will deleting files even though uploading is successful. So, if you don't have any requirements to communicate with downstream side, you have to use NoNotice.

NoNotice: "type":"no"

An no-op. Its recv() method will return null if called.

QueueNotice: "type":"queue"

It uses a Java BlockingQueue internally. The send() method offers messages into the queue and recv() method polls from the queue. Its properties are the following:

Key Description type Default value
length capacity of of the queue int 100
recvTimeout timeout value in milliseconds on polling the queue int 1000

SQSNotice: "type":"sqs"

It sends messages to AWS SQS. Its properties are the following:

Key Description type Default value
queues the list of SQS queue names List
region AWS region where SQS queues are String
connectionTimeout SQS API client configuration connection timeout in milliseconds long 50000
maxConnections SQS API client configuration the number of connections int 50
socketTimeout SQS API client configuration socket timeout in milliseconds long 50000
maxErrorRetry SQS API client configuration the maximum number of retries int 3
Clone this wiki locally