Azure EventHub快速入门和使用心得
Azure Event Hubs(事件中心)是一个大数据流式数据摄取服务平台,每秒接受数百万事件;
EventHubs 是一个有数据保留期限的缓冲区,类似分布式日志;可缩放的关键在于【分区消费模型】,每分区独立存储数据,被后端独立消费。随着时间推移,事件会逐渐老化,所以分区不会 full.
发送到Eventhub 中的数据可以被 readl-time analytics provider 和后端batch/storage adapters 处理和存储。
为什么要使用EventHubs?
从EventHubs中及时获取、探索数据 相当简单,EventHubs 提供了低延迟的分布式流式处理平台(低延迟、无缝集成Azure内外的数据和分析服务)
EventHubs代表“event管道”的前门,一般被定义为事件摄取器:在事件发布者和事件消费者之间起解耦作用的组件或服务。

特性
- Paas 上全托管
- 支持实时和批处理
- 可缩放
- 丰富的生态
本文主要记录两个重要知识点:Partition, EventHubs Capture
Azure上创建EventHubs命名空间之后,新增EventHubs时要关注以上配置。

Partition Consumer Model
为支持摄取、存储、 实时处理流式数据,EventHub是建立在分区消费模型之上,提高了可用性和并发度;
① 水平扩展事件处理能力,提供了Queue和topic等流式结构不具备的特性(某分区节点下线,其余分区可继续提供 发送和接受能力)
② 可让多进程并发处理流式数据, 并可自行控制处理速度。
③ 支持批量发送事件, 单批次发送不超过1M事件

【是否启用分区】取决于开发者在【数据一致性和可用性之间的平衡思考】
If high availability is most important, do not specify a partition key; in that case events are sent to partitions using the round-robin model described previously.
In many cases, using a partition key is a good choice if event ordering is important. 著名的CAP定理。
EventHubs Capture
Azure EventHubs Capture 是把数据加载到Azure中最快捷的方式,可在使用 EventHubs Capture时 指定 Azure Blob storage account 或者 Azure Data Lake Store account存储数据。
捕获时机: 最上面Capture配置图, 捕获时机支持2种策略:time window 和 size window, 每个分区满足任一策略则触发该分区的捕获动作。
// 文件路径如下,包含命名空间、捕获分区,每个文件以秒命名
{Namespace}/{EventHub}/{PartitionId}/{Year}/{Month}/{Day}/{Hour}/{Minute}/{Second}
Azure EventHubs Capture 开始工作之后,在没有数据的情况下默认会写入空文件,这给后端消费程序提供了稳定的流量预期, 当然也可在创建EventHubs 配置勾选【Do not emit empty files when no events occur during the Capture time window<】
捕获文件格式: avro 是一种简洁快速,携带丰富数据结构的二进制格式

捕获的文件可使用Azure Storage Explorer查看, 注意这里要使用账号登陆Azure中国区, 后面就是 Azure Storage Account的事宜。
Azure EventHub快速入门和使用心得的更多相关文章
- [Asp.net 开发系列之SignalR篇]专题一:Asp.net SignalR快速入门
一.前言 之前半年时间感觉自己有点浮躁,导致停顿了半年多的时间没有更新博客,今天重新开始记录博文,希望自己可以找回初心,继续沉淀.由于最近做的项目中用到SignalR技术,所以打算总结下Asp.net ...
- [你必须知道的NOSQL系列]专题二:Redis快速入门
一.前言 在前一篇博文介绍了MongoDB基本操作,本来打算这篇博文继续介绍MongoDB的相关内容的,例如索引,主从备份等内容的,但是发现这些内容都可以通过官方文档都可以看到,并且都非常详细,所以这 ...
- Html与CSS快速入门02-HTML基础应用
这部分是html细节知识的学习. 快速入门系列--HTML-01简介 快速入门系列--HTML-02基础元素 快速入门系列--HTML-03高级元素和布局 快速入门系列--HTML-04进阶概念 示例 ...
- WPF快速入门系列(1)——WPF布局概览
一.引言 关于WPF早在一年前就已经看过<深入浅出WPF>这本书,当时看完之后由于没有做笔记,以至于我现在又重新捡起来并记录下学习的过程,本系列将是一个WPF快速入门系列,主要介绍WPF中 ...
- [Solution] ASP.NET Identity(1) 快速入门
本节将介绍: ASP.NET Identity简介 快速入门 扩展 ASP.NET Identity简介 身份管理在ASP.NET中存在很长世间了,ASP.NET 开发团队已经学会了很多从客户的反馈. ...
- 使用ASP.NET 构建 Web 应用程序快速入门-8小时的免费培训视频
- Scott Hanselman的中文博客[转载] [原文发表地址] Building Web Apps with ASP.NET Jump Start - 8 Hours of FREE Trai ...
- Hadoop生态圈-大数据生态体系快速入门篇
Hadoop生态圈-大数据生态体系快速入门篇 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.大数据概念 1>.什么是大数据 大数据(big data):是指无法在一定时间 ...
- 大数据技术之_09_Flume学习_Flume概述+Flume快速入门+Flume企业开发案例+Flume监控之Ganglia+Flume高级之自定义MySQLSource+Flume企业真实面试题(重点)
第1章 Flume概述1.1 Flume定义1.2 Flume组成架构1.2.1 Agent1.2.2 Source1.2.3 Channel1.2.4 Sink1.2.5 Event1.3 Flum ...
- python快速入门——进入数据挖掘你该有的基础知识
这篇文章是用来总结python中重要的语法,通过这些了解你可以快速了解一段python代码的含义 Python 的基础语法来带你快速入门 Python 语言.如果你想对 Python 有全面的了解请关 ...
随机推荐
- 基于RMAN搭建DataGuard,使用Broker管理DataGuard
一.环境准备 1.数据库软件准备 (1).在主节点,安装单机数据库软件并创建数据库. (2).在备库, 安装单机数据库软件, 但是不创建数据库. 2.操作系统配置 在/etc/hosts下面配置主机名 ...
- SpringBoot的注解注入功能移植到.Net平台(开源)
*:first-child { margin-top: 0 !important; } .markdown-body>*:last-child { margin-bottom: 0 !impor ...
- [LeetCode] 由 “打印机任务队列" 所想
一.这是个基础问题 Ref: Python之队列模拟算法(打印机问题)[首先研究这个问题作为开始] 任务队列 定义一个任务队列,来管理任务,而无需关心队列的”任务类型". # 自定义队列类 ...
- ActiveMQ基本使用
消息队列,目前在实际的开发项目中应用十分广泛.本文主要介绍入门级的ActiveMQ的基本使用以及相关的概念. 一.JMS 全称 Java Message Service,即Java消息服务.JMS是一 ...
- 第八届蓝桥杯java b组第二题
标题:纸牌三角形 A,2,3,4,5,6,7,8,9 共9张纸牌排成一个正三角形(A按1计算).要求每个边的和相等. 下图就是一种排法(如有对齐问题,参看p1.png). A ...
- abp(net core)+easyui+efcore实现仓储管理系统——EasyUI之货物管理二 (二十)
abp(net core)+easyui+efcore实现仓储管理系统目录 abp(net core)+easyui+efcore实现仓储管理系统——ABP总体介绍(一) abp(net core)+ ...
- thymeleaf 将后端绑定数据直接传递js变量
根据自我需求,thymeleaf可以直接将后端数据传递给js中进行使用,例如: 1.后端接口数据: @Controllerpublic class TestController { @RequestM ...
- JQuery 数组按指定长度分组
JQuery方法 // 将data每3个一组进行分组 var data = ['法国','澳大利亚','智利','新西兰','西班牙','加拿大','阿根廷','美国','0','国产','波多黎各' ...
- Java基础学习笔记(二) - 面向对象基础
面向对象 一.面向对象概述 面向对象思想就是在计算机程序设计过程中,参照现实事物,将事物的属性特征.行为特征抽象出来,描述成计算机时间的设计思想.面向对象思想区别于面向过程思想,强调的是通过调用对象的 ...
- 运算符 字符串 for循环
1. 运算符 1.1赋值运算符 = += -= *= /= //= %= **= 1.2比较运算符 < > = <= == != 1.3成员运算符 in not in 1.4逻辑运算 ...