Hi Kunal,

What kind of workload is your broker cluster designed for? I don't think
there is an easy answer here as these two brokers have different sets of
features implemented. It really depends on your requirements on supported
features and performance. For instance, if your application requires JMS
2.0, then Artemis provides full support and ActiveMQ only provides partial
support.

That being said, I believe there is still a community of active
contributors for ActiveMQ Classic out there adding and planning to add new
features. You can browse its Jira tickets
<https://issues.apache.org/jira/projects/AMQ/issues/AMQ-9590?filter=allissues>
to get a sense of what activities are happening.

Thanks,
Ken

On Thu, Oct 3, 2024 at 6:56 PM Kunal Rao <ku...@mechination.com.au> wrote:

> Thanks Justin.
> I am planning to use Amazon MQ (only supports classic) as a central broker
> and Artemis as satellite brokers with the assumption that artemis is a more
> supported product and classic is treated as legacy with regards to
> development and support.
> Firstly, Is my assumption correct?
>
> We are considering three options:
> 1. Use "classic" everywhere. Amazon MQ can be used as a central broker.
> 2. Use "artemis" everywhere. benefits of Artemis outweigh "classic" and the
> use of managed service in Amazon MQ.
> 3. Hybrid approach. Use Amazon MQ centrally ( hoping artemis is on their
> roadmap) and Artemis on all satellite brokers.
>
> I would love to hear your thoughts on this please.
>
> Once again thanks for the prompt response.
>
> Kunal
>
> On Fri, 4 Oct 2024 at 00:51, Justin Bertram <jbert...@apache.org> wrote:
>
> > Just to clarify...ActiveMQ Classic doesn't support the Core protocol so
> > that is why you can't use a Core bridge to integrate.
> >
> >
> > Justin
> >
> > On Thu, Oct 3, 2024 at 8:29 AM Justin Bertram <jbert...@apache.org>
> wrote:
> >
> > > Yes. You can bridge messages from Artemis to Classic and vice versa.
> > > However, you can't use a Core bridge to do it. Core bridges, as the
> name
> > > suggests, use the Core protocol. A Core bridge can't use the AMQP
> > protocol.
> > >
> > > I recommend Camel since it's mature, powerful, and ubiquitous. You can
> > set
> > > up Camel routes on either Artemis or Classic. Here's [1] an example of
> > how
> > > to do it on Artemis.
> > >
> > > It's also possible to use the JMS bridge that ships with Artemis [2].
> > >
> > >
> > > Justin
> > >
> > > [1]
> > >
> >
> https://github.com/apache/activemq-artemis-examples/tree/main/examples/features/standard/camel
> > > [2]
> > >
> >
> https://github.com/apache/activemq-artemis-examples/tree/main/examples/features/sub-modules/inter-broker-bridge/artemis-jms-bridge
> > >
> > > On Thu, Oct 3, 2024 at 2:38 AM Kunal Rao <ku...@mechination.com.au>
> > wrote:
> > >
> > >> Hi,
> > >>
> > >> Is it possible to bridge artemis with classic broker?
> > >> I am trying with AMQP protocol.
> > >>
> > >> I am getting this error
> > >>
> > >> p1broker-1       | 2024-10-03 07:34:50,270 WARN
> > >>  [org.apache.activemq.artemis.core.server] AMQ224091: Bridge
> > >> BridgeImpl@6a3012f8 [name=amqp-bridge,
> > queue=QueueImpl[name=p1broker.out,
> > >> postOffice=PostOfficeImpl [server=ActiveMQServerImpl::name=0.0.0.0],
> > >> temp=false]@7af74850 targetConnector=ServerLocatorImpl
> (identity=Bridge
> > >> amqp-bridge)
> > >> [initialConnectors=[TransportConfiguration(name=activemq-classic-amqp,
> > >>
> > >>
> >
> factory=org-apache-activemq-artemis-core-remoting-impl-netty-NettyConnectorFactory)?port=5672&host=centralbroker&protocols=AMQP],
> > >> discoveryGroupConfiguration=null]] is unable to connect to
> destination.
> > >> Retrying
> > >> centralbroker-1  |  WARN | Connection attempt from non AMQP v1.0
> client.
> > >> ARTEMIS,0
> > >> centralbroker-1  |  WARN | Transport Connection to: tcp://
> > >> 172.19.0.3:33778
> > >> failed: Connection from client using unsupported AMQP attempted
> > >>
> > >> broker.xml
> > >> =========
> > >>
> > >> <acceptors>
> > >>
> > >> <acceptor name="artemis">
> > >> tcp://
> > >>
> > >>
> >
> 0.0.0.0:61616?tcpSendBufferSize=1048576;tcpReceiveBufferSize=1048576;amqpMinLargeMessageSize=102400;protocols=CORE,AMQP,STOMP,HORNETQ,MQTT,OPENWIRE;useEpoll=true;amqpCredits=1000;amqpLowCredits=300;amqpDuplicateDetection=true;supportAdvisory=false;suppressInternalManagementObjects=false
> > >> </acceptor>
> > >>
> > >> <!-- AMQP Acceptor. Listens on default AMQP port for AMQP traffic.-->
> > >> <acceptor name="amqp">
> > >> tcp://
> > >>
> > >>
> >
> 0.0.0.0:5672?tcpSendBufferSize=1048576;tcpReceiveBufferSize=1048576;protocols=AMQP;useEpoll=true;amqpCredits=1000;amqpLowCredits=300;amqpMinLargeMessageSize=102400;amqpDuplicateDetection=true;handshake-timeout=0
> > >> </acceptor>
> > >>
> > >> <!-- STOMP Acceptor. -->
> > >> <acceptor name="stomp">
> > >> tcp://
> > >>
> > >>
> >
> 0.0.0.0:61613?tcpSendBufferSize=1048576;tcpReceiveBufferSize=1048576;protocols=STOMP;useEpoll=true
> > >> </acceptor>
> > >>
> > >> <!-- HornetQ Compatibility Acceptor. Enables HornetQ Core and STOMP
> for
> > >> legacy HornetQ
> > >> clients. -->
> > >> <acceptor name="hornetq">
> > >> tcp://
> > >>
> > >>
> >
> 0.0.0.0:5445?anycastPrefix=jms.queue.;multicastPrefix=jms.topic.;protocols=HORNETQ,STOMP;useEpoll=true
> > >> </acceptor>
> > >>
> > >> <!-- MQTT Acceptor -->
> > >> <acceptor name="mqtt">
> > >> tcp://
> > >>
> > >>
> >
> 0.0.0.0:1883?tcpSendBufferSize=1048576;tcpReceiveBufferSize=1048576;protocols=MQTT;useEpoll=true
> > >> </acceptor>
> > >>
> > >> </acceptors>
> > >>
> > >> <bridges>
> > >> <bridge name="amqp-bridge">
> > >> <queue-name>p1broker.out</queue-name>
> > >> <forwarding-address>centralbroker.in</forwarding-address>
> > >> <user>admin</user>
> > >> <password>admin</password>
> > >> <static-connectors>
> > >> <connector-ref>activemq-classic-amqp</connector-ref>
> > >> </static-connectors>
> > >> </bridge>
> > >> </bridges>
> > >>
> > >>
> > >> <connectors>
> > >> <connector name="activemq-classic-amqp">
> > >> tcp://centralbroker:5672?protocols=AMQP</connector>
> > >> </connectors>
> > >>
> > >>
> > >> activemq.xml
> > >> ===========
> > >>
> > >> <transportConnectors>
> > >> <!-- DOS protection, limit concurrent connections to 1000 and frame
> size
> > >> to
> > >> 100MB -->
> > >> <transportConnector name="openwire"
> > >> uri="tcp://0.0.0.0:61616?maximumConnections=1000&amp;
> > >> wireFormat.maxFrameSize=104857600000" />
> > >> <transportConnector name="amqp"
> > >> uri="amqp://0.0.0.0:5672?maximumConnections=1000&amp;
> > >> wireFormat.maxFrameSize=104857600" />
> > >> <transportConnector name="stomp"
> > >> uri="stomp://0.0.0.0:61613?maximumConnections=1000&amp;
> > >> wireFormat.maxFrameSize=104857600" />
> > >> <transportConnector name="mqtt"
> > >> uri="mqtt://0.0.0.0:1883?maximumConnections=1000&amp;
> > >> wireFormat.maxFrameSize=104857600" />
> > >> <transportConnector name="ws"
> > >> uri="ws://0.0.0.0:61614?maximumConnections=1000&amp;
> > >> wireFormat.maxFrameSize=104857600" />
> > >> </transportConnectors>
> > >>
> > >>
> > >> what am i doing wrong?
> > >>
> > >> Cheers
> > >> Kunal
> > >>
> > >
> >
>

Reply via email to