摘要:
1. 消息的生产过程 消息生产过程,经历如下过程: 1.向NameServer发出获取消息Topic的路由信息的请求 2.nameServer返回该Topic的路由表以及Broker列表 3.Producer根据代码中指定的Queue选择策略,从Queue中选择一个队列,用于存储消息 4.Produ 阅读全文
摘要:
Flink 有非常灵活的分层API设计,其中的核心层就是DataSet/DataStream API。新版本中DataSetAPI 被弃用,使用DataStream 即可实现流批一体。 DataStream(数据流)本身是Flink 中一个用来表示集合的类,我们编写的Flink 代码其实就是基于这种 阅读全文
摘要:
分区是要将数据进行重新分布,传递到不同的流分区。keyBy 操作实际是一种按照hashCode 值进行重新分区的操作,这也是一种逻辑分区(按照散列值随机分开)。简单的说,分区就是slot 任务,重分区就是分配任务到不同的slot。 系统默认也有分区,比如:我们编写的程序可能对多个处理任务设置了不同的 阅读全文
摘要:
1. 系统架构 Flink 运行时的两大架构。JobManager作业管理器和TaskManager任务管理器。 JobManager:真正的管理者(master),负责管理和调度。在不考虑高可用的情况下只有一个。 TaskManager:可以理解为工作中(worker, slave)。可以有一个或 阅读全文
摘要:
简单研究下Flink的任务部署。我们在IDEA 开发工具中用代码跑Flink 的时候,实际是会虚拟出一个小型的Flink 集群,当执行execute 的时候是将上面的代码作为一个job 提交到Flink 的JobManager中。 参考: https://nightlies.apache.org/f 阅读全文
摘要:
以一个简单的入门例子,统计每个单词出现的次数开始。 1. pom配置 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3. 阅读全文
摘要:
参考官网: https://flink.apache.org/ 截止目前:20220606, flink 最新的版本1.15。本次学习使用Flink1.13 + jdk8 进行学习。 1. 简单介绍 Flink 是Apache旗下的一个框架和分布式处理引擎。用于对无界和有界数据流进行有状态计算,核心 阅读全文
摘要:
简单了解下其用法。 1. JDK9的Reactive Stream 用法 响应式流,和发布订阅者模式一样,只不过订阅者可以自己控制生产者发送数据的速度。 1. 背压 背压是一种常用策略,使得发布者拥有无限制的缓冲区存储元素,用于确保发布者发布元素太快时,不会去压制订阅者。举个例子就是消费者需要水的时 阅读全文
摘要:
在阅读Spring、SpringMVC 源码的时候经常看到这几个类,简单总结下这几个工具类的核心使用方法。 1. ResolvableType 直译过来就是可解析类型。 实际是对java自带的Type 的一层包装,用于解析各种参数以及泛型、泛型实际类型等。Type 主要继承关系如下: 主要类如下: 阅读全文
摘要:
简单研究下接收集合参的使用以及接收原理。 1. 简单使用 1. 前置 原始类型HttpServletRequest 获取String 类型的数据, 可以获取多个参数的,也可以获取数组类型的 1. 接口 @GetMapping("/test3") public JSONResultUtil<Strin 阅读全文