Jul 24th, 2011, 07:24 AM
Custom AOP proxy and messaging provider for ZeroMQ
Quick comment - this question is not addressed to Spring Integration forum, since I need to implement a really lightweight solution. Options about Apache Camel and Spring Integration may not fit the requirements.
I'm considering ZeroMQ as a replacement for the existing JMS and REST integrations in our large web application. Main goal - to reduce both invocation latency and memory footprint for the clustered components. To increase scalability and overall capacity, while keeping HW resources and network bandwidth conserved.
ZeroMQ will serve a role of the transport bus for asynchronous and synchronous invocations among all clustered components.
Again, some other more heavyweight options like ESB (Mule, JBoss ESB, Apache ServiceMix) have been considered in the past already.
Vision for ZeroMQ usage in a pair with Spring Framework:
- Spring AOP Proxy - to be used on the client side for hiding all ZeroMQ related logic: endpoint configuration and creation, request-response operations etc.
- Spring configuration exposed via JNDI - centralized registry of endpoint configurations
- ZeroMQ message listener interface - now here goes the main question...
Question: we need to have MessageListener interface for ZeroMQ, in the same way as for JMS receiving endpoints. How this can be implemented in Spring? So the receiving components for ZeroMQ will be regular message-driven POJOs like for JMS.
Jul 24th, 2011, 08:32 AM
It looks like I've found the answer in the sources of Spring:
1. org.springframework.remoting.rmi - to be used as a basis for implementation of ZeroMQ proxies and factories
2. org.springframework.jms.remoting.JmsInvokerService Exporter - for the last question about the message listeners for ZeroMQ endpoints
So the preliminary contents of org.springframework.remoting.zeromq will look like this: