Skip to content

Commit ee52e76

Browse files
committed
Merge branch 'main' of https://github.com/MicrosoftDocs/azure-docs-pr into ecmpUpdate2
2 parents 8024cb4 + ed06ef9 commit ee52e76

File tree

5 files changed

+27
-19
lines changed

5 files changed

+27
-19
lines changed

articles/event-grid/includes/limits.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,10 +21,10 @@ Event Grid offers a standard tier and basic tier. Event Grid standard tier enabl
2121
[Azure Event Grid namespaces](../concepts-event-grid-namespaces.md#namespaces) enables MQTT messaging, and HTTP pull delivery.
2222
The following limits apply to namespace resources in Azure Event Grid.
2323

24-
| Limit description | Limit |
25-
|----------------------------------------|-------|
24+
| Limit description | Limit |
25+
|----------------------------------------|-------|
2626
| Event Grid namespaces per Azure subscription | 50 |
27-
| Maximum throughput units per Event Grid namespace | 40 |
27+
| Maximum throughput units per Event Grid namespace | 40 (To request an increase beyond 40 TUs, contact us at [[email protected]](mailto:[email protected])) |
2828
| IP Firewall rules per Event Grid namespace | 16 |
2929

3030
## MQTT limits in Event Grid namespace

articles/event-grid/mqtt-support.md

Lines changed: 18 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ MQTT v5 introduced many improvements over MQTT v3.1.1 to deliver a more seamless
2222
- More control to clients over the communication through features like message and session expiry.
2323
- Standard important patterns like the request-response pattern.
2424

25-
## Connection flow:
25+
## Connection flow
2626

2727
Your MQTT clients *must* connect over TLS 1.2 or TLS 1.3. Attempts to skip this step fail with connection.
2828

@@ -52,7 +52,7 @@ Before using this feature, you need to configure the namespace to allow multiple
5252
>[!NOTE]
5353
>For the Azure CLI configuration, update the **MaxClientSessionsPerAuthenticationName** property in the namespace payload with the desired value.
5454
55-
#### Connection flow:
55+
#### Connection flow
5656
The CONNECT packets for each session should include the following properties:
5757
- Provide the Username property in the CONNECT packet to signify your client authentication name.
5858
- Provide the ClientID property in the CONNECT packet to signify the session name such as there are one or more values for the ClientID for each Username.
@@ -73,7 +73,7 @@ For example, the following combinations of Username and ClientIds in the CONNECT
7373

7474
For more information, see [How to establish multiple sessions for a single client.](mqtt-establishing-multiple-sessions-per-client.md)
7575

76-
#### Handling sessions:
76+
#### Handling sessions
7777

7878
- If a client tries to take over another client's active session by presenting its session name with a different authentication name, its connection request is rejected with an unauthorized error. For example, if Client B tries to connect to session 123 that is assigned at that time for client A, Client B's connection request is rejected. That being said, if the same client tries to reconnect with the same session names and the same authentication name, it's able to take over its existing session.
7979
- If a client resource is deleted without ending its session, other clients can't use its session name until the session expires. For example, If client B creates a session with session name 123 then client B gets deleted, client A can't connect to session 123 until it expires.
@@ -114,10 +114,10 @@ MQTTv5 introduced fields in the MQTT PUBLISH packet header that provide context
114114

115115
:::image type="content" source="media/mqtt-support/mqtt-request-response-high-res.png" alt-text="Diagram of the request-response pattern example." border="false":::
116116

117-
### Message expiry interval:
117+
### Message expiry interval
118118
In MQTT v5, message expiry interval allows messages to have a configurable lifespan. The message expiry interval is defined as the time interval between the time a message is published to MQTT broker and the time when the MQTT broker needs to discard the undelivered message. This feature is useful in scenarios where messages are only valid for a certain amount of time, such as time-sensitive commands, real-time data streaming, or security alerts. By setting a message expiry interval, MQTT broker can automatically remove outdated messages, ensuring that only relevant information is available to subscribers. If a message's expiry interval is set to zero, it means the message should never expire.
119119

120-
### Topic aliases:
120+
### Topic aliases
121121
In MQTT v5, topic aliases allow a client to use a shorter alias in place of the full topic name in the published message. MQTT broker maintains a mapping between the topic alias and the actual topic name. This feature can save network bandwidth and reduce the size of the message header, particularly for topics with long names. It's useful in scenarios where the same topic is repeatedly published in multiple messages, such as in sensor networks. MQTT broker supports up to 10 topic aliases. A client can use a Topic Alias field in the PUBLISH packet to replace the full topic name with the corresponding alias.
122122

123123
:::image type="content" source="media/mqtt-support/mqtt-topic-alias-high-res.png" alt-text="Diagram of the topic alias example." border="false":::
@@ -129,11 +129,20 @@ In MQTT v5, flow control refers to the mechanism for managing the rate and size
129129
For MQTT v5, MQTT broker is able to send negative acknowledgments (NACKs) and server-initiated disconnect packets that provide the client with more information about failures for message delivery or connection. These features help the client diagnose the reason behind a failure and take appropriate mitigating actions. MQTT broker uses the reason codes that are defined in the [MQTT v5 Specification.](https://docs.oasis-open.org/mqtt/mqtt/v5.0/mqtt-v5.0.html)
130130

131131
### Message Ordering
132-
MQTT v5 ensures that messages sent within a single session are delivered in the same order they were published. MQTT broker fully supports it by maintaining message ordering per connection, so subscribers receive data in the exact sequence it was sent—ideal for scenarios like telemetry, command execution, and time-series data.
132+
MQTT v5 ensures in-order message delivery within per topic and per client when using Quality of Service (QoS) levels 1, which is crucial for workflows requiring sequence integrity. It's ideal for scenarios like telemetry, command execution, and time-series data.
133+
134+
However, it doesn't guarantee ordering across different topics or when messages are sent with varying QoS levels. To learn more, contact us [[email protected]](mailto:[email protected]).
133135

134136
### Assigned Client Identifiers (Preview)
135137
MQTT v5 introduces support for assigned client identifiers, allowing the broker to generate and return a unique client ID when one isn't provided by the client. MQTT broker supports this feature, ensuring seamless client onboarding and reducing the need for clients to manage their own identifiers. It's especially useful in scenarios where client provisioning is dynamic or when devices have no preconfigured identity. Assigned client IDs can be retrieved from the CONNACK response and reused for future sessions to maintain consistent identification.
136138

139+
#### Managing client identifier and session limits in MQTT
140+
141+
- Assigned client identifiers allow clients to connect without specifying predefined identifiers, enabling temporary or persistent sessions.
142+
- Clients can avoid being locked out by using short session expiry intervals during the first connection and saving the assigned client identifier for future use.
143+
- For firmware updates or resets, clients should either retain their known client identifier or use modest session expiry intervals to avoid prolonged lockouts.
144+
- Namespace configuration can increase session limits per client to minimize disruptions during updates or rollbacks.
145+
137146
## Current limitations
138147

139148
MQTT broker is adding more MQTT v5 and MQTT v3.1.1 features in the future to align more with the MQTT specifications. The following list details the current differences between features supported by the MQTT broker and the MQTT specifications:
@@ -159,15 +168,13 @@ MQTT v5 currently differs from the [MQTT v3.1.1 Specification](http://docs.oasis
159168
- QoS2 and Retain Flag aren't supported yet. A publish request with a retain flag or with a QoS2 fails and closes the connection.
160169
- Keep Alive Maximum is 1,160 seconds.
161170

162-
## Code samples:
171+
## Code samples
163172

164173
[This repository](https://github.com/Azure-Samples/MqttApplicationSamples) contains C#, C, and python code samples that show how to send telemetry, send commands, and broadcast alerts. The certificates created through the samples are fit for testing, but they aren't fit for production environments.
165174

166-
## Next steps:
175+
## Related content
167176

168-
Learn more about MQTT:
169-
- [MQTT v3.1.1 Specification](http://docs.oasis-open.org/mqtt/mqtt/v3.1.1/os/mqtt-v3.1.1-os.html)
170-
- [MQTT v5 Specification](https://docs.oasis-open.org/mqtt/mqtt/v5.0/mqtt-v5.0.html)
177+
Learn more about MQTT: [MQTT v5 Specification](https://docs.oasis-open.org/mqtt/mqtt/v5.0/mqtt-v5.0.html)
171178

172179
Learn more about MQTT broker:
173180
- [Client authentication](mqtt-client-authentication.md)

articles/load-balancer/cross-subscription-how-to-internal-load-balancer.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ services: load-balancer
55
author: mbender-ms
66
ms.service: azure-load-balancer
77
ms.topic: how-to
8-
ms.date: 10/17/2024
8+
ms.date: 05/12/2025
99
ms.author: mbender
1010
ms.custom: devx-track-azurepowershell
1111
#CustomerIntent: As a < type of user >, I want < what? > so that < why? > .
@@ -38,7 +38,7 @@ With Azure PowerShell, you'll:
3838
```azurepowershell
3939
# Create a load balancer
4040
41-
$tags = @{
41+
$tag = @{
4242
'IsRemoteFrontend'= 'true'
4343
}
4444
@@ -47,7 +47,7 @@ $loadbalancer = @{
4747
Name = 'myLoadBalancer'
4848
Location = 'westus'
4949
Sku = 'Standard'
50-
Tags = $tags
50+
Tag = $tag
5151
}
5252
5353
$LB = New-AzLoadBalancer @loadbalancer

includes/load-balancer-cross-subscription-add-nic.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ $nic = @{
3636
ResourceGroupName = '<Resource Group Subscription A>'
3737
Location = 'eastus'
3838
IpConfiguration = $IP1Config
39+
LoadBalancerBackendAddressPool = "/subscriptions/<Subscription B ID>/resourceGroups/myResourceGroupLB/providers/Microsoft.Network/loadBalancers/myLoadBalancer/backendAddressPools/BackendPool1"
3940
}
4041
New-AzNetworkInterface @nic
4142
```

includes/load-balancer-cross-subscription-azure-sign-in.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,8 @@ Set-AzContext -Subscription '<Azure Subscription A>'
2727
2828
# Get the Virtual Network information with Get-AzVirtualNetwork
2929
$net = @{
30-
Name = '<vnet name>'
31-
ResourceGroupName = '<Resource Group Subscription A>'
30+
Name = 'virtual-network-subA'
31+
ResourceGroupName = 'resource-group-v2'
3232
}
3333
$vnet = Get-AzVirtualNetwork @net
3434
```

0 commit comments

Comments
 (0)