Я новичок в интеграции весной, мое требование - я получу один HTTP-запрос к моей интеграции с весной, тогда мне нужно будет следовать нижеуказанным шагам.Весенняя интеграция http входящего шлюза проблема соотечественника
1) получить HTTP Request 2) отправить ThirdParty (MQ) 3) будет Получать ответ от MQ 4) обработать сообщение и послать назад к клиенту.
Я закончил с этим приложением и работал нормально, но когда, если я получаю несколько запросов одновременно, я сталкиваюсь с проблемой, например, при отправке запроса в Thridaprty. Я создаю некоторые UUID и коррелид в своем заголовке и сохраняю в своем локальный кеш, поэтому, если несколько запросов поступают в одно и то же время, мой код создает одинаковые коррелированные идентификаторы.
Я подозреваю, что существует проблема с несколькими запросами за одни миллионы секунд.
любезно сообщите мне, что происходит не так.
Вот мой конфигуратор, который отлично работает для одного запроса.
<int-http:inbound-gateway id="requestGateway"
supported-methods="GET"
request-channel="requestChannel"
reply-channel="replyChannel"
path="${cuteRequestURL}"
reply-timeout="${cuteRequestTimeout}"
>
</int-http:inbound-gateway>
<int:channel id="requestChannel"/>
<bean id="mapToSI" class="aero.sita.fw.cutelvihttp.helper.TransformLinkedMultiValueMapToSIMsg"/>
<int:transformer id="abc"
input-channel="requestChannel"
output-channel="Map"
ref="mapToSI"
method="transformLinkeMapToSpringIntegrationMessage" />
<int:channel id="Map"/>
<bean id="constructRequiredParams" class="SomeParamLogic">
<constructor-arg name="Value1" value="A" />
<constructor-arg name="Value2" value="B" />
<constructor-arg name="Value3" value="C" />
</bean>
<int:transformer id="constructMessageHeaderVendor"
input-channel="Map"
output-channel="inputRequestChannel"
ref="constructRequiredParams"
method="amend" />
<int:channel id="inputRequestChannel" />
<int:service-activator input-channel="inputRequestChannel"
output-channel="responseValidatorChannel"
method="xyz"
ref="serviceActivator"/>
<int:channel id="responseValidatorChannel"/>
<bean id="serviceActivator" class="ServiceActivator"/>
<int:channel id="replyChannel"/>
<int:channel id="dataChannel" />
<int:service-activator input-channel="dataChannel"
ref="destinationQueue"
method="transform"/>
<bean id="destinationQueue" class="XYZ">
<property name="requestQueue" value="ProducerName" />
<property name="replyQueue" value="Replier" />
</bean>
<int-xml:validating-filter discard-channel="errorChannel"
id="jmsInValidator"
input-channel="dataChannel"
output-channel="nullChannel"
schema-location="ThirdParty.xsd"
schema-type="xml-schema"
throw-exception-on-rejection="true" />
<int-xml:validating-filter discard-channel="errorChannel"
id="jmsInValidator"
input-channel="responseValidatorChannel"
output-channel="replyChannel"
schema-location="classpath:Client.xsd"
schema-type="xml-schema"
throw-exception-on-rejection="true" />
Не знаете, почему вы показываете конфигурацию интеграции, что вы подтверждаете, что состояние гонки в вашем коде генерирует эту uuid и корреляцию. Я думаю, вы должны показать это вместо этого. И еще лучше просто напишите какой-нибудь тест-тест, чтобы обнаружить состояние гонки. Otoh, вы должны думать, чтобы использовать существующие алгоритмы uuid, чтобы избежать столкновений. Кроме того, существуют «блокирующие» барьеры для защиты ресурса от одновременного доступа. В любом случае проблемы смотрятся далеко от Spring Integration –
Спасибо Artem Bilan за ваш ответ. – user3749024
Спасибо Artem Bilan за ваш ответ. Позвольте мне пересмотреть мой вопрос, интеграция Spring - это потокобезопасная? Я использую активатор службы для прослушивания ответа третьей стороны (запрос/ответ), как только я получаю ответ, отправляемый обратно клиенту HTTP. HTTP -> my applicaiton - это синхронный режим, а мое приложение -> MQ Applicaiotn - это Aysnchrouns, поэтому активатор службы будет поддерживать threadafety здесь, вот что я хотел бы спросить, любезно подсказать, согласно вашему предложению я изменил создание UUID его рабочего штрафа, который проблема решена, теперь я хочу знать о потоковом безопасном – user3749024