> Even manually creating queues available in ActiveMQ classic is absent in Artemis.
You can manually create queues both in broker.xml and via the web console. Can you clarify exactly what trouble you're having with manually creating queues? Justin On Sun, Feb 25, 2024 at 9:04 PM Ben F. Zhou <[email protected]> wrote: > Hi Alexander, > > Thank you so much for sharing the insights you have garnered while working > with Artemis. Truly appreciated! > > When I first went through the documentation, I was looking for something > similar to the likes of Intercommunication, MQSC command reference etc. in > MQSeries. I was surprise to find no direct way of creating communication > channels between brokers in the Web GUI. Even manually creating queues > available in ActiveMQ classic is absent in Artemis. That's why I feel > somehow lost on the way to get started. > > You're right. I just have to gnaw through the documentation to reach a > point when things become clear by themselves - just as I did with MQSeries > decades earlier. > > Regards, > Ben > > -----Original Message----- > From: Alexander Milovidov <[email protected]> > Sent: Sunday, February 25, 2024 4:56 PM > To: [email protected] > Subject: Re: Have Artemis installed, Need advice where to start and how to > start using it ... from IBM MQ world > > Hi Ben, > > I also worked with IBM MQ for several years. I have started with Artemis > from reading the documentation, and continue to check it when something is > not clear for me. > I think it is also necessary to have some real use cases for Artemis > because it is not possible to gain a lot of experience using only test labs. > > I'm not sure that I completely understood the question, but I would like > to share my experience which is based on using both products (IBM MQ and > ActiveMQ Artemis). > > There are some things which are common for "classic" message brokers like > IBM MQ, ActiveMQ Classic and Artemis, other things are different. For > example, messages can be durable (persistent) or non-durable. Messages in > the queues are consumed and removed from the queue when it is acknowledged > by the client as delivered. > The main difference is in the address model of ActiveMQ Artemis. Queue in > IBM MQ is like anycast address in Artemis with anycast queue. Topic in IBM > MQ is like a multicast address with queues which are also subscriptions. > There are no separate objects like subscription and queue to which the > subscription delivers its messages. > It is possible to make the subscriptions like in IBM MQ - we have > experimented creating multicast addresses with diverts (rules to move > messages from "topic address" to other addresses with anycast queues), and > it works. In this case, divert looks like a subscription in IBM MQ. It also > allows different address settings for different consumers. > Subscription or divert can use a filter (like selector in IBM MQ). Divert > can be used in some other cases, for example like an alias queue in IBM MQ, > and it can copy or move messages. > There are some other queue types which have no analog in IBM MQ, for > example ring queues, last-value queues. > > When we tried to use our standard naming for queues (for example, words > separated with dots), we have experienced problems because "." is a > reserved symbol in the subscription name (it is also a queue name) - it is > used as a separator between client id and subscription and this problem > occurs only when using Artemis Core libraries. > One address can be used for anycast and multicast, and it is a real mess. > Clients can auto-create queues with incorrect routing type (if it is > permitted to create queues), after some release the name changes, and > unused queues are piled up with messages. Some clients can read multicast > queue using fully-qualified queue name like "address::queue", other clients > cannot, and I don't have enough knowledge to understand the difference. > > About clusters. Cluster with multiple active nodes in Artemis works like > load-balancing cluster in IBM MQ, but it has a redistribution mechanism > which moves messages to the node where the consumer is connected. But it > adds some overhead to move messages between nodes. > When a client connects to one broker instance, it receives cluster > topology information and can connect to any live node of the cluster. > Sometimes it is necessary to turn off using topology for client-side load > balancing, for example if client needs to connect to another port with SSL. > > Remote queues and sender/receiver channels in IBM MQ: it is possible to > create core bridges between two Artemis servers or clusters to send > messages from one message broker to another. > > There are many things which it is easier to configure in Artemis, and > other things which can cause problems. For example, Artemis has an audit > logging which can log all messages passed through message broker, and it > works out-of-box. Messages are logged with all headers and without payload. > There are also a lot of built-in metrics which can be gathered using > Prometheus. It is easier to configure high availability and resilience in > Artemis because it has several HA mechanisms. I have used primary/backup > with replication. It was easy to configure LDAP authentication and > authorization using groups. > There are some problems with the management web console. Permissions for > the management console are configured separately from permissions on the > broker like in two different applications, and there is no way to reload > management.xml without restarting the broker. But if someone wants to send > a message using management console, it checks if user has send permissions > on the broker (not only in the management console). > And there is no application like IBM MQ Explorer for Artemis. It is > possible to use JMSToolBox only for some scenarios like sending test > messages, listing and browsing queues. > > After some experience with Artemis I mentioned that IBM MQ is more stable > and more tolerant to the situations when large number of messages are left > in the queues. Maybe we have to tune up journal and paging settings in > Artemis. Also we did not find a way to restrict the number of messages in > the particular queue. > > It is not necessary to have Java programming skills, but IMHO it is better > to have at least an experience of running Java application servers. > Sometimes in the open-source world something does not work as expected, it > is where Java developer skills can be very useful. Maybe source code is the > best documentation (at least it is always up to date). > > > > вс, 25 февр. 2024 г. в 20:03, Ben F. Zhou <[email protected]>: > > > Greetings, ... > > > > I'm trying to learn ActiveMQ, have installed and setup Artemis in my > > home lab, created multiple broker instances on several Linux severs, > > and could access the broker instances from the Web GUI. I do > > understand the core architecture. But I'm still lost in finding a way > > to understand how to use the brokers, like putting messages to queues > > and get the them flow through a network of broken instance. > > > > Since I couldn't find a single internet post over the puzzle I'm stuck > > with, I guess my problem has to be a matter of mind-set. I have worked > > with IBM MQ for over two decades, and things there seem too natural > > for me, like setting up a network of interconnected queue managers, > > channels, local/remote queues, clusters etc. But where should I start > with ActiveMQ? > > Do I have to be a Java programmer to use ActiveMQ? I also tried to > > find an ActiveMQ administration training course on Udemy, but could find > nothing. > > > > Thanks much for any advice! > > Ben > > > > > > -- > С уважением, > Александр Миловидов >
