- 博客(77)
- 收藏
- 关注
原创 【FLink】水位线(Watermark)
在Flink中,用来衡量事件时间进展的标记,就被称作“水位线”(Watermark)。说白了就是事件时间戳。
2023-11-21 22:43:27
4635
原创 Redis入门与应用
1970 年布隆提出了一种布隆过滤器的算法,用来判断一个元素是否在一个集合中。这种算法由一个二进制数组和一个 Hash 算法组成。本质上布隆过滤器是一种数据结构,比较巧妙的概率型数据结构(probabilistic data structure),特点是高效地插入和查询,可以用来告诉你 “某样东西一定不存在或者可能存在”。相比于传统的 List、Set、Map 等数据结构,它更高效、占用空间更少,但是缺点是其返回的结果是概率性的,而不是确切的。
2023-11-20 23:33:09
466
原创 Redis高级特性和应用(发布 订阅、Stream)
足够简单,消费消息延迟几乎为零,但是需要处理空闲连接的问题。如果线程一直阻塞在那里,Redis客户端的连接就成了闲置连接,闲置过久,服务器一般会主动断开连接,减少闲置资源占用,这个时候blpop和brpop或抛出异常,所以在编写客户端消费者的时候要小心,如果捕获到异常,还有重试。其他缺点包括:做消费者确认ACK麻烦,不能保证消费者消费消息后是否成功处理的问题(宕机或处理异常等),通常需要维护一个Pending列表,保证消息处理确认;不能做广播模式,如pub/sub,消息发布/订阅模型;
2023-11-20 23:31:59
405
原创 【Flink】窗口(Window)
窗口(Window)是处理无界流的关键所在。窗口可以将数据流装入大小有限的“桶”中,再对每个“桶”加以处理。本文的重心将放在 Flink 如何进行窗口操作以及开发者如何尽可能地利用 Flink 所提供的功能。我们将窗口理解为一个一个的水桶,数据流(stream)就像水流,每个数据都会分发到对应的桶中,当达到结束时间时,对每个桶中收集的数据进行计算处理Flink中窗口并不是静态准备好的,而是动态创建——当有落在这个窗口区间范围的数据达到时,才创建对应的窗口。
2023-11-19 21:50:57
970
原创 如何快速实现域名访问本地环境
当我们开发微信小程序等应用时,你会发现 一个烦人的操作,就是你必须得弄个域名,才能够进行访问,对于一般的开发者而言,这就麻烦了,要搞openssl,要购买域名等等。这里有一种简单的办法,能够快速实现域名访问本地环境。
2023-11-19 12:54:53
429
原创 【Flink 问题集】The generic type parameters of ‘Collector‘ are missing
java 8 在使用Java API 写 Lambda 的时候,JVM 运行时会擦除类型(泛型类型)Flink 无法准确获取到数据类型,此时就需要我们手动指定类型。
2023-11-18 22:52:58
748
原创 【Flink】核心概念:任务槽(Task Slots)
每个 worker(TaskManager)都是一个 JVM 进程,可以在单独的线程中执行一个或多个 subtask。为了控制一个 TaskManager 中接受多少个 task,就有了所谓的 task slots(至少一个)。每个任务槽(task slot)其实表示了TaskManager拥有计算资源的一个固定大小的子集。这些资源就是用来独立执行一个子任务的。
2023-11-18 17:02:34
552
原创 【框架整合】Redis限流方案
redis实现限流的核心原理在于redis 的key 过期时间,当我们设置一个key到redis中时,会将key设置上过期时间,这里的实现是采用lua脚本来实现原子性的。
2023-11-18 10:04:08
828
原创 【Flink】核心概念:并行度与算子链
当要处理的数据量非常大时,我们可以把一个算子操作,“复制”多份到多个节点,数据来了之后就可以到其中任意一个执行。这样一来,一个算子任务就被拆分成了多个并行的“子任务”(subtasks),再将它们分发到不同节点,就真正实现了并行计算。被称之为其并行度(parallelism)。这样,包含并行子任务的数据流,就是并行数据流,它需要多个分区(stream partition)来分配并行任务。一般情况下,一个流程序的并行度,可以认为就是其所有算子中最大的并行度。一个程序中,不同的算子可能具有不同的并行度。
2023-11-16 22:48:40
743
原创 【Flink】系统架构
DataStream API 将你的应用构建为一个 job graph,并附加到 StreamExecutionEnvironment。当调用 env.execute() 时此 graph 就被打包并发送到 JobManager 上,后者对作业并行处理并将其子任务分发给 Task Manager 来执行。每个作业的并行子任务将在 task slot 中执行。
2023-11-16 22:15:45
239
原创 【Flink】分流和合流
所谓“分流”,就是将一条数据流拆分成完全独立的两条、甚至多条流。也就是基于一个DataStream,定义一些筛选条件,将符合条件的数据拣选出来放到对应的流里。
2023-11-14 22:41:26
223
原创 【Flink】转换算子(Transformation)
数据源读入数据之后,我们就可以使用各种转换算子,将一个或多个DataStream转换为新的DataStream。
2023-11-14 07:53:07
334
原创 【Flink】Data Source 原理
一个数据 source 包括三个核心组件:分片(Splits)、分片枚举器(SplitEnumerator) 以及 源阅读器(SourceReader)。
2023-11-13 23:37:58
413
原创 【Flink】Data Source
Flink可以从各种来源获取数据,然后构建DataStream进行转换处理。一般将数据的输入来源称为数据源(data source),而读取数据的算子就是源算子(source operator)。所以,source就是我们整个处理程序的输入端。通过 StreamExecutionEnvironment 可以访问多种预定义的 stream source。
2023-11-13 07:46:41
92
原创 【Flink】执行模式(流/批)
在自然环境中,数据的产生原本就是流式的。无论是来自 Web 服务器的事件数据,证券交易所的交易数据,还是来自工厂车间机器上的传感器数据,其数据都是流式的。但是当你分析数据时,可以围绕 有界流(bounded)或 无界流(unbounded)两种模型来组织处理数据。
2023-11-12 08:39:42
192
原创 【Flink】执行环境
获取执行环境的三种方式getExecutionEnvironment();createLocalEnvironment();createRemoteEnvironment(String host, int port, String... jarFiles);
2023-11-12 08:25:48
212
原创 【Flink】DataStream API
Flink 中的 DataStream 程序是对数据流(例如过滤、更新状态、定义窗口、聚合)进行转换的常规程序。数据流的起始是从各种源(例如消息队列、套接字流、文件)创建的。结果通过 sink 返回,例如可以将数据写入文件或标准输出(例如命令行终端)。Flink 程序可以在各种上下文中运行,可以独立运行,也可以嵌入到其它程序中。任务执行可以运行在本地 JVM 中,也可以运行在多台机器的集群上。
2023-11-12 08:08:24
52
原创 【Flink】利用IDEA快速搭建一个Flink工程
在准备好所有的开发环境之后,我们就可以开始开发自己的第一个Flink程序了。首先我们要做的,就是在IDEA中搭建一个Flink项目的骨架。我们会使用Java项目中常见的Maven来进行依赖管理。
2023-11-11 21:56:06
1568
原创 jdk部署
因为Java项目部署需要Java运行环境jdk,要在Linux服务器上部署Java项目,就必须线安装好jdk并配置好环境变量;本篇文章记录了如何安装jdk以及配置环境变量。
2023-01-27 13:58:08
267
原创 anancoda安装python环境教程
对于没有root权限的用户来说,有时候需要安装环境确实是一件麻烦事,安装python也是如此,此处用第三方anacoda在有root权限的环境上做好处理,再移到没有环境的服务器上,方便快捷,省去很多不必要的麻烦
2022-12-08 06:44:18
931
原创 2021-09-19
openssl免费生成ssl证书,并在docker nginx 下安装简单描述在这里记录一下自己生成一个免费ssl证书所遇到的一些坑吧,希望能够对各位爱学习的朋友能有一些帮助环境配置Centos7docker --> nginx1、安装nginx镜像$docker pull nginx$docker run --detach \--name nginx --privileged=true \-p 443:443 \-p 80:80 \-v /mydata/nginx/html
2021-09-19 18:07:17
231
原创 redis集群离线安装部署
在有一些情况下(如封闭式开发环境),我们会很郁闷的发现,你根本就无法通过网络去获取你所需要的资源,可是在网上也很难搜索到正确的并且适合自己环境的安装方法,此处仅记载一下自己环境下的redis集群离线部署方式
2019-03-17 12:19:31
784
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅
1