diff --git a/modules/ROOT/pages/index.adoc b/modules/ROOT/pages/index.adoc index bc847637..915c3c2b 100644 --- a/modules/ROOT/pages/index.adoc +++ b/modules/ROOT/pages/index.adoc @@ -49,7 +49,7 @@ Anypoint MQ includes these features: Queues and Message Exchanges:: Send messages to queues and pull messages from queues. -Use a message exchange to send messages to multiple standard queues simultaneously or +Use a message exchange to send messages to multiple standard or FIFO queues simultaneously or route messages to specific queues by using intelligent message routing rules. + For information, see: diff --git a/modules/ROOT/pages/mq-apis.adoc b/modules/ROOT/pages/mq-apis.adoc index a8aad007..c16197ed 100644 --- a/modules/ROOT/pages/mq-apis.adoc +++ b/modules/ROOT/pages/mq-apis.adoc @@ -13,7 +13,7 @@ Anypoint MQ APIs are available in the https://anypoint.mulesoft.com/exchange/por == Workflow for an API -This example illustrates the workflow for accessing the Anypoint MQ Broker API: +This example shows the workflow for accessing the Anypoint MQ Broker API: image::mq-api-workflow.png["Workflow of the Anypoint MQ Broker API"] @@ -267,6 +267,7 @@ the API throttles your requests to 50 transactions per minute (TPM). These examples use the Anypoint MQ Admin API to create queues and message routing rules from the command line using `curl`: * <> +* <> * <> * <> * <> @@ -274,7 +275,7 @@ These examples use the Anypoint MQ Admin API to create queues and message routin [[fifo-queue-api]] === Create a FIFO Queue -You can create a FIFO queue using the Anypoint MQ Admin API by including the `"fifo": true` field. +You can create a FIFO queue using the Anypoint MQ Admin API by including `"fifo": true` in the body. [NOTE] The organization from which you use the Administration portal must have an Anypoint MQ FIFO entitlement. @@ -313,6 +314,36 @@ The response includes output such as: }, ---- +[[fifo-exchange-api]] +=== Create a FIFO Exchange + +You can create a FIFO exchange using the Anypoint MQ Admin API by including `"fifo": true` in the body. + +[NOTE] +The organization from which you use the Administration portal must have an Anypoint MQ FIFO entitlement. +See xref:mq-faq.adoc[Anypoint MQ FAQ] for the regions where Anypoint MQ is available. + +Use a `curl` command like this to create a FIFO exchange: + +[source,bash,linenums] +---- +curl -X PUT "https://anypoint.mulesoft.com/mq/admin/api/v1/organizations//environments//regions//destinations/exchanges/" \ +--header 'Content-Type: application/json' \ +--header 'Authorization: bearer ' \ +--data-raw '{ + "encrypted" : false, + "fifo" : true +}' +---- + +//// +The response includes output such as: + +[source,json,linenums] +---- + +---- +//// [[routing-rules-api]] === Create or Change Message Routing Rules diff --git a/modules/ROOT/pages/mq-configure.adoc b/modules/ROOT/pages/mq-configure.adoc index 69d4b6b3..a8ac212d 100644 --- a/modules/ROOT/pages/mq-configure.adoc +++ b/modules/ROOT/pages/mq-configure.adoc @@ -13,7 +13,7 @@ Create queues, FIFO queues, and dead-letter queues in Anypoint Platform. Send, receive, and purge messages from queues. * xref:mq-exchanges.adoc[] + -Send messages to multiple standard xref:mq-queues.adoc[queues] simultaneously by binding those queues to +Send messages to multiple standard or FIFO xref:mq-queues.adoc[queues] simultaneously by binding those queues to a message exchange. + Route messages to specific queues that are bound to the message exchange diff --git a/modules/ROOT/pages/mq-exchanges.adoc b/modules/ROOT/pages/mq-exchanges.adoc index 368b6d27..8817ff3c 100644 --- a/modules/ROOT/pages/mq-exchanges.adoc +++ b/modules/ROOT/pages/mq-exchanges.adoc @@ -1,6 +1,6 @@ = Sending Messages to Multiple Queues Using Message Exchanges -You can send messages to multiple standard +You can send messages to multiple standard or FIFO xref:mq-queues.adoc[queues] simultaneously by binding those queues to a _message exchange_. @@ -35,20 +35,25 @@ To create a message exchange: . Click *Destinations*. . Click the *Add* icon to display the menu: + +// update screenshot image::mq-blue-create.png["Add icon in the Anypoint MQ Destinations page"] -. Select *Exchange*. +. Select *Exchange* or *FIFO Exchange*. + For *Queue* or *FIFO Queue*, see xref:mq-queues.adoc[]. -. In the *Create Exchange* page, name the message exchange. +. Name the message exchange in the *Create Exchange* or *Create FIFO Exchange* page. + Message exchange names can contain up to 127 alphanumeric (a-z, A-Z, 0-9) and punctuation (. -) characters. They can't contain spaces or other characters. . Click the checkboxes to bind queues to this message exchange: + +// This screenshot is OK image::mq-exchange-bind-queues.png["Checkboxes to bind queues to a message exchange in the Create Exchange page"] ++ +NOTE: You can bind only standard queues to an exchange and only FIFO queues to a FIFO exchange. . Click *Save Changes*. . In the *Destinations* page, click the message exchange type for the new exchange to display the bound queues in the details pane: + +// update with FIFO Exchange in the left; details is OK image::mq-exchange-details-pane.png["Destinations page showing the message exchange type and the bound queues in the details pane"] @@ -66,6 +71,8 @@ To bind a queue to a message exchange: + image::mq-bind-queue-to-exchange2.png["Exchange Settings page showing checkboxes for multiple select, and Unbind and Bind buttons"] + +NOTE: The page displays only standard queues for a message exchange and only FIFO queues for a FIFO exchange. ++ . In the settings page, click *Bind* or *Unbind* for each single queue you want to bind to or unbind from the message exchange. + To select multiple queues to bind to the exchange, select the checkboxes and click the *Bind Selected Queues* button that appears: diff --git a/modules/ROOT/pages/mq-glossary.adoc b/modules/ROOT/pages/mq-glossary.adoc index 67c56cd5..9fe01cfc 100644 --- a/modules/ROOT/pages/mq-glossary.adoc +++ b/modules/ROOT/pages/mq-glossary.adoc @@ -12,7 +12,7 @@ Operations that specify: For information, see xref:anypoint-mq-connector::anypoint-mq-ack.adoc[ACK and NACK Operations]. Binding:: + -A method for specifying a set of standard queues that form a message exchange, enabling apps to send messages to multiple queues. +A method for specifying a set of standard or FIFO queues that form a message exchange, enabling apps to send messages to multiple queues. + When you specify which message queues are bound to a message exchange, Anypoint MQ creates and manages the bindings for you. + @@ -95,6 +95,11 @@ include::partial$mq-failover.adoc[tag=fallbackQnotConfig] + For information, see xref:mq-failover.adoc[]. +[[fifo-exchange]] +FIFO Exchange:: +A <> that binds multiple <>, +enabling you to send messages to multiple FIFO queues. + [[fifo-queues]] FIFO Queue:: A queue that processes messages first-in, first-out (FIFO), ensuring message ordering for applications in which the order of messages must be strictly preserved and enforced. @@ -124,6 +129,7 @@ An identifier that allows only a single app to read a queue. Anypoint MQ provides the lock when an app acknowledges a message from a queue. Message:: Serializable xref:mule-runtime::about-mule-message.adoc[Mule Message] content that applications send and receive so that they can communicate with each other. +[[message-exchange]] Message Exchange:: A pub/sub message source with multiple outputs. Applications register to subscribe to messages that the message exchange publishes. + diff --git a/modules/ROOT/pages/mq-queues.adoc b/modules/ROOT/pages/mq-queues.adoc index 892778d3..57ab4a38 100644 --- a/modules/ROOT/pages/mq-queues.adoc +++ b/modules/ROOT/pages/mq-queues.adoc @@ -40,7 +40,7 @@ image::mq-filters.png["Destinations page showing filter options for message queu Before using Anypoint MQ, you must create an environment and give users Anypoint MQ access permissions. See xref:mq-access-management.adoc[]. - +[[create-queue]] == Create a Queue To create a standard queue or FIFO queue: @@ -340,7 +340,7 @@ include::partial$mq-faq.adoc[tag=failedTPS] * In some configurations when using the IMMEDIATE acknowledgment mode in the Subscriber operation, FIFO queues don't process messages in order. * Before using `prefetch` mode with FIFO queues, see xref:anypoint-mq-connector::anypoint-mq-listener.adoc#fifo-and-prefetch[FIFO Queues and Prefetch Mode]. -To create a FIFO queue, see <>. To determine if a queue is FIFO or standard (non-FIFO), view its details. +To create a FIFO queue, see <>. To determine if a queue is FIFO or standard (non-FIFO), view its details. For the regions in which Anypoint MQ and FIFO queues are available, see xref:mq-faq.adoc#mq-regions[Anypoint MQ Regions].