|Load balancing policy
Load balancing is performed based on queues.
If this policy is used, the following issues may occur:
- If the number of consumers is greater than the number of queues, some consumers cannot
- Some consumers become abnormal or respond slowly, and other consumers remain idle
but cannot consume messages. This may cause messages to be accumulated.
Load balancing is performed based on messages. This makes the message loads more balanced.
This helps prevent idle consumers or message accumulation that may occur due to the
queue-based load balancing policy.
||Instances can be accessed by using public TCP endpoints only in the Internet region.
In other regions, instances can be accessed only by using private endpoints.
||An instance supports multiple endpoints. You can connect to an instance by using a
public TCP endpoint or a private endpoint.
||Only a small number of metrics are supported, such as the number of received messages,
the number of sent messages, and the number of accumulated messages.
- Metrics related to message accumulation are added. This can help you identify issues
in a more efficient manner.
- Metrics such as durations and success rates are added to monitor the entire process
from message production to message consumption.
The following metrics are added:
- Send RT: the amount of time that is used to send a message to a topic.
- Send API call success rate: the success rate of message production for a topic.
- Avg consumption success rate: the success rate of message consumption in a specified instance.
- Inflight messages: the number of messages that are being processed on the consumer client and for which
no success response is returned.
- Ready messages: the number of messages that are ready on the Message Queue for Apache RocketMQ broker and can be consumed by consumers. This metric reflects the number of messages
that are not processed by consumers.
- Ready message queue time: the time offset between the current point in time and the point in time when the
earliest message is ready. This metric reflects the delay period for ready messages
before they are processed. This metric is important for time-sensitive workloads.
- Message processing time: the amount of time that is used to consume a message in a group.
- Wait to process time: the duration between the time when a consumer in a group receives a message and
the time when the consumer starts to consume the message.
- Consumption messages each protocol: the proportion of all messages that are consumed over each type of protocol.
- Instance top 20 info
- Ready message queue time per GroupID: the top 20 groups with the longest queuing duration for ready messages.
- Consumer lag per GroupID: the top 20 groups for which the largest number of messages are accumulated.
- Inflight messages per GroupID: the top 20 groups with the largest number of messages that are being processed.
- Message processing time per GroupID: the top 20 groups for which the longest period of time is required to consume messages.
- Message wait time per GroupID: the top 20 groups with the longest duration between the time when a consumer in
a group receives a message and the time when the consumer starts to consume the message.
- Send API call failure rate per Topic: the top 20 topics with the highest failure rate during message production.
- Consumption failure rate per GroupID: the top 20 groups with the highest failure rate during message consumption.
||Traces of non-normal messages cannot be queried. Data related to message accumulation
is not included in trace query results.
- Data related to message consumption is included in trace query results. Message traces
can be queried by using filter conditions such as exceptions, failures, and durations.
- Traces of scheduled messages, delayed messages, and transactional messages can be
- OpenTelemetry is used throughout the entire process of a message trace query.
The following parameters are added in trace query results:
||The AccessKey ID of your Alibaba Cloud account or Resource Access Management (RAM)
user. AccessKey IDs are used to verify user identities. When you use an SDK or call
API operations to call Message Queue for Apache RocketMQ resources, the AccessKey ID is required for identity verification.
|Arrive at Server At
||The time when a message arrived at a Message Queue for Apache RocketMQ broker.
|Scheduled to Be Delivered At
||The scheduled point in time when a scheduled message can be delivered to consumers.
||The time when a scheduled message can be delivered to consumers. This value indicates
the time when the scheduled message becomes ready for consumption.
||The time when a message becomes ready for consumption.
|Committed/Rolled back At
||The time when a transactional message is committed or rolled back.
|Arrive at Consumer At
||The time when a message arrived at a consumer client.
|Wait Duration before Processing
||The wait duration between the time when a message arrived at a consumer client and
the time when the thread pool allocated threads and processing resources for the message.