Skip to content

Commit 887a490

Browse files
authored
Merge pull request #282149 from spelluru/postman0725
Freshness review of Event Hubs articles
2 parents 5294881 + a2f8bfb commit 887a490

File tree

7 files changed

+44
-46
lines changed

7 files changed

+44
-46
lines changed

articles/event-hubs/event-hubs-geo-dr.md

Lines changed: 24 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,17 @@
11
---
22
title: Geo-disaster recovery - Azure Event Hubs| Microsoft Docs
3-
description: How to use geographical regions to fail over and perform disaster recovery in Azure Event Hubs
4-
ms.topic: article
5-
ms.date: 06/01/2023
3+
description: Describes how to use geographical regions to fail over and perform metadata-only disaster recovery in Azure Event Hubs.
4+
ms.topic: concept-article
5+
ms.date: 07/29/2024
6+
#customer intent: As an IT administrator or an architect, I would like to know how Azure Event Hubs recovers entities where there is a disaster in an Azure region.
67
---
78

89
# Azure Event Hubs - Geo-disaster recovery
10+
This article describes the Geo-disaster recovery feature that replicates metadata and is generally available. It doesn't describe the public preview Geo-replication feature, which replicates both data and metadata. For more information, see [Geo-replication](./geo-replication.md).
911

10-
> [!NOTE]
11-
> This article is about the GA Geo-disaster recovery feature that replicated metadata and not the public preview Geo-replication feature described at [Geo-replication](./geo-replication.md).
12-
13-
The all-active Azure Event Hubs cluster model with [availability zone support](../reliability/reliability-event-hubs.md) provides resiliency against hardware and datacenter outages. However, if a disaster where an entire region and all zones are unavailable, you can use Geo-disaster recovery to recover your workload and application configuration.
14-
15-
Geo-Disaster recovery ensures that the entire configuration of a namespace (Event Hubs, Consumer Groups, and settings) is continuously replicated from a primary namespace to a secondary namespace when paired.
12+
The all-active Azure Event Hubs cluster model with [availability zone support](../reliability/reliability-event-hubs.md) provides resiliency against hardware and datacenter outages. However, if a disaster where an entire region and all zones are unavailable, you can use Geo-disaster recovery to recover your workload and application configuration. Geo-Disaster recovery ensures that the entire configuration of a namespace (Event Hubs, Consumer Groups, and settings) is continuously replicated from a primary namespace to a secondary namespace when paired.
1613

17-
The Geo-disaster recovery feature of Azure Event Hubs is a disaster recovery solution. The concepts and workflow described in this article apply to disaster scenarios, and not to temporary outages. For a detailed discussion of disaster recovery in Microsoft Azure, see [this article](/azure/architecture/resiliency/disaster-recovery-azure-applications).
18-
19-
With Geo-Disaster recovery, you can initiate a once-only failover move from the primary to the secondary at any time. The failover move points the chosen alias name for the namespace to the secondary namespace. After the move, the pairing is then removed. The failover is nearly instantaneous once initiated.
14+
The Geo-disaster recovery feature of Azure Event Hubs is a disaster recovery solution. The concepts and workflow described in this article apply to disaster scenarios, and not to temporary outages. For a detailed discussion of disaster recovery in Microsoft Azure, see [this article](/azure/architecture/resiliency/disaster-recovery-azure-applications). With Geo-Disaster recovery, you can initiate a once-only failover move from the primary to the secondary at any time. The failover move points the chosen alias name for the namespace to the secondary namespace. After the move, the pairing is then removed. The failover is nearly instantaneous once initiated.
2015

2116

2217
> [!IMPORTANT]
@@ -25,17 +20,14 @@ With Geo-Disaster recovery, you can initiate a once-only failover move from the
2520
2621
## Basic concepts and terms
2722

28-
The disaster recovery feature implements metadata disaster recovery, and relies on primary and secondary disaster recovery namespaces.
29-
30-
The Geo-disaster recovery feature is available for the [standard, premium, and dedicated tiers](https://azure.microsoft.com/pricing/details/event-hubs/) only. You don't need to make any connection string changes, as the connection is made via an alias.
23+
The disaster recovery feature implements metadata disaster recovery, and relies on primary and secondary disaster recovery namespaces. The Geo-disaster recovery feature is available for the [standard, premium, and dedicated tiers](https://azure.microsoft.com/pricing/details/event-hubs/) only. You don't need to make any connection string changes, as the connection is made via an alias.
3124

3225
The following terms are used in this article:
3326

34-
- *Alias*: The name for a disaster recovery configuration that you set up. The alias provides a single stable Fully Qualified Domain Name (FQDN) connection string. Applications use this alias connection string to connect to a namespace.
35-
36-
- *Primary/secondary namespace*: The namespaces that correspond to the alias. The primary namespace is "active" and receives messages (can be an existing or new namespace). The secondary namespace is "passive" and doesn't receive messages. The metadata between both is in sync, so both can seamlessly accept messages without any application code or connection string changes. To ensure that only the active namespace receives messages, you must use the alias.
37-
- *Metadata*: Entities such as event hubs and consumer groups; and their properties of the service that are associated with the namespace. Only entities and their settings are replicated automatically. Messages and events aren't replicated.
38-
- *Failover*: The process of activating the secondary namespace.
27+
- **Alias**: The name for a disaster recovery configuration that you set up. The alias provides a single stable Fully Qualified Domain Name (FQDN) connection string. Applications use this alias connection string to connect to a namespace.
28+
- **Primary/secondary namespace**: The namespaces that correspond to the alias. The primary namespace is active and it receives messages (can be an existing or a new namespace). The secondary namespace is passive and doesn't receive messages. The metadata between both is in sync, so both can seamlessly accept messages without any application code or connection string changes. To ensure that only the active namespace receives messages, you must use the alias.
29+
- **Metadata**: Entities such as event hubs and consumer groups, and their properties of the service that are associated with the namespace. Only entities and their settings are replicated automatically. Messages and events aren't replicated.
30+
- **Failover**: The process of activating the secondary namespace.
3931

4032
## Supported namespace pairs
4133
The following combinations of primary and secondary namespaces are supported:
@@ -46,14 +38,14 @@ The following combinations of primary and secondary namespaces are supported:
4638
| Premium | Premium |
4739
| Dedicated | Dedicated |
4840

49-
> [!NOTE]
41+
> [!IMPORTANT]
5042
> You can't pair namespaces that are in the same dedicated cluster. You can pair namespaces that are in separate clusters.
5143
5244
## Setup and failover flow
5345

5446
The following section is an overview of the failover process, and explains how to set up the initial failover.
5547

56-
:::image type="content" source="./media/event-hubs-geo-dr/geo1.png" alt-text="Image showing the overview of failover process ":::
48+
:::image type="content" source="./media/event-hubs-geo-dr/geo1.png" alt-text="Screenshot showing the overview of failover process.":::
5749

5850
> [!NOTE]
5951
> The Geo-disaster recovery feature doesn't support an automatic failover.
@@ -67,25 +59,27 @@ You first create or use an existing primary namespace, and a new secondary names
6759
1. In the Azure portal, navigate to your primary namespace.
6860
1. Select **Geo-recovery** on the left menu, and select **Initiate pairing** on the toolbar.
6961

70-
:::image type="content" source="./media/event-hubs-geo-dr/primary-namspace-initiate-pairing-button.png" alt-text="Initiate pairing from the primary namespace":::
62+
:::image type="content" source="./media/event-hubs-geo-dr/primary-namspace-initiate-pairing-button.png" alt-text="Screenshot that shows the Geo-recovery page for an Event Hubs namespace with Initiate Pairing button selected." lightbox="./media/event-hubs-geo-dr/primary-namspace-initiate-pairing-button.png":::
7163
1. On the **Initiate pairing** page, follow these steps:
7264
1. Select an existing secondary namespace or create one in a different region. In this example, an existing namespace is selected.
7365
1. For **Alias**, enter an alias for the geo-dr pairing.
7466
1. Then, select **Create**.
7567

76-
:::image type="content" source="./media/event-hubs-geo-dr/initiate-pairing-page.png" alt-text="Select the secondary namespace":::
68+
:::image type="content" source="./media/event-hubs-geo-dr/initiate-pairing-page.png" alt-text="Screenshot that shows the selection of the secondary namespace for pairing.":::
7769
1. You should see the **Geo-DR Alias** page. You can also navigate to this page from the primary namespace by selecting **Geo-recovery** on the left menu.
7870

79-
:::image type="content" source="./media/event-hubs-geo-dr/geo-dr-alias-page.png" alt-text="Geo-DR alias page":::
71+
:::image type="content" source="./media/event-hubs-geo-dr/geo-dr-alias-page.png" alt-text="Screenshot that shows the Geo-DR Alias page showing both the primary and secondary namespaces." lightbox="./media/event-hubs-geo-dr/geo-dr-alias-page.png":::
8072
1. On the **Geo-DR Alias** page, select **Shared access policies** on the left menu to access the primary connection string for the alias. Use this connection string instead of using the connection string to the primary/secondary namespace directly.
8173
1. On this **Overview** page, you can do the following actions:
8274
1. Break the pairing between primary and secondary namespaces. Select **Break pairing** on the toolbar.
8375
1. Manually fail over to the secondary namespace. Select **Failover** on the toolbar.
84-
76+
77+
:::image type="content" source="./media/event-hubs-geo-dr/break-pairing-fail-over-menu.png" alt-text="Screenshot that shows the Break Pairing and Failover menus on the Event Hubs Geo-DR Alias page." lightbox="./media/event-hubs-geo-dr/break-pairing-fail-over-menu.png":::
78+
8579
> [!WARNING]
86-
> Failing over will activate the secondary namespace and remove the primary namespace from the Geo-Disaster Recovery pairing. Create another namespace to have a new geo-disaster recovery pair.
80+
> Failing over activates the secondary namespace and remove the primary namespace from the Geo-Disaster Recovery pairing. Create another namespace to have a new geo-disaster recovery pair.
8781
88-
Finally, you should add some monitoring to detect if a failover is necessary. In most cases, the service is one part of a large ecosystem, thus automatic failovers are rarely possible, as often failovers must be performed in sync with the remaining subsystem or infrastructure.
82+
Finally, you should add some monitoring to detect if a failover is necessary. In most cases, the service is one part of a large ecosystem and thus automatic failovers are rarely possible, as often failovers must be performed in sync with the remaining subsystem or infrastructure.
8983

9084
### Example
9185

@@ -98,13 +92,12 @@ You can automate failover either with monitoring systems, or with custom-built m
9892
If you initiate the failover, two steps are required:
9993

10094
1. If another outage occurs, you want to be able to fail over again. Therefore, set up another passive namespace and update the pairing.
101-
10295
2. Pull messages from the former primary namespace once it's available again. After that, use that namespace for regular messaging outside of your geo-recovery setup, or delete the old primary namespace.
10396

10497
> [!NOTE]
10598
> Only fail forward semantics are supported. In this scenario, you fail over and then re-pair with a new namespace. Failing back is not supported; for example, in a SQL cluster.
10699
107-
:::image type="content" source="./media/event-hubs-geo-dr/geo2.png" alt-text="Image showing the failover flow":::
100+
:::image type="content" source="./media/event-hubs-geo-dr/geo2.png" alt-text="Image showing the failover flow." lightbox="./media/event-hubs-geo-dr/geo2.png":::
108101

109102
## Manual failover
110103
This section shows how to manually fail over using Azure portal, CLI, PowerShell, C#, etc.
@@ -197,17 +190,9 @@ Advantage of this approach is that failover can happen at the application layer
197190
## Role-based access control
198191
Microsoft Entra role-based access control (RBAC) assignments to entities in the primary namespace aren't replicated to the secondary namespace. Create role assignments manually in the secondary namespace to secure access to them.
199192

200-
## Next steps
193+
## Related content
201194
Review the following samples or reference documentation.
202195
- [.NET GeoDR sample](https://github.com/Azure/azure-event-hubs/tree/master/samples/Management/DotNet/GeoDRClient)
203196
- [Java GeoDR sample](https://github.com/Azure-Samples/eventhub-java-manage-event-hub-geo-disaster-recovery)
204-
- [.NET - Azure.Messaging.EventHubs samples](https://github.com/Azure/azure-sdk-for-net/tree/master/sdk/eventhub/Azure.Messaging.EventHubs/samples)
205-
- [.NET - Microsoft.Azure.EventHubs samples](https://github.com/Azure/azure-event-hubs/tree/master/samples/DotNet)
206-
- [Java - azure-messaging-eventhubs samples](https://github.com/Azure/azure-sdk-for-java/tree/master/sdk/eventhubs/azure-messaging-eventhubs/src/samples/java/com/azure/messaging/eventhubs)
207-
- [Java - azure-eventhubs samples](https://github.com/Azure/azure-event-hubs/tree/master/samples/Java)
208-
- [Python samples](https://github.com/Azure/azure-sdk-for-python/tree/master/sdk/eventhub/azure-eventhub/samples)
209-
- [JavaScript samples](https://github.com/Azure/azure-sdk-for-js/tree/main/sdk/eventhub/event-hubs/samples/v5/javascript)
210-
- [TypeScript samples](https://github.com/Azure/azure-sdk-for-js/tree/main/sdk/eventhub/event-hubs/samples/v5/typescript)
211-
- [REST API reference](/rest/api/eventhub/)
212197

213198
[2]: ./media/event-hubs-geo-dr/geo2.png

articles/event-hubs/includes/event-hubs-connectivity.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
---
2-
title: include file
3-
description: include file
2+
title: Troubleshoot connectivity issues
3+
description: Include file with some common content that helps you with troubleshooting connectivity issues.
44
author: spelluru
55
ms.service: event-hubs
66
ms.topic: include
7-
ms.date: 12/15/2022
7+
ms.date: 07/29/2024
88
ms.author: spelluru
99
ms.custom: "include file"
1010

@@ -48,7 +48,7 @@ Also, verify that the IP address for your namespace is allowed. To find the righ
4848
```
4949
2. Note down the IP address returned in `Non-authoritative answer`.
5050
51-
If you use a namespace hosted in an older cluster (based on Cloud Services - CNAME ending in *.cloudapp.net) and the namespace is **zone redundant**, you will need to follow few extra steps below. If your namespace is on a newer cluster (based on Virtual Machine Scale Set (VMSS) - CNAME ending in *.cloudapp.azure.com) and zone redundant you can skip below steps.
51+
If you use a namespace hosted in an older cluster (based on Cloud Services - CNAME ending in *.cloudapp.net) and the namespace is **zone redundant**, you'll need to follow few extra steps below. If your namespace is on a newer cluster (based on Virtual Machine Scale Set (VMSS) - CNAME ending in *.cloudapp.azure.com) and zone redundant you can skip below steps.
5252
5353
1. First, you run nslookup on the namespace.
5454
59.5 KB
Loading
6.63 KB
Loading
8.98 KB
Loading
-10.9 KB
Loading

articles/event-hubs/troubleshooting-guide.md

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,24 @@
22
title: Troubleshoot connectivity issues - Azure Event Hubs | Microsoft Docs
33
description: This article provides information on troubleshooting connectivity issues with Azure Event Hubs.
44
ms.topic: article
5-
ms.date: 12/15/2022
5+
ms.date: 07/29/2024
66
---
77

88
# Troubleshoot connectivity issues - Azure Event Hubs
9-
There are various reasons for client applications not able to connect to an event hub. The connectivity issues might be permanent or transient. If the issue happens all the time (permanent), you might want to check the connection string, your organization's firewall settings, IP firewall settings, network security settings (service endpoints, private endpoints, etc.), and more. For transient issues, upgrading to latest version of the SDK, running commands to check dropped packets, and obtaining network traces might help with troubleshooting the issues. This article provides tips for troubleshooting connectivity issues with Azure Event Hubs.
9+
There are various reasons for client applications not able to connect to an event hub. The connectivity issues might be permanent or transient.
10+
11+
If the issue happens all the time (**permanent**), check these settings and other options mentioned in the [Troubleshoot permanent connectivity issues](#troubleshoot-permanent-connectivity-issues) section in this article.
12+
13+
- Connection string
14+
- Your organization's firewall settings
15+
- IP firewall settings
16+
- Network security settings (service endpoints, private endpoints, etc.), and more
17+
18+
For **transient issues**, try the following options that can help with troubleshooting the issues. For more information, see [Troubleshoot transient connectivity issues](#troubleshoot-transient-connectivity-issues).
19+
20+
- Upgrade to latest version of the SDK
21+
- Run commands to check dropped packets
22+
- Obtain network traces.
1023

1124
## Troubleshoot permanent connectivity issues
1225
If the application isn't able to connect to the event hub at all, follow steps from this section to troubleshoot the issue.
@@ -22,7 +35,7 @@ For Kafka clients, verify that producer.config or consumer.config files are conf
2235
[!INCLUDE [event-hubs-connectivity](./includes/event-hubs-connectivity.md)]
2336

2437
### Verify that Event Hubs service tag is allowed in your network security groups
25-
If your application is running inside a subnet and there's an associated network security group, confirm whether the internet outbound is allowed or Event Hubs service tag (`EventHub`) is allowed. See [Virtual network service tags](../virtual-network/service-tags-overview.md) and search for `EventHub`.
38+
If your application is running inside a subnet and there's an associated network security group, confirm whether the internet outbound traffic is allowed or Event Hubs service tag (`EventHub`) is allowed. See [Virtual network service tags](../virtual-network/service-tags-overview.md) and search for `EventHub`.
2639

2740
### Check if the application needs to be running in a specific subnet of a virtual network
2841
Confirm that your application is running in a virtual network subnet that has access to the namespace. If it's not, run the application in the subnet that has access to the namespace or add the IP address of the machine on which application is running to the [IP firewall](event-hubs-ip-filtering.md).

0 commit comments

Comments
 (0)