![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
flink
跟心爱的人浪迹天涯
Java小学生
展开
-
Flink通过滚动窗口达到滑动窗口目的 节省内存和CPU资源(背压)
Flink在实时处理滑动窗口数据时, 由于窗口时间长, 滑动较为频繁, 导致算子计算压力过大, 下游算子计算速度抵不上上游数据产生速度, 会出现背压现象.需求: 统计6小时用户设备共同用户数, 每10min统计一次公共类@Data@AllArgsConstructor// flatMap转换对象private static class UserDevice { private final String userId; private final String deviceId;原创 2021-10-15 15:27:27 · 945 阅读 · 0 评论 -
Flink通过本地文件持久化算子状态并重启恢复数据
Flink在运行过程中, 难免会因为一些异常导致服务终止, 因为Flink的优势在于处理实时数据, 所以重启的话, 可能会导致部分数据指标不正确, 会丢失部分数据, 比如统计最近一小时数据, 运行半小时终止, 再次重启, 也只能重新开启统计. 但Flink可以通过state来解决这个问题, 将状态保存在内存, 文件系统或者db中, 持久化后, 即可实现故障后重启继续计算.以下示例是通过kafka作为数据源, 统计各message出现的次数, 利用keyBy, process和窗口富函数实现state初始化原创 2021-10-15 14:56:15 · 999 阅读 · 0 评论 -
Flink从kafka消费消息并Sink消息到kafka
场景flink上游一般使用kafka, 因为可以充分利用flink的checkPoint保存状态, 实现高可用. 而由于Sink输出端数据量可能也比较大, 所以部分场景还是要Sink到kafka, 降低数据库或者其他组件压力代码import org.apache.flink.api.common.functions.FlatMapFunction;import org.apache.flink.api.common.serialization.SimpleStringSchema;import o原创 2021-07-25 19:29:37 · 1279 阅读 · 4 评论 -
Flink消费Kafka并统计报警
模拟场景服务端异常时, 向kafka推送一条ALERT消息, flink解析消息, 如果连续10s钟有3次alert消息, 则发出报警消息实现方法在首次获取到alert消息后, 注册一个10s后的timer事件, 后续alert消息, 校验当前时间是否在timer有效期内, 如果不在则重置timer, 待timer到期时, 校验个数是否满足, 如果满足发出报警代码import org.apache.flink.api.common.functions.FlatMapFunction;import原创 2021-07-25 19:23:21 · 812 阅读 · 0 评论 -
Flink使用自定义Source Sink reduce aggregate统计最小值及平均值
模拟设备上报温度, 获取最低温度pom.xml<dependencies> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-java</artifactId> <version>1.12.4</version> </dependency> &原创 2021-07-20 16:40:57 · 851 阅读 · 0 评论 -
Windows下安装flink服务
下载点击链接到下载页 https://flink.apache.org/zh/downloads.html选择对应文件下载后解压启动下载包中没有启动bat文件, 所以需要创建对应文件flink.bat 用于执行task::###############################################################################:: Licensed to the Apache Software Foundation (A原创 2021-07-08 17:27:39 · 1880 阅读 · 3 评论