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 有全面的了解请关 ...
随机推荐
- [VB.NET Tips]ParamArray参数数组
ParamArray参数数组,可以理解为传递给方法的多余的参数全都存放在这个数组中. ParamArray只能是ByVal按值传递,不能是可选参数,而且只能做为方法定义的最后一个参数. 非常类似于Py ...
- java工具方法
仅记录所遇到并使用的工具方法. 1.md5加密 /** * 对传入的字符串数据进行MD5加密 * @param source 字符串数据 * @param code 字符编码 * @return 加密 ...
- python最基本的数据掌握
python初学者可能会对list数据类型和int或者是字符串数据类型比较迷茫 list是引用,是指向的一个内存地址, 变量不是引用的 啥也不说上解释: a = 1 b = a a = 2 prin ...
- 第六届蓝桥杯java b组第五题
九数组分数 1,2,3…9 这九个数字组成一个分数,其值恰好为1/3,如何组法? 下面的程序实现了该功能,请填写划线部分缺失的代码. public class A { public static vo ...
- 品Spring:bean工厂后处理器的调用规则
上一篇文章介绍了对@Configuration类的处理逻辑,这些逻辑都写在ConfigurationClassPostProcessor类中. 这个类不仅是一个“bean工厂后处理器”,还是一个“be ...
- ZK 网络故障应对法
网络故障可以说是分布式系统天生的宿敌.如果永远不发生网络故障,我们实际上可以设计出高可用强一致的分布式系统.可惜的是不发生网络故障的分布式环境还不存在,ZK 使用过程中也需要小心的应付网络故障. 让我 ...
- MongoDB4.0支持事务管理
背景 最后我们看一下MongoDB的事务管理,本来是没这一篇的,因为网上大部分资料太老,都为MongoDB之前的版本,的确在MongoDB 4.0版本之前是没有事务管理,但是今天年初MongoDB ...
- java基础之读取文件方法大全
1.按字节读取文件内容2.按字符读取文件内容3.按行读取文件内容 4.随机读取文件内容 public class ReadFromFile { /** * 以字节为单位读取文件,常用于读二进制文件,如 ...
- 一步一步带你在VS 2017中配置OpenGL
在VS2017环境中配置OpenGL,我们分三步:配置GLFW.配置GLAD.导出项目模板. 配置GLFW 1.首先下载GLFW,点击这里,进入Github下载. 或者 点击这里从百度云下载,提取码为 ...
- ConCurrentHashMap(基于jdk1.8源码)(转载来源https://segmentfault.com/a/1190000014380257)
ConCurrentHashMap的底层是:散列表+红黑树,与HashMap是一样的.(不允许key和value是null值) JDK1.8底层是散列表+红黑树 ConCurrentHashMap支持 ...