0
votes

I've been using Spring Integration framework (JMS Outbound and JMS Inbound Gateway component) to address messaging needs. I'm quite satisfied with the result that I'm seeing. However that said, I would like to know more about how does these components support clustering, fault tolerance and performance?

1
That's a function of your JMS broker; these components support those attributes to the extent that your broker does. This question is too general; if you have specific questions, please elaborate. - Gary Russell
Hello Gary, thanks for your comment. We are now in process of finalizing which framework to use for the integration. If we use EJB’s then we can manage the thread pools dynamically through the web container. How will this be achieved using Spring Integration? How does this SI components like JMS Inbound /Outbound gateway, channel support clustering, fault tolerance and performance? - Hitesh Goradia
Concurrency is controlled by attributes defined on the message-driven adapter; read the documentation; as I said, the other characteristics are a function of the broker and Spring Integration utilizes them as with any JMS client. Again; please be more specific with your questions. - Gary Russell
(a)HTTP gateway asynchronous support – client and server side:-How we can make asynchronous requests to endpoints and handle retry/timeouts.- how is SI supports use of HTTPS through proxy with simple configuration.(b) JMS Inbound and Outbound Gateway:-Horizontal scalability-what configuration is required for Clustered consumers on JMS with MessageDriven POJOs.-Vertical scalability-how is SI addressing dynamic scaling on Message Driven POJOs thread pools changes at runtime without the need to restart the application(s)? - Hitesh Goradia
Edit your question with these specifics, don't just add them as a comment. - Gary Russell

1 Answers

0
votes

(a) There is currently no support for async http; retry is configurable with a retry advice; https configuration (server side) is a function of the web container that the SI gateway runs in; simple client-side https just works via the URL; for more sophistication you can configure the client request factory.

(b) Horizontal - no special configuration is required; instances are competing consumers on the queue(s). Vertical - set the concurrency on the container (concurrentConsumers and maxConcurrentConsumers) the container will adjust the threads depending on workload. These can be changed at runtime, programmatically or over JMX, for example. See the javadocs for the DMLC.