自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(23)
  • 收藏
  • 关注

原创 3.1 DataStream API 编程模型

Flink DataStream API采用流式处理模型,由Source、Transformation和Sink三部分组成,形成完整的数据处理流水线。Source负责数据输入,Transformation进行实时处理转换(如过滤、映射、聚合等),Sink完成结果输出。其核心特点是声明式编程、惰性执行和统一API设计,支持低延迟的持续数据处理。相比批处理的有界数据一次性处理,DataStream API更适用于无界数据的实时分析场景,让开发者只需关注业务逻辑而无需操心底层实现。

2025-08-29 17:42:28 278

原创 2.4 Flink运行时架构:Task、SubTask、ExecutionGraph的关系

Flink运行时架构采用分层设计:ExecutionGraph作为执行计划蓝图,Task作为算子链合并后的执行单元,SubTask是Task的具体并行实例。它们共同协作实现高效数据处理:ExecutionGraph定义整体流程和并行度,Task通过算子链优化减少开销,SubTask则负责实际数据分区处理。这种架构设计支持灵活的并行度调整和资源分配,开发时需注意合理设置并行度、优化算子链以及监控SubTask负载均衡,才能充分发挥Flink的高吞吐低延迟优势。

2025-08-25 11:40:47 730

原创 做管理绝不是提需求

摘要: 真正的管理者不是简单的需求传声筒,而是系统的构建者和优化者。其核心职责包括五大要素:1)项目基础建设,搭建高效工具链;2)成员能力培养,提升团队技能组合;3)资源合理配置,体现战略优先级;4)深入理解业务,确保技术创造价值;5)制定技术路线,平衡创新与稳定。这五要素相互关联,推动管理者从“执行者”升级为“规划者”,通过系统化思维赋能团队,实现业务与技术协同发展。(150字)

2025-08-21 13:25:26 837

原创 2.3 Flink的核心概念解析

Flink数据处理流程解析 Flink的核心概念可以类比为果汁工厂的生产线: 数据流(Stream):如同源源不断的水果原料,具有无界、有序、不可变的特性 转换(Transformation):相当于加工步骤,包括map(清洗)、filter(过滤)等操作,形成处理蓝图 Source/Sink:分别对应工厂的原料入口(如Kafka)和成品出口(如数据库) 算子链优化:将多个一对一操作合并执行,减少数据传输开销 并行处理:通过并行度(逻辑线程数)和任务槽(物理资源)实现高效计算 Flink支持三种时间语义:

2025-08-20 15:07:01 598

原创 2.2 Flink 程序与数据流图 (Dataflow Graph)

上一节,我们认识了 Flink 集群中的三大角色:Client、JobManager 和 TaskManager。我们知道了 Client 会把任务“蓝图”交给 JobManager 去执行。那么,这份“蓝图”究竟是什么?它和我们编写的 Flink 代码有什么关系?本节,我们将揭开这份秘密蓝图——数据流图(Dataflow Graph)的真面目,看看 Flink 是如何将我们的代码翻译成可执行的分布式计划的。

2025-08-18 17:06:36 823

原创 2.1 Flink 系统架构 (Client, JobManager, TaskManager)

在本章中,我们将深入 Flink 的心脏,探索其强大的分布式系统架构。你是否曾好奇,我们提交的代码是如何在 Flink 集群中被执行的?这背后其实隐藏着一场分工明确、配合默契的“权力的游戏”。本节,我们将用最通俗易懂的比喻,为你揭开 Client、JobManager 和 TaskManager 这三大核心组件的神秘面纱。

2025-08-18 11:36:47 861

原创 1.5 快速上手:本地环境搭建与第一个 Flink 程序 (WordCount)

本文介绍了如何在本地搭建Flink开发环境并运行第一个WordCount流处理程序。首先简要说明了环境搭建所需的JDK、Maven和IDE三大组件。然后详细展示了通过Maven创建Flink项目的过程,并提供了一个完整的WordCount实现代码,包括数据源读取、单词拆分、分组统计和结果输出等关键步骤。最后解释了程序运行时的输出格式,帮助读者理解流处理的特点。这个示例为后续学习更复杂的Flink应用奠定了基础。

2025-08-14 18:17:10 760

原创 1.4 Flink 1.20 新特性概览

Flink 1.20版本带来三大核心改进:存储感知调度通过就近计算提升批处理效率;SQL支持自定义算子,实现高级功能与SQL的融合;非阻塞式检查点大幅降低备份对实时处理的影响。此外还增强Python API和Paimon连接器集成,为构建实时湖仓提供更好支持。这些改进使Flink在性能和易用性上达到新高度。

2025-08-14 10:59:12 926

原创 1.3 Flink 的应用场景 (实时数仓, ETL, CEP, 实时风控等, 等等等等。。。)

Flink:实时数据处理的智能水处理系统 Flink 如同一个强大的智能水处理系统,能够实时处理流动的数据流。它不仅能传输数据,还能在数据流动过程中进行实时净化、混合、分析和即时响应。Flink 在以下场景表现突出: 实时数仓:相比传统离线数仓的批量处理模式,Flink 构建的实时数仓就像传送带,数据产生后立即处理,实现秒级延迟的分析能力,支持实时决策。 复杂事件处理(CEP):Flink CEP 能识别特定事件序列模式,适用于金融反欺诈(如异常登录检测)、精准营销(用户行为分析)和物联网异常监控等场景。

2025-08-13 13:14:15 1062

原创 1.2 Flink 的核心特性

高可用⭐/ \高吞吐低延迟⭐ ⭐ 状态管理| FLINK |流批一体⭐ ⭐精确一次\ /⭐ 事件驱动每个特性都不是孤立存在的,它们相互配合,共同构成了 Flink 强大的数据处理能力。这些特性的完美结合,让 Flink 成为了现代实时数据处理的首选框架。

2025-08-12 19:01:28 434

原创 1.1 什么是 Flink?为什么选择 Flink?

Apache Flink是一个分布式流处理引擎,其核心特点是实时处理无界/有界数据流,将批处理视为流处理的特殊情况。相比Spark Streaming的微批处理(需等待批次)和Storm的单一流处理(状态管理复杂),Flink提供毫秒级延迟、流批统一、自动状态管理和精确一次处理保证。其独特优势包括:事件时间处理(按实际发生时间处理延迟数据)、智能状态管理(容错恢复)以及实时应用能力(如风控和推荐系统)。Flink凭借高性能、智能化及云原生支持,成为实时数据处理领域的首选框架,适用于需要快速响应和精准分析的场

2025-08-12 11:56:56 1158

原创 深入解析Java枚举(Enum)

本文深入解析Java枚举(Enum)的核心原理与高级用法。枚举是一种特殊类,继承自java.lang.Enum,其构造函数私有化确保实例唯一性。编译器会为枚举自动生成values()和valueOf()等方法。文章详细介绍了枚举常用的name()、ordinal()等方法,并警告ordinal()的使用风险。高级用法包括:为枚举添加自定义属性和方法(如错误码枚举)、实现接口实现多态行为、在switch语句中的使用等。枚举不仅能表示固定常量集合,还能通过面向对象特性增强代码的类型安全性和可维护性,是替代传统p

2025-08-08 15:27:24 913

原创 深入理解Apache Flink:任务启动流程全解析

Flink任务启动流程全解析:从代码到分布式执行 Flink任务启动分为客户端、JobManager和TaskManager三个阶段。客户端将代码转换为优化后的JobGraph并提交;JobManager将其转换为并行化的ExecutionGraph,向ResourceManager申请Slot资源并部署任务;TaskManager接收任务后创建线程执行,持续汇报状态。理解这一流程有助于性能调优、故障排查和资源规划,掌握Flink内部调度机制的关键。

2025-08-07 15:50:04 1037

原创 数据库设计三范式:构建高效稳定的数据结构基础

数据库三范式是构建高效、稳定数据库的核心理论基础,它通过规范化设计解决数据冗余和异常问题。第一范式(1NF)要求字段值的原子性,确保每个单元格只包含一个值;第二范式(2NF)消除部分依赖,要求非主键字段完全依赖于主键;第三范式(3NF)消除传递依赖,要求非主键字段不依赖于其他非主键字段。通过遵循这些范式,我们可以将复杂数据结构分解为多个关联表,减少冗余、避免更新/删除/插入异常。然而,范式化并非绝对法则,在实际应用中,需要根据业务需求和性能考量,在范式化和反范式化之间寻找平衡点,构建既符合理论又满足实际

2025-08-04 17:55:06 792

原创 线程安全:Java并发编程必备知识

线程安全是多线程环境下代码正确处理共享资源的能力,确保程序行为可预测。主要由四个因素引发问题:竞态条件、原子性缺失、可见性问题和重排序问题。解决线程安全问题的方案多样:互斥锁提供简单直观的保护但性能开销大;同步块由JVM保证锁释放;原子变量利用CAS操作实现无锁安全;读写锁允许多线程同时读取;ThreadLocal避免共享;不可变对象天生线程安全;并发集合专为并发访问优化;消息传递模型避免共享状态。选择合适的线程安全策略需根据具体场景、性能需求和系统复杂度,没有放之四海而皆准的解决方案。

2025-08-04 15:40:27 596

原创 Java final关键字全解析:不变的引用,可变的对象

在Java中,final 关键字用于声明常量或不可变的引用。final 关键字确保引用本身不被重新赋值。但是,引用所指向的对象(如果是可变对象)可以被修改。final 关键字限制的是引用的变更,但不限制对象内部状态的变更。

2025-08-01 18:04:33 935

原创 正向代理 vs 反向代理(Nginx负载均衡)

正向代理是客户端(如学生)和目标服务器(如图书馆)之间的中间人,负责代理客户端的请求,隐藏客户端的身份。客户端则通过正向代理去访问目标服务器,目标服务器不知道真实的客户端是谁,只知道代理的存在。

2025-02-20 18:20:32 423

原创 Modbus TCP协议解析示例

协议标识符(Protocol Identifier),同样为0,符合Modbus TCP/IP协议。:功能码(Function Code),和请求中的功能码相同,表示对读取模拟量输入寄存器操作的响应。:单元标识符(Unit Identifier),与请求中的单元ID一致,表示来自同一设备或从站。:长度字段(Length field),指示后续帧的长度,包括单元标识符、功能码和数据字段。:长度字段(Length field),指示后续帧的长度,这里长度为15字节。下面是发送数据和接收数据的解析。

2024-03-06 13:18:02 711 1

原创 常用国内镜像maven仓库配置

【代码】常用国内镜像maven仓库配置。

2022-12-19 17:32:14 3213 1

原创 Excel时间戳格式化

Excel时间戳格式化

2022-07-21 11:24:56 786

原创 maven settings.xml文件常用必备仓库配置

近日在使用spring工具包的2.0.0.RC2版本时,发现有些jar始终不能正常引入。尝试了更换maven settings.xml中的镜像配置(mirrors),加入了spring、阿里等常用镜像,还是不行。最后从网络文章中找到了常用的几个仓库。于是,放弃镜像,直接使用仓库地址,终于成功导入。记录仓库地址如下:阿里仓库 (此为老版地址。目前已有新的阿里仓库地址,可参考此连接配置:https://maven.aliyun.com/mvn/guidehttp://maven.aliyun.com/nex

2021-02-22 14:30:55 1427 1

原创 Linux java应用导致 cpu占用过高问题排查

top命令,查看cup占用较高的进程信息top发现PID:25083,cup占用最高528.1%查看该进程下的线程情况top -Hp 25083发现这几个线程cup占用高。。。挑一个看看这个线程内部的问题使用下面的命令,将线程的TID转换为16进程,以便jstack命令使用。printf "%x\n" 25087使用jctask查看该线程的堆栈信息命令格式:jstack pid |grep tid(16进制)jstack 25083 |grep 61ff -A50

2021-02-09 17:16:21 176

原创 Linux常用命令

本文整理了Linux系统常用的命令行操作,分为系统资源监控、文件和目录操作、进程管理、网络管理四大类。系统监控部分包括磁盘/内存查看(df/free)、进程监控(top/htop)等命令;文件操作涵盖目录管理、文件查看/搜索等常用功能;进程管理介绍了进程查看(ps)、终止(kill)等方法;网络管理包含IP/端口查看、连通性测试等工具。每个命令都标注了常用参数和注意事项,如危险操作提醒、推荐用法等,适合作为Linux系统管理的快速参考手册。

2020-08-30 23:26:21 119

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除