自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(295)
  • 资源 (5)
  • 问答 (2)
  • 收藏
  • 关注

原创 Flink 非确定有限自动机NFA

Flink 是一个用于状态化计算的分布式流处理框架,而非确定有限自动机(NFA, Non-deterministic Finite Automaton)是一种在计算机科学中广泛使用的抽象计算模型,常用于正则表达式匹配、模式识别等领域。Apache Flink 提供了对 NFA 的支持,特别是在复杂事件处理(CEP, Complex Event Processing)场景下。以下是与。

2025-05-19 17:50:09 493

原创 Flink 作业提交流程

阶段描述1. 客户端构建将用户代码转换为 StreamGraph → JobGraph2. 提交作业Client 提交到 JobManager3. 资源调度ResourceManager 分配 TaskManager Slot4. 任务执行TaskManager 启动 Subtask 并执行逻辑5. 状态管理Checkpointing 保障状态一致性6. 故障恢复重启失败任务并从 Checkpoint 恢复。

2025-05-18 22:31:40 846

原创 Flink Table & SQL

- 定义带有事件时间的表ts BIGINT,WATERMARK FOR ts AS ts - 1000 -- 定义水印-- 使用滚动窗口进行统计SELECTuser,技术点描述Table API基于 Java/Scala 的函数式 APIFlink SQL支持 ANSI SQL,易于上手管理表和 SQL 的核心类Connectors支持 Kafka、Hive、JDBC、File、Print 等支持事件时间、处理时间Windowing支持滚动、滑动、会话窗口。

2025-05-18 20:47:22 1039

原创 什么是 Flink Pattern

Pattern是对一系列事件行为的描述规则,用来匹配流中符合某种顺序、条件或时间范围的事件组合。你可以用Pattern用户连续登录失败某个设备短时间内多次报警用户点击 A → B → C 的行为路径异常交易行为等功能说明行为识别如用户操作路径、漏斗转化率异常检测如频繁请求、登录失败、支付异常业务规则匹配如风控策略、营销活动触发条件流式规则引擎实时判断是否符合预设逻辑与 Flink 状态结合支持高并发、低延迟的状态化检测。

2025-05-18 19:54:28 503

原创 Flink CEP是什么?

CEP 是一种从连续的数据流中识别出符合预设模式(Pattern)的事件组合的技术。用户行为分析(如“登录 → 加入购物车 → 放弃支付”)异常检测(如“连续失败请求超过3次”)风控规则匹配(如“短时间内多次转账”)特性描述名称Flink CEP功能流式数据中识别事件模式输入无界流输出匹配到的事件组合适用场景用户行为分析、风控、安全审计等依赖库flink-cep或。

2025-05-18 19:47:30 458

原创 Flink 并行度的设置

层级用途是否推荐使用控制单个算子并行度✅✅✅ 强烈推荐用于关键路径优化设置默认并行度✅✅ 推荐作为基础配置动态设置并行度✅ 适合多环境部署全局兜底配置⚠️ 推荐配合其他方式使用。

2025-05-18 19:27:55 909

原创 Flink 的状态机制

场景推荐状态类型存储方式无需按 key 分组的状态按 key 处理的数据流全局配置/规则共享Memory超大状态(GB级)RocksDB状态需要定期清理。

2025-05-18 18:57:38 802

原创 Flink 的水印机制

问题解决方法乱序数据导致窗口计算不完整使用水印机制,设定最大乱序时间窗口迟迟不触发检查水印是否推进、调整乱序容忍度迟到数据丢失使用处理时间戳未提取使用提取事件时间。

2025-05-18 18:34:20 449

原创 Flink的时间问题

场景推荐时间类型是否推荐实时监控(容忍误差)✅精确统计、结果一致性要求高Event Time✅✅✅数据源无时间戳⚠️ 不推荐长期使用乱序数据处理✅✅✅数据延迟容忍✅✅✅。

2025-05-18 16:53:38 651

原创 Flink 的窗口机制

每隔固定的时间周期开启一个新的窗口。窗口之间不重叠。每收集固定数量的元素后触发一次窗口计算。不依赖时间,只依赖元素个数。窗口每隔一定时间“滑动”一次,窗口长度固定。窗口之间有重叠。每隔固定数量的元素滑动一次窗口,窗口长度也以元素个数为单位。窗口之间可以部分重叠。根据活动间隙(gap)来划分窗口。如果两个元素之间的时间差超过设定的 gap,则属于不同的窗口。窗口类型划分依据是否重叠触发条件示例滚动时间窗口时间否时间到达滚动计数窗口元素个数否数量达到。

2025-05-18 16:30:47 778

原创 Flink 的任务槽和槽共享

Task Slot是 TaskManager 提供的资源单位,代表一个独立的线程或资源隔离单元。每个Slot可以运行多个 SubTask(来自不同 JobVertex),但这些 SubTask 必须属于同一个 Job,并且可以共享 Slot。槽共享(Slot Sharing)是指多个 Operator 或 SubTask 可以运行在同一个 Slot 中。这是 Flink 优化资源利用的重要机制,避免为每个 Operator 单独分配 Slot。概念描述是否默认启用Task Slot。

2025-05-17 15:50:19 695

原创 Flink 数据传输机制

组件作用影响因素缓存传输数据性能、吞吐、背压Serializer序列化/反序列化数据CPU、网络带宽决定数据流向并行度、数据分布流量控制机制下游处理速度Shuffle多并行任务间数据重分布网络 I/O、CPU 开销。

2025-05-17 15:39:21 1023

原创 Kafka是如何实现幂等性的??

Kafka通过幂等生产者机制确保每条消息在Partition中只被写入一次,即使在生产者重试发送的情况下也不会导致重复消息。启用幂等生产者需要设置。

2025-03-21 14:16:30 745

原创 如何解决Kafka Rebalance引起的重复消费

在Kafka中,Rebalance(再平衡)是消费者组(Consumer Group)动态调整分区分配的过程。当消费者组中的成员发生变化(例如消费者加入或退出)、订阅的Topic分区数量变化、或者消费者长时间未发送心跳时,都会触发Rebalance。虽然Rebalance有助于负载均衡和容错,但它也可能导致重复消费的问题。以下是一些解决因Rebalance引起的重复消费问题的方法:默认情况下,Kafka消费者的 配置为 ,即自动提交Offset。这可能导致消息被处理前就提交了Offset,从而在Rebal

2025-03-19 16:08:27 1563

原创 Apache Avro 的向前和向后兼容

向后兼容是指新版本的 Schema 可以读取旧版本的数据。即使数据是按照旧版 Schema 生成的,新版 Schema 也能正确解析这些数据。向前兼容是指旧版本的 Schema 可以读取新版本的数据。即使数据是按照新版 Schema 生成的,旧版 Schema 也能正确解析这些数据。Apache Avro 的向前和向后兼容性使得模式演化更加灵活,能够适应业务需求的变化,同时保证系统的稳定性和数据的一致性。通过合理设计 Schema,开发者可以轻松实现模式的扩展和修改,而无需担心数据解析问题。

2025-03-18 13:34:58 374

原创 什么是Apache Avro?

是一个开源的数据序列化框架,主要用于高效的数据交换和存储。它由 Apache Hadoop 项目开发,广泛应用于大数据生态系统中(如 Hadoop、Kafka 等)。Avro 提供了一种紧凑、快速的二进制数据格式,同时支持丰富的数据结构和模式演化。Apache Avro 是一种功能强大的数据序列化工具,适用于大数据场景下的高效数据存储和传输。其紧凑的二进制格式、模式驱动的设计以及灵活的模式演化能力,使其成为现代分布式系统中的重要组件。

2025-03-18 13:33:51 1129

原创 BAT脚本批量替换文件名中特殊字符

【代码】BAT脚本批量替换文件名中特殊字符。

2024-03-31 17:10:09 847

原创 Vue基本用法

【代码】Vue基本用法。

2024-03-16 21:16:45 483

原创 JS变量先使用后定义

JavaScript 中的变量提升是指变量可以在声明之前使用。这意味着你可以在代码的任何地方声明变量,而无需担心它在声明之前的代码无法访问它。在JavaScript中,如果你尝试在使用一个变量之前没有定义它,你会遇到一个错误,因为JavaScript 遵循作用域的原则,变量只能在它的作用域内使用。在上面的例子中,虽然变量是在使用之后定义的,但由于变量提升,它在使用之前已经被声明了。是在函数内部定义和使用的,所以它不会影响到函数外部的代码。语句块内部定义和使用的,所以它在块外部是不可见的。

2024-03-14 18:14:51 475

原创 vue 修改props

来触发自定义事件并传递数据。如果要修改Props的值,需要先将其作为本地变量进行存储,然后再使用。这样就能够在子组件中修改Props的值了。方法,最终更新父组件的Prop值。事件,从而将新的值传递给父组件的。在Vue中,我们可以通过。

2024-03-14 16:31:39 1627

原创 Java代码实现B树和B+树

实现插入、查找和删除功能时,您需要遵循B树和B+树的规则并考虑它们的特点。具体而言,对于B树,您需要在插入和删除期间维护树的平衡状态,并注意分裂和合并节点的条件。对于B+树,您需要调整链接,以确保所有叶子节点都位于同一级别,同时将中间节点分隔开。key数组用于存储节点中的键,child数组用于存储指向该节点子节点的指针。B+树的节点类类似于B树节点类,但它们只包含键值和其对应的指针,不包含子节点。此外,B+树也需要使用链表来存储叶子节点,并使用叶子节点之间的链接以支持范围查询。

2023-05-12 15:23:07 627

原创 Java代码实现SOAP和REST接口工具类

SOAP(Simple Object Access Protocol)和REST(Representational State Transfer)是两种不同的Web服务通信协议,因此它们的接口工具类实现也有一些差异。需要注意的是,这些示例代码只实现了最基本的功能,实际使用时可能需要根据具体情况进行修改和扩展。同时还需要注意安全性和性能等方面的问题,例如SSL证书验证、连接池管理和结果缓存等。

2023-05-12 15:00:43 1454

原创 Java代码实现红黑树

该实现仅包含插入操作,其他基本操作,如删除、查找和遍历等可以通过类似的方式实现。在实际使用中,建议根据实际需要进行优化,例如添加节点数、维护树高度等。

2023-05-12 14:56:09 372

原创 尾行注释转行上注释 正则表达式

尾行注释转行上注释 正则表达式匹配( *)(.+;)( *// *)(.+)替换为$1// $4\n$1$2

2022-05-23 17:27:15 594

原创 ES6新特性

一、默认参数ES5的写法function method(param) { if (null == param) { param = "默认值"; }}ES6的写法function method(param = "默认值") {}二、字符串模板ES5的写法var a = "字符串";var b = "我是";var c = b + a + "!";ES6的写法let a = "字符串";let b = "我是";let c = `${b}${a}!`;三、多行

2022-02-18 10:26:38 170 1

原创 无限重置IDEA试用期的小脚本

1Reset the trial period of IDEA.vbsSet wsshell = CreateObject("WScript.Shell")Set filesys = CreateObject("Scripting.FileSystemObject")USERPROFILE = wsshell.ExpandEnvironmentStrings("%USERPROFILE%")APPDATA = wsshell.ExpandEnvironmentStrings("%AP...

2021-09-07 00:27:16 9232 4

原创 Python3 获取本地IP

# !/usr/bin/python3# coding: utf-8import osimport randomimport sysimport IPyimport certifiimport netifacesimport pycurldef list_ipv4_adapter(): mapping = {} gateways = netifaces.gateways() if netifaces.AF_INET in gateways: ...

2021-06-15 17:50:29 781 1

原创 Python3 使用指定网络适配器访问特定网址

# !/usr/bin/python3# coding: utf-8import pycurldef ping_to_website(website, interface): c = pycurl.Curl() try: c.setopt(pycurl.URL, website) c.setopt(pycurl.CAINFO, certifi.where()) # for https, also supported HTTP c..

2021-06-15 17:02:26 561

原创 Python3 判断IP是否属于某个网段

# !/usr/bin/python3# coding: utf-8import IPydef in_same_segment(ip, mask, addr): # Specifies whether the address is in the network segment if '' == addr.strip(): return True subnet = IPy.IP('%s/%s' % (ip, mask), make_net=True) .

2021-06-15 16:57:21 936

原创 Python3 判断IPv4网络适配器是否在运行

# !/usr/bin/python3# coding: utf-8import osimport sysdef is_adapter_up(ip): if 'win32' == sys.platform: cmd = 'ipconfig |findstr "%s"' # Using `ipconfig -all` to show all, includes not running elif 'linux' == sys.platform: .

2021-06-15 16:43:45 302

原创 Python3 获取当前主机所有IPv4网络适配器

# !/usr/bin/python3# coding: utf-8import netifacesdef list_ipv4_adapter(): mapping = {} gateways = netifaces.gateways() if netifaces.AF_INET in gateways: ipv4gates = gateways[netifaces.AF_INET] for gate in ipv4gates: .

2021-06-15 16:41:20 744

原创 Python3 判断端口是否被占用

# !/usr/bin/python3# coding: utf-8import osimport sysdef access(port): if port < 1024 or 65535 < port: # privileged port # out of range return False if 'win32' == sys.platform: cmd = 'netstat -aon|finds.

2021-06-15 15:55:43 1879

转载 我们为什么要用IoC和AOP

作为一名 Java 开发,对 Spring 框架是再熟悉不过的了。Spring 支持的控制反转(Inversion of Control,缩写为IoC)和面向切面编程(Aspect-oriented programming,缩写为AOP)早已成为我们的开发习惯,仿佛 Java 开发天生就该如此。人总是会忽略习以为常的事物,所有人都熟练使用 IoC 和 AOP,却鲜有人说得清楚到底为什么要用 IoC 和 AOP。技术肯定是为了解决某个问题而诞生,要弄清楚为什么使用 IoC 和 AOP,就得先弄清楚不.

2021-02-23 18:20:27 173

转载 VIM教程 1.7版

================================================================================ 欢 迎 阅 读 《 V I M 教 程 》 —— 版本 1.7 ================================================================================ Vim 是一个具有很多命令的功能非常强...

2021-02-19 11:06:02 396

原创 炸裂!万字长文拿下HTTP

提纲1989年,蒂姆·伯纳斯 - 李(Tim Berners-Lee)在论文中提出可以在互联网上构建超链接文档,并提出了三点.URI:统一资源标识符。互联网的唯一IDHTML:超文本文档HTTP:传输超文本的文本传输协议1 HTTP应用在哪儿学习一门知识,采用五分钟时间看看这个知识是干啥的可能会更加有目的性。HTTP可谓无处不在,这里例举出几个。HTTP应用场景2 HTTP是什么HTTP(hypertext transport protocol)翻译过来为..

2020-12-16 11:40:24 435

转载 3W 字的 Spring Boot 超详细总结

说明:前面有 4 个小节关于Spring的基础知识分别是:IoC 容器、JavaConfig、事件监听、SpringFactoriesLoader 详解它们占据了本文的大部分内容:虽然它们之间可能没有太多的联系,但这些知识对于理解 Spring Boot 的核心原理至关重要,如果你对 Spring 框架烂熟于心,完全可以跳过这 4 个小节。正是因为这个系列的文章是由这些看似不相关的知识点组成,因此取名知识清单。在过去两三年的 Spring 生态圈,最让人兴奋的莫过于 Spring Boot

2020-10-23 11:02:32 182

转载 如何优雅地在 Spring Boot 中使用自定义注解,AOP 切面统一打印出入参日志

其实,小哈在之前就出过一篇关于如何使用 AOP 切面统一打印请求日志的文章,那为什么还要再出一篇呢?没东西写了?哈哈,当然不是!原因是当时的实现方案还是存在缺陷的,原因如下: 不够灵活,由于是以所有 Controller 方法中的方法为切面,也就是说切死了,如果说我们不想让某个接口打印出入参日志,就办不到了; Controller包层级过深时,导致很多包下的接口切不到; 今天主要说说如何通过自定义注解的方式,在 Spring Boot 中来实现 AOP 切面统一打印出入参日志。小伙.

2020-10-23 10:55:34 448

转载 思考:Spring 为啥默认把 Bean 设计成单例的?

熟悉Spring开发的朋友都知道Spring提供了5种scope分别是singleton、prototype、request、session、global session。如下图是官方文档上的截图,感兴趣的朋友可以进去看看这五种分别有什么不同。今天要介绍的是这五种中的前两种,也是Spring最初提供的bean scope singleton 和 prototype。Spring官方文档介绍如下图:更多内容可以看官方文档介绍,非常详细:“https://docs.spring.io/sp

2020-10-23 10:53:42 216

转载 来,手撸一个简版 Redis

今天主要介绍两个开源项目,然后创建应用最终实现的效果就像简版的redis服务那样,通过http的get请求,能够插入和获取数据,项目暂取名为kedis,源码后面会上传到git仓库。他们分别是Facebook开源的Rocksdb和netty实现的http容器RestExpress。通过实现这样的一个key/value系统实例来学习这两个框架的使用。rocksdb项目地址:https://github.com/facebook/rocksdbRocksDB是一个带key/value接口的存储引擎,其

2020-10-23 10:51:04 290 1

转载 终于有人把 Docker 讲清楚了,别再说不会 Docker 了!

富Web时代,应用变得越来越强大,与此同时也越来越复杂。集群部署、隔离环境、灰度发布以及动态扩容缺一不可,而容器化则成为中间的必要桥梁。本节我们就来探索一下Docker的神秘世界,从零到一掌握Docker的基本原理与实践操作。别再守着前端那一亩三分地,是时候该开疆扩土了。我们将会围绕下面几点展开:1.讲个故事 2.虚拟机与容器 3.认识Docker4.核心概念 5.安装Docker6.快速开始 7.常规操作 8.最佳实践一、讲个故事为了更好的理解Docker是什么,我们先...

2020-10-23 10:49:11 387

MyBatis框架Jar包

mybatis-3.3.0.zip,支持64位Win7/XP系统

2015-07-03

Spring的框架Jar包

spring-framework-3.2.9.RELEASE-dist.zip

2015-07-03

Tomcat 64位

apache-tomcat-8.0.23-windows-x64.zip

2015-07-03

mysql-connector-java-5.1.35-bin.jar

mysql-connector-java-5.1.35-bin.jar

2015-07-03

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

TA关注的人

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