Amazon SQS FIFO Queue – Получаване на общо 10 съобщения, но въпреки това налагане на броя на MessageGroupId?

В рамките на моя проект имам група отдалечени възли, които имат данни за тях, които трябва да бъдат изтеглени и да настроя FIFO SQS опашка и мога да изпращам и изтеглям съобщение към/от нея, за да изтегля данните.

Тъй като тези възли са отдалечени, те може да имат ограничена честотна лента, така че използвам MessageGroupId, за да наложа не повече от 2 съобщения в полет на отделен възел, за да гарантирам, че получаваме не повече от 2 едновременни връзки във всеки даден момент.

За съжаление, изглежда, че единствената налична опция при извикване на receiveMessage() е MaxNumberOfMessages, която варира от 1-10, но също така е равна на броя на MessageGroupId, разрешен в отговора. Така че това означава, че моите receiveMessage() повиквания трябва да бъдат 2 или по-малко, за да предотвратя повече от 2 едновременни връзки към моите отдалечени възли наведнъж.

Така че въпросът ми тук е, греша ли? Моля, някой да ми каже, че греша, и да ми покаже опция, при която мога да задам MaxNumberOfMessages = 10 и нещо като MessageGroupIdMax на 2 или нещо подобно. Бих предпочел да изтегля 10 съобщения наведнъж и да знам, че получавам само 2 на MessageGroupId, така че да не се налага да се обаждам на опашката толкова често.

Благодаря предварително!


person tatorface    schedule 23.01.2020    source източник
comment
Не мисля, че е възможно (т.е. прав си). Бих избрал sqs async клиент за оптимизиране на обажданията. Вижте sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/   -  person Sergey Romanovsky    schedule 28.01.2020
comment
Благодаря, предполагам, че ще приема тази ужасна съдба :)   -  person tatorface    schedule 01.02.2020


Отговори (1)


Така че наехме консултант, за да потвърди основно това, което предположих. Не можете да отделите броя на получените съобщения от максималния брой на идентификатор на група съобщения, те са едно и също. За да обработите стотици групи съобщения наведнъж, имате нужда само от тон работници, обработващи опашката.

person tatorface    schedule 06.02.2020