Kinesis Streams и каналы весенней интеграции - PullRequest
0 голосов
/ 12 июня 2018

Я разрабатываю потребителя, который потребляет события из нескольких потоков Kinesis.У меня есть несколько вопросов, чтобы понять лучшие практики.

  1. Должен ли я создать один канал на поток?Какие факторы должны учитываться при выборе между «канал на поток» или «один канал для всех потоков»?

  2. Какой канал лучше подходит для моей ситуации?Существуют разные типы каналов, такие как PollableChannel, SubscribealeChannel и DirectChannel.

Спасибо

1 Ответ

0 голосов
/ 13 июня 2018

KinesisMessageDrivenChannelAdapter является активным компонентом и выполняет потребление и отправку сообщений в исполнителе задач.Поэтому вы можете подумать, что не следует сдвигать сообщения на QueueChannel или ExecutorChannel - логика уже асинхронна и включает достаточно потоков на компьютере.На самом деле гораздо лучше не переносить обработку в отдельный поток, не занимать этот поток потребления и не опрашивать больше записей из Kinesis в памяти.

Один KinesisMessageDrivenChannelAdapter может, по сути, выполнятьта же работа для нескольких потоков в качестве нескольких отдельных адаптеров для другого потока - будет использоваться емкость потока на машине.

Нам нужны разные адаптеры канала в случае разной логики обработки или разных типов данных, или разного кинезисаВарианты клиента.Во всех остальных случаях достаточно одного экземпляра.

...