<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:atom="https://www.w3.org/2005/Atom" xmlns:sy="https://purl.org/rss/1.0/modules/syndication/" xmlns:dc="https://purl.org/dc/elements/1.1/" xmlns:content="https://purl.org/rss/1.0/modules/content/" xmlns:wfw="https://wellformedweb.org/CommentAPI/" xmlns:slash="https://purl.org/rss/1.0/modules/slash/"
  version="2.0">
  <channel>
    <title>Event Hubs</title>
    <atom:link
      href="https://docs.microsoft.com/archive/blogs/eventhubs/feed.xml"
      rel="self"
      type="application/rss+xml" />
    <link>https://docs.microsoft.com/archive/blogs/eventhubs/feed.xml</link>
    <description>Technical blogs for Event Hubs</description>
    <lastBuildDate>Wed, 05 Dec 2018 04:25:18 GMT</lastBuildDate>
    <language>en-US</language>
    <sy:updatePeriod>hourly</sy:updatePeriod>
    <sy:updateFrequency>1</sy:updateFrequency>
    <item>
      <title>Introducing Event Hubs for Azure Stack</title>
      <link>https://docs.microsoft.com/archive/blogs/eventhubs/introducing-event-hubs-for-azure-stack</link>
      <pubDate>Tue, 25 Sep 2018 10:29:44 GMT</pubDate>
      <dc:creator><![CDATA[Shankar Reddy Sama]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/eventhubs/?p=625</guid>
      <description><![CDATA[Azure Stack provides you with a hybrid cloud platform and provides the Azure services from your own...]]></description>
      <content:encoded><![CDATA[Azure Stack provides you with a hybrid cloud platform and provides the Azure services from your own datacenter. To enable and support your evolving business requirements Azure Stack enables various scenarios and services.

Enabling Event Hubs on Azure Stack gives you the advantages of,
<ul>
 	<li>Aggregating and filtering data locally, you don’t have to stream process to cloud. Stream and aggregate your data on-premises forgetting your latency concerns.</li>
 	<li>Process your data streams while maintaining the sovereignty.</li>
 	<li>Adhere to your geopolitical constraints while still connecting to Azure with hybrid solutions and one operating model on-premises and cloud.</li>
 	<li>On-premises data streaming solutions also solves your problem of local regulation/compliance/enterprise security boundaries. You can focus on getting data insights without connecting to cloud.</li>
 	<li>You also reduce network costs and boost your performance.</li>
 	<li>You also have the added advantage of optimizing your streaming resources to maximize your capacity usage.</li>
</ul>
We are soon releasing Event Hubs on Azure Stack starting with Private Preview with selected customers.
<h1>How to participate in Private Preview?</h1>
If you are considering Azure Stack for your business solutions and are interested in shaping the experience of Event Hubs on Azure Stack, <a href="https://aka.ms/eventHubsOnStackSurvey">complete this survey</a> by October 15 2018.

<span>Be part of Azure Advisors. Please consult </span><a href="https://aka.ms/advisorsinfo"><span>https://aka.ms/advisorsinfo</span></a><span> for more information. </span><span> </span>
<h1>Next Steps</h1>
<span>Learn more about Azure Stack and how to onboard to it here -</span> <a href="https://azure.microsoft.com/en-us/overview/azure-stack/"><span>https://azure.microsoft.com/en-us/overview/azure-stack/</span></a><span> </span><span> </span>

<span> </span>Learn about Azure Event Hubs - <a href="https://azure.microsoft.com/en-us/services/event-hubs/"><span>https://azure.microsoft.com/en-us/services/event-hubs/</span></a><span> </span>

<span>Learn more about Event Hubs on Azure Stack and updates here – <a href="https://aka.ms/EventHubsOnStack">https://aka.ms/EventHubsOnStack</a></span>

Check this column for more updates or any questions mail us on askeventhubs@microsoft.com

&nbsp;]]></content:encoded>
    </item>
    <item>
      <title>Azure Event Hubs WebSockets and Proxy support</title>
      <link>https://docs.microsoft.com/archive/blogs/eventhubs/azure-event-hubs-websockets-and-proxy-support</link>
      <pubDate>Fri, 21 Sep 2018 16:24:04 GMT</pubDate>
      <dc:creator><![CDATA[Shubha Vijayasarathy]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/eventhubs/?p=605</guid>
      <description><![CDATA[There are a lot of challenges when we are talking of real-time applications especially on the...]]></description>
      <content:encoded><![CDATA[There are a lot of challenges when we are talking of real-time applications especially on the protocols we need to pick as to who can become better candidates. Now what is meant by better candidates? Take HTTP for instance, where real-time applications work through the challenge-response principle. Each time a request has to be placed in to get data and keeping up with the real-time’ness would be a challenge. You also need to poll in such situations.

These shortcomings can be addressed with WebSockets which lets server and clients to exchange messages once the connection is established. Also, the server need not be polled to get the data when available, making it more suitable to the real-time situations. This also optimizes the bandwidth and provides updates to the clients when available.
<h1>Why WebSockets using AMQP?</h1>
While WebSockets fit the real-time updates and maintain the established connection to exchange messages between client and server, you also need an efficient messaging protocol like AMQP. Couple of advantages can be listed here like the different modes of operation it offers, the binary packing format (that lets you pack different types of data). The stand alone broker (server end of AMQP) is capable of handling the state thus providing a central broker for all the clients (no need for many peer-to-peer links). You can refer this article to learn more about <a href="https://docs.microsoft.com/en-us/azure/service-bus-messaging/service-bus-amqp-protocol-guide?toc=%2Fen-us%2Fazure%2Fevent-hubs%2FTOC.json&amp;bc=%2Fen-us%2Fazure%2Fbread%2Ftoc.json">AMQP 1.0 used by Event Hubs.</a>

Thus, a self-sufficient message broker (AMQP broker) and transport layer (WebSockets) make it an efficient real-time communication through servers and browser clients.

Event Hubs supports the WebSockets with AMQP with this release – (<a href="https://github.com/Azure/azure-event-hubs-java/releases/tag/1.1.0">Event Hubs Clients 1.1.0 for Java</a>). The maven packages for the release can be found <a href="https://mvnrepository.com/artifact/com.microsoft.azure/azure-eventhubs">here</a>. Alternatively, you can download from <a href="https://repo1.maven.org/maven2/com/microsoft/azure/azure-eventhubs/1.1.0/azure-eventhubs-1.1.0.pom">here</a>. Our GitHub release for new clients can be found <a href="https://github.com/Azure/azure-event-hubs-java/releases/tag/1.1.0">here</a>.
<h1>Proxy support over WebSockets</h1>
WebSockets with AMQP satisfies the duplex communication with a remote host for real-time on a single socket. But big enterprises also call for enterprise content filtering. This poses the common challenges of security, firewalls through private networks, enterprise boundaries where the proxy severs monitor and close the connection if open for a significant time.

Event Hubs team, now provides the Proxy support with basic authentication through this release – (<a href="https://github.com/Azure/azure-event-hubs-java/releases/tag/1.2.0">Event Hubs Clients 1.2.0 for Java</a>). The maven packages for the release can be found <a href="https://mvnrepository.com/artifact/com.microsoft.azure/azure-eventhubs">here</a>. Alternatively, you can download from <a href="https://repo1.maven.org/maven2/com/microsoft/azure/azure-eventhubs/1.2.0/azure-eventhubs-1.2.0.pom">here</a>. Our GitHub release for new clients can be found <a href="https://github.com/Azure/azure-event-hubs-java/releases/tag/1.1.0">here</a>.

Our attempt with these release is to address the WebSockets and Proxy support. Let us know if these satisfy your scenarios or we need to add more supporting cases.

Below are the release summaries (which can also be found on GitHub - <a href="https://github.com/Azure/azure-event-hubs-java/releases/">https://github.com/Azure/azure-event-hubs-java/releases/</a>)

<a href="https://github.com/Azure/azure-event-hubs-java/releases/tag/1.1.0">1.1.0</a>
<h3>com.microsoft.azure.eventhubs</h3>
<h4>New Features</h4>
<ul>
 	<li><em>WebSockets Support</em> (<a href="https://github.com/Azure/azure-event-hubs-java/pull/362">#362</a>)
Amqp over WebSockets is particularly useful when enterprise policies (ex: firewall outbound port rules) restrict traffic on the default Amqp secure port (5671). To send or receive to Microsoft Azure Event Hubs over websockets - which uses port 443, set the TransportType on ConnectionStringBuilder, like this:</li>
</ul>
connectionStringBuilder.setTransportType(TransportType.AmqpWebSockets)
<h4>Bug fixes</h4>
<ul>
 	<li>Correct the ExceptionContract when request-response channel closes with transient error (<a href="https://github.com/Azure/azure-event-hubs-java/pull/372">#372</a>)</li>
 	<li>PartitionReceiver and PartitionSender creation should participate in RetryPolicy (<a href="https://github.com/Azure/azure-event-hubs-java/pull/373">#373</a>)</li>
</ul>
<a href="https://github.com/Azure/azure-event-hubs-java/releases/tag/1.2.0">1.2.0</a>

This major release targets the following additions,
<h3>com.microsoft.azure.eventhubs</h3>
<h4>New Features</h4>
<ul>
 	<li><em>Proxy Support - with Basic Authentication</em> (<a href="https://github.com/Azure/azure-event-hubs-java/pull/362">#362</a>)
Amqp over WebSockets with proxy support is particularly useful when enterprises want to stream data from on-premise to cloud and IT policies restrict all outbound traffic to flow only via a Proxy Server. To send to or receive from Microsoft Azure Event Hubs via proxy server, set the HTTP proxy settings &amp; set the TransportType on ConnectionStringBuilder to AMQP_WEB_SOCKETS, and you are all set!</li>
</ul>
<pre>// step-1: set the proxy server settings 
ProxySelector.setDefault(new ProxySelector() {            
                   @Override            
                   public List&lt;Proxy&gt; select(URI uri) {                
                      LinkedList&lt;Proxy&gt; proxies = new LinkedList&lt;&gt;();                
                      proxies.add(new Proxy(Proxy.Type.HTTP, new InetSocketAddress(proxyIpAddressStr, proxyPort)));                
                      return proxies;     
                  } 
                  @Override
                  public void connectFailed(URI uri, SocketAddress sa, IOException ioe) {
                      // trace and follow up on why proxy server is down
                  } 
              }); 
// step-2: configure EventHubClient transport to AmqpWebSockets
connectionStringBuilder.setTransportType(TransportType.AMQP_WEB_SOCKETS);
EventHubClient ehClient = EventHubClient.createSync(connectionStringBuilder.toString()....); 

// hereon, this ehClient instance is ready to talk to EventHub service via the proxy server</pre>
<h1>Next Steps</h1>
The AMQP WebSockets support is built on the specifications found <a href="https://docs.oasis-open.org/amqp-bindmap/amqp-wsb/v1.0/cs01/amqp-wsb-v1.0-cs01.pdf">here</a>

Try this new library and let us know what you think!

Happy event-ing!

Event Hubs team

&nbsp;]]></content:encoded>
    </item>
    <item>
      <title>Azure Event Hubs is now offering support for Availability Zones in preview</title>
      <link>https://docs.microsoft.com/archive/blogs/eventhubs/azure-event-hubs-is-now-offering-support-for-availability-zones-in-preview</link>
      <pubDate>Thu, 21 Jun 2018 18:08:49 GMT</pubDate>
      <dc:creator><![CDATA[Justin Conway]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/eventhubs/?p=545</guid>
      <description><![CDATA[Azure Event Hubs makes streaming data effortless because of its simplicity and ability to scale...]]></description>
      <content:encoded><![CDATA[Azure Event Hubs makes streaming data effortless because of its simplicity and ability to scale easily. The sheer volume of data that goes through the Event Hubs platform is a testament to how reliable the service is. In fact, by the time you finish reading this sentence, Event Hubs will have ingested over 100 million events globally.

Today, we are adding to the durability of the service and offering support for Availability Zones in public preview for Standard Event Hubs. This new feature adds even greater resiliency and fault tolerance to the top event streaming service. Support for Availability Zones partners nicely with <a target="_blank" href="https://docs.microsoft.com/en-us/azure/event-hubs/event-hubs-geo-dr" rel="noopener">our disaster recovery feature</a> to offer a highly available service that can withstand both a zone outage and a regional one when both are properly utilized.

Event Hubs has customers in Retail, Auto, Finance, and other verticals that use its streaming capabilities for scenarios such as predictive analytics and financial trading. Availability Zones support further enhances our commitment to keeping our customers’ workloads running as smoothly as possible. We hope you try out this new feature.
<h2>What regions will this be offered in?</h2>
<ul>
 	<li>Central US</li>
 	<li>East US 2</li>
 	<li>France Central</li>
</ul>
We’ll be offering support for additional Availability Zones enabled regions soon. <a target="_blank" href="https://docs.microsoft.com/en-us/azure/availability-zones/az-overview" rel="noopener">Learn more about Availability Zones</a>.
<h2>How can you enable Availability Zones on your Standard Event Hubs namespace?</h2>
You can enable Availability Zones on new namespaces only. We do not support migration of existing namespaces.

If using an ARM template to create a Standard Event Hubs namespace, it is as simple as specifying an Availability Zone supported region and setting the zoneRedundant property to true in the template:

<img src="https://msdnshared.blob.core.windows.net/media/2018/06/EH_AZ_Create.png" alt="" class="aligncenter size-full wp-image-555" width="773" height="513" />

You can also enable zone-redundancy by creating a new namespace in the portal as shown below. It’s important to note that you cannot disable zone redundancy after enabling it on your namespace.

<img src="https://msdnshared.blob.core.windows.net/media/2018/06/EH_AZ_Portal.png" alt="" class="aligncenter size-full wp-image-565" width="772" height="550" />
<h3>Learn more about <a target="_blank" href="https://azure.microsoft.com/en-us/services/event-hubs/" rel="noopener">Azure Event Hubs</a>.</h3>]]></content:encoded>
    </item>
    <item>
      <title>New Akka Streams and Apache Flink tutorials/samples for Event Hubs for Apache Kafka Ecosystems</title>
      <link>https://docs.microsoft.com/archive/blogs/eventhubs/new-akka-streams-and-apache-flink-tutorialssamples-for-event-hubs-for-kafka-ecosystems</link>
      <pubDate>Wed, 13 Jun 2018 16:43:10 GMT</pubDate>
      <dc:creator><![CDATA[Basil Hariri]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/eventhubs/?p=525</guid>
      <description><![CDATA[Introducing two new Event Hubs for Apache Kafka Ecosystems tutorials - Akka Streams and Apache...]]></description>
      <content:encoded><![CDATA[<h3>Introducing two new Event Hubs for Apache Kafka Ecosystems tutorials - <a href="https://docs.microsoft.com/azure/event-hubs/event-hubs-kafka-akka-streams-tutorial">Akka Streams</a> and <a href="https://docs.microsoft.com/azure/event-hubs/event-hubs-kafka-flink-tutorial">Apache Flink</a>!</h3>
Event Hubs for Kafka Ecosystems combines the power and simplicity of Event Hubs with the wide ecosystem of Apache Kafka. We're excited to introduce two new tutorials showing just how easy it is to connect powerful frameworks to Event Hubs Kafka endpoints.

Want to learn more about Event Hubs for Apache Kafka? Here are some resources to get you started:
<ul>
 	<li><a href="https://docs.microsoft.com/azure/event-hubs/event-hubs-for-kafka-ecosystem-overview">Event Hubs for Apache Kafka Ecosystems Overview</a></li>
 	<li><a href="https://docs.microsoft.com/azure/event-hubs/event-hubs-create-kafka-enabled">Create Apache Kafka enabled Event Hubs</a></li>
 	<li><a href="https://docs.microsoft.com/azure/event-hubs/event-hubs-quickstart-kafka-enabled-event-hubs">Event Hubs for Apache Kafka Ecosystems Quickstart</a></li>
 	<li><a href="https://docs.microsoft.com/azure/event-hubs/event-hubs-kafka-mirror-maker-tutorial">Using Apache Kafka MirrorMaker with a Kafka enabled Event Hub</a></li>
 	<li><a href="https://github.com/Azure/azure-event-hubs/tree/master/samples/kafka">Examples on GitHub</a></li>
</ul>
These examples run right out of the box, but the same ideas apply to your existing Akka Streams or Flink applications. Try them out and let us know what you think!

Happy event-ing!

Event Hubs team]]></content:encoded>
    </item>
    <item>
      <title>Azure Event Hubs Deprecating Entity Metrics REST API</title>
      <link>https://docs.microsoft.com/archive/blogs/eventhubs/azure-event-hubs-deprecating-entity-metrics-rest-api</link>
      <pubDate>Thu, 10 May 2018 17:51:20 GMT</pubDate>
      <dc:creator><![CDATA[Justin Conway]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/eventhubs/?p=505</guid>
      <description><![CDATA[We are in the process of deprecating the entity metrics pipeline on May 31, 2018, this was the same...]]></description>
      <content:encoded><![CDATA[<b>We are in the process of deprecating the entity metrics pipeline on May 31, 2018, this was the same API used for the Classic Azure portal and Service Bus Explorer. Also both Service Bus and Relay services relied on this too.
</b>

For example the URL looked something like this:  <em>https://management.core.windows.net/73A8B69B-12D4-46A8-9575-9E752E2A1234/services/servicebus/namespaces/mynamespace/queues/myqueue/Metrics</em>

The good news is we have something better! Service Bus, Relay, and Event Hubs now have <a href="https://docs.microsoft.com/en-us/azure/event-hubs/event-hubs-metrics-azure-monitor">metrics available in Azure Monitor</a> which provides a cohesive experience across Azure services.

What are the benefits of using Event Hubs metrics in Azure Monitor?
<ul>
 	<li>Data is 1 minute latent compared to 20 minutes latent for the older pipeline you are currently using</li>
 	<li>Metrics are available immediately</li>
 	<li>View 30 days of history</li>
 	<li>Metrics have dimensions that allow you to segment usage and get more insights into the Service</li>
 	<li>Setup alerts on metrics that allow you to receive notifications when the metric crosses a threshold you set</li>
 	<li>Going forward, Azure Monitor is the pipeline that we will add newer metrics to for further insights into your workload</li>
</ul>
To try the new metrics pipeline check out the <a href="https://github.com/Azure-Samples/monitor-dotnet-metrics-api">Retrieve Azure Monitor metrics with .NET</a> sample on GitHub.]]></content:encoded>
    </item>
    <item>
      <title>I want to enable Geo-DR and fail-over, but don’t want to update the connection string</title>
      <link>https://docs.microsoft.com/archive/blogs/eventhubs/i-want-to-enable-geo-dr-and-fail-over-but-dont-want-to-update-the-connection-string</link>
      <pubDate>Mon, 09 Apr 2018 15:36:56 GMT</pubDate>
      <dc:creator><![CDATA[Shubha Vijayasarathy]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/eventhubs/?p=495</guid>
      <description><![CDATA[Data centers experience downtime. We still want to ensure the data processing continue to happen...]]></description>
      <content:encoded><![CDATA[Data centers experience downtime. We still want to ensure the data processing continue to happen event if this means from a different region or data center. Azure Event Hubs supports your geographical disaster recovery plan by enabling geo-replication of the namespace metadata in a different region. With this feature, often the customers ask a question,
<h1>My client applications need an update when a failover happens?</h1>
Let me answer this question by describing how the feature works with Azure Event Hubs. The service enables the feature by pairing a primary namespace in a region with a secondary namespace in another region. You pair both the regions using an alias. An alias is a name that you provide for your geo-disaster recovery configurations and provides a single stable Fully Qualified Domain Name (FQDN) connection string. You can use this connection string in your client applications.

In the event of disaster, the customer (you) initiates a failover to your secondary namespace. Your alias now points only to your secondary namespace. However, the connection string remains the same. This concept solves many customer scenarios. Nevertheless, what about the client applications that are currently in production and depending on your current primary namespace? We have tried to solve this problem by introducing the concept of an alternate name that is tied to your current primary namespace.
<h2>So what is an alternate name?</h2>
Azure Event Hubs lets you use your current primary namespace to be the alias name when creating a geo-pair for your disaster recovery configurations. When doing so, you have the option of providing the alternate name to identify your primary namespace.

I urge you to read the following considerations before you opt for this approach.
<ol>
 	<li>An alternate name is simply an identifier name that you give to your primary namespace.</li>
 	<li>If you provide your primary namespace to be your alias, you current primary connection string is your alias connection string as well.</li>
 	<li>When you do a failover in the event of a disaster – your secondary namespace becomes your primary with the same connection string (remember, your alias connection string is same as your current existing primary connection string).</li>
 	<li>This means, when you want to connect back to your old primary (to drain any data or connect for any other reasons), this is not possible with the connection string.</li>
 	<li>Your alternate name now comes into consideration, as this is the only way you can access your old primary.</li>
 	<li>Your primary namespace name in this context remains the same. The connectionstring though will change to reflect the alternate name</li>
 	<li>In addition, after the fail-over your new primary (old secondary) will now have the existing primary connection string and the alias connection string.</li>
 	<li>If you want to pair the same set of namespaces again, this will not be possible to avoid confusions with the connection string</li>
</ol>
The following script walks you through this experience of providing an alternate name and failing over using the existing primary namespace as your alias.
<pre>#Step1 - Login to your Azure subscription
az login

#Optional - set your desired subscription
az account set --subscription "your subscription name"

#Step 2 – following parameters are used while creating the resources.

#geo location where the primarynamespace is
export location1=SouthCentralUS

#geo location where the secondarynamespace should be created
export location2=NorthCentralUS

#provide your exisitng resourcegroup which has the primarynamespace
export resourcegroup=myresourcegroup

#provide your existing primary namespace
export primarynamespace=myexistingprimarynamespace
export secondarynamespace=myexistingsecondarynamespace

# here your primarynamespace is your alias name
export aliasname=myexistingprimarynamespace
export alternatename=testehalternatename1

#Step 3 - create your secondary namespace. Copy the ARM ID from the output as you need it later for -PartnerPartnernamespace.
# sample ARM ID looks like this - /subscriptions/your subscriptionid/resourceGroups/$resourcegroup/providers/Microsoft.EventHub/namespaces/secondarynamespace
az eventhubs namespace create --name $secondarynamespace --resource-group $resourcegroup --location $location2 --sku Standard

#Step 4 - Create a geo-dr configuration with primarynamespace name as the alias name and pair the namespaces. Note, you will also provide the alternatename here.
# It is using this alternatename that you will access your old primary once you have triggered the failover
az eventhubs georecovery-alias set --resource-group $resourcegroup --alias $primarynamespace --namespace-name $primarynamespace --partner-namespace "ARM ID of secondary namespace" --alternate-name $alternatename

#Optional - Once your geo-dr configurations are set, you can get the details using this
az eventhubs georecovery-alias show --resource-group $resourcegroup --alias $aliasname --namespace-name $primarynamespace

#Step 5 - you can now do a failover on your secondary namespace with the following command
az eventhubs georecovery-alias fail-over --resource-group $resourcegroup --alias $aliasname --namespace-name $secondarynamespace

#Optional - check you geo-dr configuration details to reflect the fail-over
#Note - your secondarynamespace after the failover will be your new primary, but the connection string remains the same
az eventhubs georecovery-alias show --resource-group $resourcegroup --alias $aliasname --namespace-name $secondarynamespace -- this is your current primary

</pre>
You can download this script from <a href="https://github.com/Azure/azure-event-hubs/blob/master/samples/Management/CLI/GEoDR_NoClientUpdates.py">azure-event-hubs</a> GitHub repo. The PowerShell version of this script can be found <a href="https://github.com/Azure/azure-event-hubs/blob/master/samples/Management/PowerShell/GEoDR_NoClientUpdates.ps1">here.</a>

Geo-Disaster Recovery requires a lot of planning and consideration as this is vital to the proper and continual functioning of your business and its needs. This blog aims to educate the considerations when enabling this feature for Azure Event Hubs. As a best practice, our recommendation would be to update your clients. This is much cleaner, even though you have the option of retaining the current connection string. We also recommend you to delete the old primary namespace once you have drained your data on it.

We currently support the feature for meta-data replication at namespace and in future may add the data replication as well. We would love to hear what you have to say to us. Leave us your comments/feedback.

Happy Event-ing!

Azure Event Hubs Team

&nbsp;]]></content:encoded>
    </item>
    <item>
      <title>Azure Event Hubs Geo-DR configurations, now enabled in all Azure regions</title>
      <link>https://docs.microsoft.com/archive/blogs/eventhubs/azure-event-hubs-geo-dr-configurations-now-enabled-in-all-azure-regions</link>
      <pubDate>Wed, 28 Mar 2018 15:48:20 GMT</pubDate>
      <dc:creator><![CDATA[Shubha Vijayasarathy]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/eventhubs/?p=455</guid>
      <description><![CDATA[Geo-disaster recovery for Azure Event Hubs is now enabled in all Azure regions. You can now enable...]]></description>
      <content:encoded><![CDATA[Geo-disaster recovery for Azure Event Hubs is now enabled in all Azure regions. You can now enable this configuration on your existing namespaces and new namespaces in the region of your choice.

This feature gives you the flexibility of picking a primary region and a primary namespace in it to pair with a secondary namespace in a different region. Once paired, this feature maintains the sync of the entities between these regions. So in the event of a regional disaster and Event Hubs being unavailable in the primary region, you initiate a fail-over. Once the fail-over is initiated, the Event Hubs in the secondary region takes charge so you can continue with your application.

The Geo-DR feature also introduces the alias configuration which represents the pairing of the primary and secondary namespaces. Once Geo-paired, you can obtain the connection string to the alias which can be used by the clients to talk to Event Hubs. With this, when a fail-over is initiated, the connection to the primary is cut and the clients now talk to the secondary namespace without having to change the clients.

<strong>Please Note: </strong>This release foes not contain data disaster recover-ability. This feature currently covers meta-data only recovery.

Please see the full documentation of the feature, including the code samples here: https://docs.microsoft.com/azure/event-hubs/event-hubs-geo-dr

This feature is available only on Standard Event Hubs namespace. Geo-DR configurations can be enabled either using <a href="https://docs.microsoft.com/powershell/module/azurerm.eventhub/?view=azurermps-5.6.0&amp;viewFallbackFrom=azurermps-5.3.0">PowerShell</a> or <a href="https://docs.microsoft.com/cli/azure/eventhubs?view=azure-cli-latest">Azure CLI</a> for Event Hubs.

Enjoy this new capability and feel free to leave us your valuable feedback/comments below!

&nbsp;

Happy Event-ing!

Event Hubs team]]></content:encoded>
    </item>
    <item>
      <title>Manage Event Hubs resources using Azure Command Line Interface</title>
      <link>https://docs.microsoft.com/archive/blogs/eventhubs/manage-event-hubs-resources-using-azure-command-line-interface</link>
      <pubDate>Wed, 14 Mar 2018 18:41:30 GMT</pubDate>
      <dc:creator><![CDATA[Shubha Vijayasarathy]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/eventhubs/?p=445</guid>
      <description><![CDATA[We are excited to announce the Azure CLI 2.0 support for Event Hubs.  This means you can now use...]]></description>
      <content:encoded><![CDATA[We are excited to announce the <a href="https://docs.microsoft.com/cli/azure/?view=azure-cli-latest">Azure CLI 2.0</a> support for <a href="https://docs.microsoft.com/cli/azure/eventhubs?view=azure-cli-latest">Event Hubs</a>.  This means you can now use Azure CLI 2.0 commands to interact with Azure Resource Manager and management endpoints for Event Hubs resources. Explore the various resource management operations this functionality provides. Manage your Geo-Disaster Recovery or create, update or delete your resources.

<strong>How easy is this?</strong>

Here are a couple of examples,
<pre>Create a new Event Hub
 az eventhubs eventhub create --resource-group myresourcegroup --namespace-name mynamespace --name myeventhub --message-retention 4 ---partition-count 15
 
 Create an Authorization Rule
 az eventhubs eventhub authorization-rule create --resource-group myresourcegroup --namespace-name mynamespace --eventhub-name myeventhub --name myauthrule --rights Listen
 
 
 Delete a Consumer Group
 az eventhubs eventhub consumer-group delete --eventhub-name
  --name
  --namespace-name
  --resource-group
</pre>
Explore this new capability and as always provide us with your valuable feedback and comments.
Happy event-ing!]]></content:encoded>
    </item>
    <item>
      <title>Event Processor Host 2.0.1 is now live</title>
      <link>https://docs.microsoft.com/archive/blogs/eventhubs/event-processor-host-2-0-1-is-now-live</link>
      <pubDate>Tue, 13 Mar 2018 17:41:53 GMT</pubDate>
      <dc:creator><![CDATA[Shubha Vijayasarathy]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/eventhubs/?p=425</guid>
      <description><![CDATA[Check out the newest release for the Event Processor Host library!

Want to update your clients to...]]></description>
      <content:encoded><![CDATA[Check out the newest release for the Event Processor Host library!

Want to update your clients to the new version, the NuGet package can be found at https://www.nuget.org/packages/Microsoft.Azure.EventHubs.Processor/2.0.1

Event Processor Host is an intelligent agent that simplifies receiving events from Event Hubs by managing persistent checkpoints and parallel receives.

New to Event Hubs and want to learn to stream and process events or know more about the service. These articles provide a great reference,
<ul>
 	<li><a href="https://docs.microsoft.com/azure/event-hubs/event-hubs-what-is-event-hubs">Event Hubs Overview</a></li>
 	<li><a href="https://docs.microsoft.com/azure/event-hubs/event-hubs-dotnet-standard-getstarted-send">Send events to Event Hubs</a></li>
 	<li><a href="https://docs.microsoft.com/azure/event-hubs/event-hubs-dotnet-standard-getstarted-receive-eph">Process events from Event Hubs</a></li>
</ul>
What is new for the release? https://github.com/Azure/azure-event-hubs-dotnet/releases/tag/v2.0.1
<ul>
 	<li>We added dependency changes to support NewtonSoft.Json version 10.0.3</li>
 	<li>We also added a bug fix - A lease might have empty offset stored if there are no events on the partitions. This could result in host initialization failures. This has been fixed.</li>
</ul>
Try this new library and let us know what you think!

Happy event-ing!

Event Hubs team

&nbsp;

&nbsp;]]></content:encoded>
    </item>
    <item>
      <title>Azure Event Hubs Clients 1.0.0 for Java is GA</title>
      <link>https://docs.microsoft.com/archive/blogs/eventhubs/event-hubs-clients-for-java-1-0-0-is-now-live</link>
      <pubDate>Thu, 01 Mar 2018 21:41:56 GMT</pubDate>
      <dc:creator><![CDATA[Shubha Vijayasarathy]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/eventhubs/?p=385</guid>
      <description><![CDATA[Azure Event Hubs Java ecosystem reaches a new milestone with our newest and major release for Event...]]></description>
      <content:encoded><![CDATA[Azure Event Hubs Java ecosystem reaches a new milestone with our newest and major release for Event Hubs Java library! We are happy and excited to announce the <a href="https://github.com/Azure/azure-event-hubs-java">general availability of our new EventHubs and EventProcessorHost in version 1.0.0, clients for JAVA</a>.

These libraries allow customers to enjoy a solid Java experience with Azure Event Hubs as it comes complete with native functionality. Enjoy these native clients to ingest into Event Hubs or receive events using Event Processor Host.

New to Event Hubs and want to learn how to send and receive events? These articles explain all the details, Stream events to Azure Event Hubs/Process events from Event Hubs. <a href="https://github.com/Azure/azure-event-hubs/tree/master/samples/Java">We have samples you can try, using these libraries for streaming and processing</a>.

Want to update your clients with this new version? The maven packages can be found <a href="https://mvnrepository.com/artifact/com.microsoft.azure/azure-eventhubs">here </a>. Alternatively, you can download from <a href="https://repo1.maven.org/maven2/com/microsoft/azure/azure-eventhubs/1.0.0/azure-eventhubs-1.0.0.pom">here.</a> Our GitHub release for new clients can be found <a href="https://github.com/Azure/azure-event-hubs-java">here</a>.

This library can be referenced in Maven projects using the following dependency declaration
<pre>&lt;<strong>dependency</strong>&gt;
&lt;<strong>groupId</strong>&gt;com.microsoft.azure&lt;/<strong>groupId</strong>&gt;
&lt;<strong>artifactId</strong>&gt;azure-eventhubs&lt;/<strong>artifactId</strong>&gt;
&lt;<strong>version</strong>&gt;1.0.0&lt;/<strong>version</strong>&gt;
&lt;/<strong>dependency</strong>&gt;
&lt;<strong>dependency</strong>&gt;
&lt;<strong>groupId</strong>&gt;com.microsoft.azure&lt;/<strong>groupId</strong>&gt;
&lt;<strong>artifactId</strong>&gt;azure-eventhubs-eph&lt;/<strong>artifactId</strong>&gt;
&lt;<strong>version</strong>&gt;1.0.0&lt;/<strong>version</strong>&gt;
&lt;/<strong>dependency</strong>&gt;</pre>
Below is the release summary (which can also be found on GitHub - <a href="https://github.com/Azure/azure-event-hubs-java/releases/tag/1.0.0">https://github.com/Azure/azure-event-hubs-java/releases/tag/1.0.0</a>)
<h1>1.0.0</h1>
This major release targets the following additions

<strong>com.microsoft.azure.eventhubs</strong>
<ul>
 	<li>Support user threadPool : All asynchronous tasks are handed off to the ‘Executor’ that is provided while creating the ‘EventHubClient’. This means EventHubs library no longer creates any threads or a threadPool.</li>
 	<li>Support for ‘PartitionReceiver’: ‘PartitionReceiver’ is now based out of ‘EventData.SequenceNumber’, you can now use ‘EventPosition.fromSequenceNumber(sequenceNumber)’ to create the ‘PartitionReceiver’ from a sequence number</li>
 	<li><code>ConnectionStringBuilder</code><span> supports setters for all properties in fluent-style. Supports adding properties to an existing </span><code>ConnectionString</code></li>
 	<li><code>PartitionReceiveHandler</code><span> </span>is changed from<span> </span><code>abstract class</code><span> </span>to<span> </span><code>interface</code>.</li>
 	<li><code>PartitionReceiver.END_OF_STREAM</code><span> </span>and<span> </span><code>PartitionReceiver.START_OF_STREAM</code><span> </span>are replaced by<span> </span><code>EventPosition.fromEndOfStream()</code><span> </span>and<span> </span><code>EventPosition.fromStartOfStream()</code><span> </span>respectively.</li>
</ul>
<strong>com.microsoft.azure.eventprocessorhost</strong>
<ul>
 	<li>Previously there was a central loop which periodically scanned the state of all leases and was responsible for taking unowned leases and renewing leases owned by the host instance. The two parts (taking and renewing) have been separated and both are now parallel rather than iterative. This greatly reduces the impact of Azure Storage latency when using the default lease manager.</li>
 	<li>All code has been refactored to use<span> </span><code>CompletableFuture</code><span> </span>and composition. There are no long-running threads and all sleeps have been replaced with scheduled execution.</li>
</ul>
<h1>Breaking API changes</h1>
<strong>Changes for com.microsoft.azure.eventhubs</strong>
<ul>
 	<li>EventData constructors are replaced with EventData.create(...) variants</li>
 	<li style="list-style-type: none"></li>
 	<li>Factory method to create an instance of EventHubClient from connection string is renamed from fromConnectionString to create.</li>
 	<li style="list-style-type: none"></li>
 	<li>Factory method to create an instance of EventHubClient requires additional parameter - Executor.</li>
 	<li style="list-style-type: none"></li>
 	<li>Factory methods to create PartitionReceiver instances require a new parameter EventPosition - as an abstraction to the position of the EventData (as opposed to taking offset, dateTime or sequenceNumber).</li>
</ul>
<strong>Changes for com.microsoft.azure.eventprocessorhost</strong>
<ul></ul>
<ul>
 	<li>All deprecated constructors and methods have been removed</li>
 	<li>EventProcessorHost no longer offers constructors, which automatically generate a hostname. This means that all constructors will requires the user to supply a hostname. To generate a unique hostname, we recommend using the static EventProcessorHost.createHostName utility method, which appends the UUID to a user-supplied string.</li>
 	<li>If you are using Azure Storage for your lease management and checkpointing, the EventProcessorHost constructor requires a user supplied Storage container name. This container name should be the same for all EventProcessorHost instances operating on the name event hub and consumer group. This shared store is what allows the instances to divide ownership of the event hub partitions amongst them.</li>
 	<li>For EventProcessorHost constructors which take a user-supplied threadpool, the type is now changed from ExecutorService to ScheduledExecutorService</li>
 	<li>The EventProcessorHost.setAutoExecutorShutdown and forceExectorShutdown methods are removed. An internal threadpool will always be shut down when the EventProcessorHost instance is shut down via unregisterEventProcessor, and a user-supplied threadpool will never be shut down.</li>
 	<li>The Client for Java now uses class EventPosition to represent a position in the stream of events. The initial offset provider previously in EventProcessorOptions has been renamed to initial position provider and supports EventPosition.</li>
 	<li>The EventProcessorHost.register* methods now return a CompletableFuture which completes when initialization is finished. These methods no longer throw directly. All errors during initialization are signaled by completing the CompletableFuture with an exception</li>
 	<li>unregisterEventProcessor is now async and returns a CompletableFuture which completes when the EventProcessorHost instance has finished shutting down. Failures during shutdown are signaled by completing the CompletableFuture with an exception</li>
 	<li>The PartitionContext.checkpoint methods are now async and return a CompletableFuture. The checkpoint is not guaranteed to be persisted until the CompletableFuture completes. Failures during checkpointing are signaled by completing the CompletableFuture with an exception</li>
 	<li>The ICheckpointManager and ILeaseManager interfaces have been changed to use CompletableFuture instead of Future. This change only affects those implementing checkpoint and lease managers.</li>
 	<li>As part of the parallelization effort, the internals were refactored to use CompletableFutures and composition. There are no long-running threads and all sleeps have been replaced by scheduling. If the user is supplying a threadpool, there is no minimum number of available threads required to avoid starvation or deadlock: Event Processor Host can make progress, although slowly, as long as even one thread is available. More threads are recommended, of course, and achieving high performance requires multiple threads</li>
</ul>
<h2>What is next?</h2>
Check out this column for updated GitHub samples for Event Hubs using the new Java clients!

Try this new library and let us know what you think!

Happy event-ing!

Event Hubs team]]></content:encoded>
    </item>
  </channel>
</rss>