Я внедрил микросервис, который считывает сообщения из очереди AWS SQS и сохраняет их в Redis.Есть ли возможность повысить производительность действия сохранения в Redis, например, за счет одновременного сохранения нескольких объектов?
Мой класс конфигурации:
public JmsConfig(
@Value("${amazon.sqs.accessKey}") String awsAccessKey,
@Value("${amazon.sqs.secretKey}") String awsSecretKey,
@Value("${amazon.sqs.region}") String awsRegion,
@Value("${amazon.sqs.endpoint}") String awsEndpoint) {
connectionFactory = new SQSConnectionFactory(
new ProviderConfiguration(),
AmazonSQSClientBuilder.standard()
.withCredentials(new AWSStaticCredentialsProvider(
new BasicAWSCredentials(awsAccessKey, awsSecretKey)))
.withEndpointConfiguration(new AwsClientBuilder.EndpointConfiguration(awsEndpoint, awsRegion))
.build());
}
@Bean
public DefaultJmsListenerContainerFactory jmsListenerContainerFactory() {
DefaultJmsListenerContainerFactory factory =
new DefaultJmsListenerContainerFactory();
factory.setConnectionFactory(this.connectionFactory);
factory.setDestinationResolver(new DynamicDestinationResolver());
factory.setConcurrency("3-10");
factory.setSessionAcknowledgeMode(Session.CLIENT_ACKNOWLEDGE);
factory.setReceiveTimeout(2000L);
return factory;
}
И мой слушатель - теперь он читает и сохраняет одинсообщение во время:
@JmsListener(destination = "${amazon.sqs.destination}")
public void receive(String requestJSON) {
try {
Trace trace = Trace.fromJSON(requestJSON);
traceRepository.save(trace);
} catch (IOException ex) {
(...)
Есть ли возможность сохранить сразу несколько объектов?Или это не нужно, потому что Redis быстрый?Каково твое мнение?Я должен читать и сохранять около 8000-10000 сообщений в день.
Спасибо, Мэтью