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的事宜。

最新文章

  1. java程序转换excel中科学记数法的数据为date类型
  2. java.util.concurrent.RejectedExecutionException: Task java.util.concurrent.FutureTask@1f303192 rejected from java.util.concurrent.ThreadPoolExecutor@11f7cc04[Terminated, pool size = 0, active threads
  3. Android中事件传递机制的总结
  4. IOS学习之路七(使用 Operation 异步运行任务)
  5. Arduino从基础到实践第三章练习题
  6. QT学习篇:入门(1)
  7. SwiftyUserDefaults-封装系统本地化的框架
  8. 基于FPGA的均值滤波算法实现
  9. Maple trees(最小覆盖圆)
  10. HIVE和HADOOP的一些东西
  11. 浅谈linux静态库、动态库。
  12. weak_ptr解决shared_ptr环状引用所引起的内存泄漏[转]
  13. Fashion-MNIST:A MNIST-like fashion product database. Benchmark
  14. arrow function and bind
  15. OpenCV-Python教程8-图像混合
  16. Hdu2040 亲和数
  17. Java基础-集合(12)
  18. RDMBorderedButton
  19. 让boost.variant支持lambda表达式访问
  20. mysql的搭建

热门文章

  1. 安装vue-cli 3.
  2. spring5 源码深度解析----- AOP的使用及AOP自定义标签
  3. [技术栈]CRC校验原理及C#代码实现CRC16、CRC32计算FCS校验码
  4. 4款黑科技级别的宝藏APP,能够轻松满足你的多种需求,请低调收藏
  5. java-整型数值 用 16进制转换、2进制转换-Integer.toHexString
  6. freemarker常用属性
  7. 【ADO.NET基础】加密方法公共类
  8. Rxjs 操作符
  9. 深入Dapper.NET源码 (文长)
  10. Go语言入门教程(十)之函数