170 похожих чатов

Добрый день! Есть ли простая возможность исполнять метод rest контроллера

(Spring) всегда в одном и том же потоке для одного и того же заголовка X-Forwarded-For?
общий смысл в том, чтобы запросы для однгого метода контроллера выполнялись последовательно для одного и того же клиента

7 ответов

5 просмотров

добрый! тупое решение: 1. контроллер возвращает что-то, типа DeferredResult 2. контроллер принимает запрос и сразу его отдает в кастомный executor (скорей всего, это будет набор executors, а конкретный запрос будет выполняться в executor, выбранном на основе хэша от X-Forwarded-For) (a-ka Affinity Executor)

Azat-Yarullin Автор вопроса
Denis Pavlyuchenko
добрый! тупое решение: 1. контроллер возвращает чт...

ну, это первое что приходит на ум, но это не быстрый способ

Azat-Yarullin Автор вопроса
Denis Pavlyuchenko
добрый! тупое решение: 1. контроллер возвращает чт...

а можно же, наверное, сделать так, если я не ошибаюсь: synchronized (ip.intern()) { ... }

Azat Yarullin
а можно же, наверное, сделать так, если я не ошиба...

это очень нехорошо выглящее решение по нескольким причинам

Azat Yarullin
?

1. https://stackoverflow.com/questions/133988/synchronizing-on-string-objects-in-java 2. мы блокируем потоки пула условного томката, когда всего-то хотели обработать запросы в правильном порядке - что случится, если придет 200 запросов с этим ip, и 200 с другими? 3. возможно, использовать synchronized в новом коде - не лучшая затея из-за loom - https://cr.openjdk.java.net/~rpressler/loom/loom/sol1_part1.html

Azat-Yarullin Автор вопроса
Denis Pavlyuchenko
1. https://stackoverflow.com/questions/133988/sync...

еще я посмотрел вот в эту сторону

Похожие вопросы

Обсуждают сегодня

А чем вам питонисты не угодили?😂
.
79
Язык Си можно выучить за день? По книжке ANSI C на 230 страниц
Vincent Vegan
29
Всем привет, написал код ниже, но он выдает сегфолт, в чем причина? #include <stdio.h> #include <stdlib.h> #include <string.h> struct product { char *name; float price; };...
buzz базз
75
Dim Dim, [02.07.2024 11:07] DB 0x62 Dim Dim, [02.07.2024 11:07] DB 0x66 Dim Dim, [02.07.2024 11:07] кто пояснит что это?
Dim Dim
14
Ошибка: segmentation fault (core dumped) Код: pastebin.com/BEsNNSSV Сообщение от компилятора: отсутствует ОС: Arch Linux Ядро: x86_64 Linux 6.9.7-arch1-1 Процессор: Intel Cele...
sec
4
Ребят, а за скок можно впарить анон чат с апишкой и веб админкой ?
Eugene Неелов
15
Ещё такой вопрос. Мне необходимо хранить пароль пользователя локально. Для этого планирую использовать ini файл. Это для автозаполнения полей логин и пароль при авторизации. Е...
Евгений
19
Кстати, я тут еще с одной темой столкнулся, вот учу я C++, на таком то ресурсе, а остальные постоянно советуют практиковаться, что то писать, проекты, но как писать если вот т...
aaswq1
7
Добрый день, чат. Мне в очередь из других RabbitMQ по shovel валятся метрики в формате текста для Prometheus. Помогите пожалуйста подружить RabbitMQ и Prometheus, чтобы он (...
Aleksey
4
Коллеги, как получить PId для собственного процесса из под линукса?
Роман Лях (rgreat)
6
Карта сайта