Java源码示例:com.aliyun.openservices.aliyun.log.producer.LogProducer
示例1
@Override
public void start() {
super.start();
ProjectConfig projectConfig = buildProjectConfig();
producerConfig.getProjectConfigs().put(projectConfig);
producerConfig.setBatchCountThreshold(batchCountThreshold);
producerConfig.setBatchSizeThresholdInBytes(batchSizeThresholdInBytes);
producerConfig.setIoThreadCount(ioThreadCount);
producerConfig.setRetries(retries);
producerConfig.setBaseRetryBackoffMs(baseRetryBackoffMs);
producerConfig.setLingerMs(lingerMs);
producerConfig.setMaxBlockMs(maxBlockMs);
producerConfig.setMaxRetryBackoffMs(maxRetryBackoffMs);
producer = new LogProducer(producerConfig);
}
示例2
private Producer createProducer(ConfigWrapper configWrapper) {
ProducerConfig producerConfig = new ProducerConfig();
producerConfig.setLingerMs(configWrapper.getInt(FLUSH_INTERVAL_MS,
ProducerConfig.DEFAULT_LINGER_MS));
producerConfig.setRetries(configWrapper.getInt(MAX_RETRIES,
ProducerConfig.DEFAULT_RETRIES));
producerConfig.setBaseRetryBackoffMs(
configWrapper.getLong(BASE_RETRY_BACK_OFF_TIME_MS,
ProducerConfig.DEFAULT_BASE_RETRY_BACKOFF_MS));
producerConfig.setMaxRetryBackoffMs(
configWrapper.getLong(MAX_RETRY_BACK_OFF_TIME_MS, ProducerConfig.DEFAULT_MAX_RETRY_BACKOFF_MS));
producerConfig.setMaxBlockMs(
configWrapper.getLong(MAX_BLOCK_TIME_MS, ProducerConfig.DEFAULT_MAX_BLOCK_MS));
producerConfig.setIoThreadCount(
configWrapper.getInt(IO_THREAD_NUM, ProducerConfig.DEFAULT_IO_THREAD_COUNT));
Producer producer = new LogProducer(producerConfig);
ProjectConfig config = new ProjectConfig(project,
configWrapper.getString(ConfigConstants.LOG_ENDPOINT),
configWrapper.getString(ConfigConstants.LOG_ACCESSSKEYID),
configWrapper.getString(ConfigConstants.LOG_ACCESSKEY));
producer.putProjectConfig(config);
return producer;
}
示例3
@Override
protected LogProducer produceNormalClient(String accessId, String accessKey) {
ProjectConfigs projectConfigs = new ProjectConfigs();
ProjectConfig projectConfig = new ProjectConfig(this.projectName, this.endPoint, accessId, accessKey);
projectConfigs.put(projectConfig);
producerConfig = new ProducerConfig(projectConfigs);
producerConfig.setLingerMs(flushInterval);
producerConfig.setRetries(maxRetryTimes);
LogProducer producer = new LogProducer(producerConfig);
return producer;
}
示例4
@Override
protected LogProducer produceStsClient(String accessId, String accessKey, String securityToken) {
ProjectConfigs projectConfigs = new ProjectConfigs();
ProjectConfig projectConfig = new ProjectConfig(this.projectName, this.endPoint, accessId, accessKey, securityToken);
projectConfigs.put(projectConfig);
producerConfig = new ProducerConfig(projectConfigs);
producerConfig.setLingerMs(flushInterval);
producerConfig.setRetries(maxRetryTimes);
LogProducer producer = new LogProducer(producerConfig);
return producer;
}
示例5
@Test
public void testClose() throws ProducerException, InterruptedException {
LogProducerProvider producerProvider = new LogProducerProvider(
"test-project", "test-endpoint", "test-ak", "test-secret", 1, 100);
LogProducer producer = Mockito.mock(LogProducer.class);
Whitebox.setInternalState(producerProvider, "client", producer);
Mockito.doThrow(new InterruptedException()).doNothing().when(producer).close();
producerProvider.closeClient();
Mockito.verify(producer, Mockito.times(2)).close();
}
示例6
@Test
public void testCommit() throws ProducerException, InterruptedException, IOException {
SlsRecordResolver<Row> serializationSchema = Mockito.mock(SlsRecordResolver.class);
SlsOutputFormat<Row> outputFormat = new SlsOutputFormat(
"", "", "", "test_project", "test_store", serializationSchema);
LogProducer producer = Mockito.mock(LogProducer.class);
LogProducerProvider producerProvider = Mockito.mock(LogProducerProvider.class);
Mockito.when(producerProvider.getClient()).thenReturn(producer);
SettableFuture future = SettableFuture.create();
// Use any() instead of anyString() because in Mockito 2.x, anyString() does not match null any more,
// which may cause the test to fail.
Mockito.when(
producer.send(
Mockito.eq("test_project"),
Mockito.eq("test_store"),
Mockito.any(),
Mockito.any(),
Mockito.any(),
Mockito.anyList())).thenReturn(future);
ExecutorService executor = Executors.newSingleThreadExecutor();
Whitebox.setInternalState(outputFormat, "logProducerProvider", producerProvider);
Whitebox.setInternalState(
outputFormat, "sendFutureCallback", outputFormat.new SendFutureCallback());
Whitebox.setInternalState(outputFormat, "executor", executor);
Whitebox.setInternalState(outputFormat, "latencyGauge", Mockito.mock(MetricUtils.LatencyGauge.class));
Whitebox.setInternalState(outputFormat, "outTps", Mockito.mock(Meter.class));
Row record = new Row(3);
record.setField(0, 100);
record.setField(1, 1000);
record.setField(2, "test");
outputFormat.writeRecord(record);
AtomicLong numSent = (AtomicLong) Whitebox.getInternalState(outputFormat, "numSent");
AtomicLong numCommitted = (AtomicLong) Whitebox.getInternalState(outputFormat, "numCommitted");
assertEquals(1, numSent.get());
assertEquals(0, numCommitted.get());
// trigger call back.
future.set(new Result(true, null, 0));
// wait call back finished.
executor.awaitTermination(1, TimeUnit.SECONDS);
assertEquals(1, numSent.get());
assertEquals(1, numCommitted.get());
}
示例7
public Producer createProducer() {
projectConfig = buildProjectConfig();
Producer producer = new LogProducer(producerConfig);
producer.putProjectConfig(projectConfig);
return producer;
}
示例8
public Producer createProducer() {
projectConfig = buildProjectConfig();
Producer producer = new LogProducer(producerConfig);
producer.putProjectConfig(projectConfig);
return producer;
}