Hi Kunal-

I expect you’ll get a wide range of responses here =). ActiveMQ has two 
brokers, and they do similar things but it essentially comes down to who is the 
best fit for supporting your organizations’ ActiveMQ infrastructure?

I take exception to Justin’s comments here — ActiveMQ Classic has a fresh round 
of modernized releases that are more than dependency updates. There is a 
healthy list of improvements for observability, extensibility, and improvements 
for support of multi-tenant message flows. Plans are being made for ActiveMQ 
Classic 7.x, as well as an approach for applying modernization without 
requiring fork-lift upgrade.

I’d also put an asterisk on the notion that recent commits are a reliable 
indicator of future community engagement. ActiveMQ Classic is very stable, 
processes billions and billions of messages per day and perhaps doesn’t need as 
many fixes?

Thanks,
Matt Pavlovich

> On Oct 4, 2024, at 11:07 PM, Justin Bertram <jbert...@apache.org> wrote:
> 
> Development on Classic has slowed considerably since focus has shifted to
> Artemis. Most of the folks who've contributed the most code to Classic
> historically have either left the project or moved over to Artemis. The
> Artemis repo has almost 100 more total committers and almost as many
> commits as the Classic repo despite being roughly half its age. That said,
> Classic has a dedicated following of folks who are either unable to migrate
> (e.g. due to constraints in a legacy environment) or simply don't need to.
> For these folks there are regular releases which mainly consist of
> dependency upgrades (e.g. to deal with security issues) and bug fixes.
> 
> Ken mentioned that both Artemis and Classic have different feature sets,
> and while that's technically true there is, of course, a tremendous amount
> of overlap. Pretty much every feature in Classic now has an exact or
> functionally equivalent feature in Artemis.
> 
> You'd need to get in touch with Amazon to get more details about what might
> or might not be on their roadmap. Generally speaking, we have no visibility
> into that as Apache community members.
> 
> 
> Justin
> 
> On Thu, Oct 3, 2024 at 8: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
>>>>> 
>>>> 
>>> 
>> 


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@activemq.apache.org
For additional commands, e-mail: users-h...@activemq.apache.org
For further information, visit: https://activemq.apache.org/contact


Reply via email to