Azure Event hub usage

1. create event hub on azure

2. create a prj , event hub sender, install nuget pkg - azure service bus

3. check connection string

4. sender sample code

static void Main(string[] args)
        {
            Console.WriteLine("Press Ctrl-C to stop the sender process");
            Console.WriteLine("Press Enter to start now");
            Console.ReadLine();
            SendingRandomMessages();
        }

        static string eventHubName = "get from event hub connection information";
        static string connectionString = "get from event hub connection information";

        static void SendingRandomMessages()
        {
            var eventHubClient = EventHubClient.CreateFromConnectionString(connectionString, eventHubName);
            while (true)
            {
                try
                {
                    var message = Guid.NewGuid().ToString();
                    Console.WriteLine("{0} > Sending message: {1}", DateTime.Now, message);
                    eventHubClient.Send(new EventData(Encoding.UTF8.GetBytes(message)));
                }
                catch (Exception exception)
                {
                    Console.ForegroundColor = ConsoleColor.Red;
                    Console.WriteLine("{0} > Exception: {1}", DateTime.Now, exception.Message);
                    Console.ResetColor();
                }

                Thread.Sleep(200);
            }
        }

5. create a storage account

6. install nuget for receiver prj

7. check keys

8. sample code for receiver

class SimpleEventProcessor : IEventProcessor
    {
        Stopwatch checkpointStopWatch;

        async Task IEventProcessor.CloseAsync(PartitionContext context, CloseReason reason)
        {
            Console.WriteLine("Processor Shutting Down. Partition ‘{0}‘, Reason: ‘{1}‘.", context.Lease.PartitionId, reason);
            if (reason == CloseReason.Shutdown)
            {
                await context.CheckpointAsync();
            }
        }

        Task IEventProcessor.OpenAsync(PartitionContext context)
        {
            Console.WriteLine("SimpleEventProcessor initialized.  Partition: ‘{0}‘, Offset: ‘{1}‘", context.Lease.PartitionId, context.Lease.Offset);
            this.checkpointStopWatch = new Stopwatch();
            this.checkpointStopWatch.Start();
            return Task.FromResult<object>(null);
        }

        async Task IEventProcessor.ProcessEventsAsync(PartitionContext context, IEnumerable<EventData> messages)
        {
            foreach (EventData eventData in messages)
            {
                string data = Encoding.UTF8.GetString(eventData.GetBytes());

                Console.WriteLine(string.Format("Message received.  Partition: ‘{0}‘, Data: ‘{1}‘",
                    context.Lease.PartitionId, data));
            }

            //Call checkpoint every 5 minutes, so that worker can resume processing from 5 minutes back if it restarts.
            if (this.checkpointStopWatch.Elapsed > TimeSpan.FromMinutes(5))
            {
                await context.CheckpointAsync();
                this.checkpointStopWatch.Restart();
            }
        }
    }

static void Main(string[] args)
        {
            string eventHubConnectionString = "get from azure event hub connection information";
            string eventHubName = "get from azure event hub connection information";
            string storageAccountName = "get from azure storage keys";
            string storageAccountKey = "get from azure storage keys";
            string storageConnectionString = string.Format("DefaultEndpointsProtocol=https;AccountName={0};AccountKey={1}", storageAccountName, storageAccountKey);

            string eventProcessorHostName = Guid.NewGuid().ToString();
            EventProcessorHost eventProcessorHost = new EventProcessorHost(eventProcessorHostName, eventHubName, EventHubConsumerGroup.DefaultGroupName, eventHubConnectionString, storageConnectionString);
            Console.WriteLine("Registering EventProcessor...");
            var options = new EventProcessorOptions();
            options.ExceptionReceived += (sender, e) => { Console.WriteLine(e.Exception); };
            eventProcessorHost.RegisterEventProcessorAsync<SimpleEventProcessor>(options).Wait();

            Console.WriteLine("Receiving. Press enter key to stop worker.");
            Console.ReadLine();
            eventProcessorHost.UnregisterEventProcessorAsync().Wait();
        }

时间: 2024-10-26 21:51:11

Azure Event hub usage的相关文章

Azure IoT 技术研究系列5-Azure IoT Hub与Event Hub比较

上篇博文中,我们介绍了Azure IoT Hub的使用配额和缩放级别: Azure IoT 技术研究系列4-Azure IoT Hub的配额及缩放级别 本文中,我们比较一下Azure IoT Hub和Event Hub,同时启动Azure Event Hub(事件中心)的研究. Azure IoT Hub的另一个主要应用场景是从设备侧接收遥测数据. 与 Azure IoT Hub一样,Azure Event Hub是一个事件处理服务,主要用于向云端提供大规模的事件与遥测数据入口,并且具有较低的延

Azure IoT Hub和Event Hub相关的技术系列-索引篇

Azure IoT Hub和Event Hub相关的技术系列,最近已经整理了不少了,统一做一个索引链接,置顶. Azure IoT 技术研究系列1-入门篇 Azure IoT 技术研究系列2-设备注册到Azure IoT Hub Azure IoT 技术研究系列3-设备到云.云到设备通信 Azure IoT 技术研究系列4-Azure IoT Hub的配额及缩放级别 Azure IoT 技术研究系列5-Azure IoT Hub与Event Hub比较 Azure Event Hub 技术研究系

第一次将内容添加到azure event hubs

由于每秒数据吞吐量巨大,需要将实时数据存到event hubs,再由event hubs定时定量保存到document DB. event hubs的介绍详见微软官页:https://azure.microsoft.com/zh-tw/services/event-hubs/ 事件中樞 從網站.應用程式和裝置擷取雲端等級的遙測數據 幾乎每秒即時地記錄數百萬個事件 使用靈活的授權與節流來連接裝置 以時間為基礎處理事件緩衝 利用彈性化的規模來管理服務 使用原生用戶端程式庫連接廣泛的平台 其他雲端服務

Microsoft Azure IoT Hub应用 – 第一部分:向云端发送数据

By Toradex Leonardo Graboski Veiga 1). 简介 物联网(Internet of Things)概念的本质其实就是关于发送数据到网络,所以称为云服务.随着时代发展和技术进步,人们可以使用尺寸更小功耗更低的电子设备并很容易的连接到云端,不过有一个问题却始终困扰着电子工程师们:如何使用这些获取的数据?而这正是物联网的主题. 在Microsoft主页上面有一些实际的应用例子来展示IoT的应用:一个电梯公司通过物联网来改善并提供预先维护:一个工业自动化公司通过物联网深入

Event Hub小白入门指南

Event Hub事件中心 本文的目的在于用最白的大白话,让你从“完全不懂”开始,理解什么是分布式大数据流平台Event Hub,并且理解它的关键概念,并且初步理解其收发数据API. 定义,Event Hub是什么.产生的目的 Event Hub是微软云服务Azure的一个产品,是分布式大数据流平台.属于PaaS.Event Hub: 支持大规模.实时的流数据 每秒能处理百万级的事件 简单易用,托管式服务 支持全球54个Azure地域 这里指的大规模.实时的流数据是指什么?Big Data St

Azure IoT Hub 十分钟入门系列 (3)- 使用消息路由将原始设备数据记录存档

本文主要分享一个案例: 10分钟使用消息路由将原始设备数据记录存档 B站视频讲解:https://www.bilibili.com/video/av90223893/ 本文主要有如下内容: 1.理解什么是消息路由,为什么要用消息路由 2.消息路由的类型 3.配置一个到Storage的消息路由,将原始设备消息存储到blob 4.配置一个到Storage的消息路由,当温度>30°C时,才存储下来 图文讲解: 本文参照官网:https://docs.azure.cn/zh-cn/iot-hub/tut

【物联网云端对接-1】 通过HTTP协议与微软Azure IoT hub进行云端通信

在2015年曾写过一篇文章<从微软build 2015,展望微软未来发展>,提到了微软的Azure和Windows 10 IoT,那算是初次接触微软物联网技术.比较幸运的是在后续的时间里,有幸和微软相关部门进行了深入合作,对微软的Azure云及Windows 10 IoT有了更深的了解. 除了最初的基于树莓派平台做了微软利事盒教育箱(如下图所示)外,尤为重要的是基于台湾新汉的NISE50 Windows 10 IoT工控级网关对接微软Azure IoT Hub平台开发了养殖监控系统,后续在潍坊

Azure IoT 技术研究系列2-设备注册到Azure IoT Hub

上篇博文中,我们主要介绍了Azure IoT Hub的基本概念.架构.特性: Azure IoT 技术研究系列1-入门篇 本文中,我们继续深入研究,做一个起步示例程序:模拟设备注册到Azure IoT Hub, 设备到云通信,云到设备通信. 整体篇幅较大,我们先来第一步:将模拟设备注册到Azure IoT Hub. 首先,我们需要有一个联网的设备,例如树莓派.Win10 IoT设备等等,只要能联网,Azure IoT Hub有编程SDK即可,为了方便演示,本篇中我们做了一个模拟设备: TeldP

Azure IoT Hub 十分钟入门系列 (4)- 实现从设备上传日志文件/图片到 Azure Storage

本文主要分享一个案例: 10分钟内通过Device SDK上传文件到IoTHub B站视频:https://www.bilibili.com/video/av90224073/ 本文主要有如下内容: 1. 了解IoT Hub中文件存储在了哪里 2. 使用Node.js Device SDK 上传TXT文件 3. 在Storage中查看IOT设备上传的文件 图文内容: 本案例参考:https://docs.azure.cn/zh-cn/iot-hub/iot-hub-node-node-file-