Как проверить потокобезопасность RestTemplate? - PullRequest
1 голос
/ 30 марта 2019

Я понимаю, что RestTempalte является поточно-ориентированным после его создания, о чем также говорится в этом посте о StackOverflow Является ли RestTemplate потоком безопасным?

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

Я просто хотел бы сделать 2 вызова с использованием экземпляра singleton restTemplate и добиться успеха.Требование сделать это потому, что я хочу, чтобы это было наглядно.Существуют ли какие-либо встроенные служебные методы RestTemplate, которые я могу использовать, чтобы продемонстрировать это?

1 Ответ

1 голос
/ 30 марта 2019

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

Второе - не имеет смысла тестировать код за пределами вашей кодовой базы. RestTemplate является потокобезопасным - доказывать это не нужно.

При этом вы можете создать группу потоков, внутри которых вы вызываете те же вызовы для вашего единственного экземпляра restTemplate. Вы можете приостановить потоки на несколько секунд, чтобы «быть уверенным», что вызов restTemplates будет запущен одновременно.

Поднимитесь на один уровень абстракции выше и используйте ExecutorService (например, Executors.newFixedThreadPool(N);) и отправьте ему вызываемые объекты (которые вызывают тот же экземпляр restTemplate).

Некоторые внешние параметры JDK: JMeter и concurrent-junit .

...