自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(45)
  • 资源 (2)
  • 收藏
  • 关注

原创 常用镜像 工具网站 地址

hadoophttps://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/hbasehttps://mirrors.tuna.tsinghua.edu.cn/apache/hbase/hivehttps://mirrors.tuna.tsinghua.edu.cn/apache/hive/

2022-05-26 13:13:29 1575

原创 Netty AbstractNioChannel源码深度剖析:NIO Channel的抽象实现

AbstractNioChannel是Netty框架中基于Java NIO的Channel抽象基类,它在AbstractChannel的基础上进一步封装了NIO特有的功能和行为。该类通过聚合Java NIO的SelectableChannel,将NIO的非阻塞特性与Netty的事件驱动模型完美融合。

2026-04-08 17:35:02 411

原创 Netty AbstractChannel源码深度剖析:网络通信的基石设计

AbstractChannel是Netty框架中Channel接口的核心抽象实现,作为所有具体Channel实现的公共基类,它在Netty的网络通信架构中扮演着承上启下的关键角色。该类通过Facade模式统一封装了网络I/O操作及其相关功能,为SocketChannel和ServerSocketChannel提供了统一的视图接口。

2026-04-08 17:33:02 400

原创 Netty NioEventLoop源码深度解析:单线程事件循环的极致艺术

NioEventLoop是Netty框架中最为核心的执行引擎,它基于单线程事件循环模型实现了高效的I/O多路复用和任务调度机制。作为Netty Reactor线程模型的实现主体,每个NioEventLoop都封装了一个Selector、一个任务队列和一个独立的执行线程,负责处理多个Channel的I/O事件和非I/O任务。

2026-04-07 16:37:38 276

原创 Netty NioEventLoopGroup源码深度剖析:高性能网络编程的核心引擎

NioEventLoopGroup是Netty框架中实现高性能网络编程的核心组件,它既是线程池又是Selector管理器,负责协调和管理多个NioEventLoop实例。作为Netty Reactor线程模型的具体实现,NioEventLoopGroup通过单线程事件循环机制实现了海量连接的并发处理能力。

2026-04-07 16:36:20 255

原创 Netty ChannelPipeline 线程安全机制的深度解析

ChannelPipeline 作为 Netty 事件处理管道的核心抽象,其线程安全性的实现是 Netty 高性能、高并发架构的关键基础。Netty 通过精心设计的机制确保了 ChannelPipeline 所有公共方法的线程安全,主要包括三个方面:第一,事件循环绑定机制确保每个 Channel 的操作都在其绑定的 EventLoop 单线程中顺序执行;第二,内部状态保护通过同步块和原子操作保护关键数据结构;第三,线程上下文切换优化减少不必要的同步开销。

2026-03-31 17:07:18 320

原创 Netty 4.2核心类解析:ChannelPromise的设计哲学与异步编程模型

ChannelPromise是Netty异步编程模型中的核心抽象,它巧妙地将ChannelFuture的只读视图与Promise的可写能力结合在一起,形成了Netty异步操作结果的统一表示。作为ChannelFuture和Promise的双重子接口,ChannelPromise不仅提供了异步操作完成状态的监控能力,还赋予了操作发起方设置结果的权利。

2026-03-31 17:06:04 364

原创 Netty 4.2核心类解析:SingleThreadIoEventLoop的设计哲学与实现

SingleThreadIoEventLoop是Netty 4.2版本中引入的关键抽象类,它代表了Netty框架在架构设计上的重大革新。作为事件循环的核心实现,该类通过引入IoHandler抽象层,成功实现了EventLoop与Channel的解耦,遵循了单一职责原则的设计理念。

2026-03-31 16:33:26 461

原创 加密狗(客户端证书)状态检测与实时验证机制详解

通过智能轮询机制,我们可以有效解决加密狗拔出后系统仍可访问的安全问题。前端智能轮询:合理设置轮询间隔,避免过度请求服务器端验证:每次请求都重新验证证书状态会话管理:及时更新会话状态,确保安全用户体验:提供友好的提示和过渡这种方案虽然不能实现真正的实时检测,但在不依赖客户端守护进程和WebSocket的情况下,提供了相对平衡的解决方案。在实际应用中,可以根据具体的安全需求和性能要求,调整轮询频率和验证策略。

2026-03-31 09:57:46 484

原创 Netty ChannelPipeline 深度解析:网络编程中的拦截过滤器模式实践

本文将深入解析Netty框架的核心组件——ChannelPipeline。ChannelPipeline通过拦截过滤器模式,为网络事件处理构建了一条可插拔的双向处理链,如同数据流动的“高速公路”。文章详细剖析了其基于双向链表的底层结构、入站与出站处理器的分工、事件传播机制以及线程安全的动态管理。同时,提供了从异常处理、性能优化到调试监控的完整实战指南,并总结了保持处理器轻量、正确传播事件、合理排序等最佳实践,帮助开发者构建高性能、可扩展且易维护的网络应用。

2026-03-31 09:49:39 277

原创 【Flink源码分析】6. Flink1.19源码分析-Flink底层的异步通信

仅摘取了 Flink RPC 进行通信的时候一段代码,也是异步通信的典型代码。

2025-02-10 15:28:07 542

原创 【Flink源码分析】5. Flink1.19源码分析-异步编程(CompletableFuture)

runAfterEither与runAfterBoth的主要区别在于,它不需要两个CompletableFuture都完成;只需要其中一个完成就会执行Runnable。

2025-02-10 14:37:24 1425

原创 【Flink源码分析】3. Flink1.19源码分析-精通动态代理

定义一个接口定义接口实现类定义 InvocationHandler定义服务,在服务中调用 Proxy.newProxyInstance() 方法创建动态代理。

2025-02-07 16:54:10 1209

原创 【Flink系列】10. Flink SQL

10. Flink SQLTable API和SQL是最上层的API,在Flink中这两种API被集成在一起,SQL执行的对象也是Flink中的表(Table),所以我们一般会认为它们是一体的。Flink是批流统一的处理框架,无论是批处理(DataSet API)还是流处理(DataStream API),在上层应用中都可以直接使用Table API或者SQL来实现;这两种API对于一张表执行相同的查询操作,得到的结果是完全一样的。我们主要还是以流处理应用为例进行讲解。需要说明的是,Table API

2025-01-16 16:12:36 1544

原创 【Flink系列】9. Flink容错机制

在Flink中,有一套完整的容错机制来保证故障后的恢复,其中最重要的就是检查点。“随时存档”确实恢复起来方便,可是需要我们不停地做存档操作。如果每处理一条数据就进行检查点的保存,当大量数据同时到来时,就会耗费很多资源来频繁做检查点,数据处理的速度就会受到影响。所以在Flink中,检查点的保存是周期性触发的,间隔时间可以进行设置。我们应该在所有任务(算子)都恰好处理完一个相同的输入数据的时候,将它们的状态保存下来。这样做可以实现一个数据被所有任务(算子)完整地处理完,状态得到了保存。如果出现故障,我们恢复

2025-01-16 15:21:55 1378

原创 【Flink系列】8. 状态管理

Flink的状态有两种:托管状态(Managed State)和原始状态(Raw State)。托管状态就是由Flink统一管理的,状态的存储访问、故障恢复和重组等一系列问题都由Flink实现,我们只要调接口就可以;而原始状态则是自定义的,相当于就是开辟了一块内存,需要我们自己管理,实现状态的序列化和故障恢复。通常我们采用Flink托管状态来实现需求。

2025-01-16 15:05:11 1306

原创 【Flink系列】7. 处理函数

之前所介绍的流处理API,无论是基本的转换、聚合,还是更为复杂的窗口操作,其实都是基于DataStream进行转换的,所以可以统称为DataStream API。在Flink更底层,我们可以不定义任何具体的算子(比如map,filter,或者window),而只是提炼出一个统一的“处理”(process)操作——它是所有转换算子的一个概括性的表达,可以自定义处理逻辑,所以这一层接口就被叫作“处理函数”(process function)。

2025-01-16 14:32:02 1175

原创 【Flink系列】6. Flink中的时间和窗口

在Flink中,用来衡量事件时间进展的标记,就被称作“水位线”(Watermark)。具体实现上,水位线可以看作一条特殊的数据记录,它是插入到数据流中的一个标记点,主要内容就是一个时间戳,用来指示当前的事件时间。而它插入流中的位置,就应该是在某个数据到来之后;这样就可以从这个数据中提取时间戳,作为当前水位线的时间戳了。周期性生成器一般是通过onEvent()观察判断输入的事件,而在onPeriodicEmit()里发出水位线。

2025-01-16 14:20:35 1782

原创 【Flink系列】5. DataStream API

5. DataStream APIDataStream API是Flink的核心层API。一个Flink程序,其实就是对DataStream的各种转换。具体来说,代码基本上都由以下几部分构成:5.1 执行环境(Execution Environment)Flink程序可以在各种上下文环境中运行:我们可以在本地JVM中执行程序,也可以提交到远程集群上运行。不同的环境,代码的提交运行的过程会有所不同。这就要求我们在提交作业执行计算时,首先必须获取当前Flink的运行环境,从而建立起与Flink框架之间

2025-01-16 11:46:29 1272

原创 【Flink系列】4. Flink运行时架构

Flink运行时架构——Standalone会话模式为例。

2025-01-16 11:15:38 1878

原创 【Flink系列】3. Flink部署

打包完成后,在target目录下即可找到所需JAR包,JAR包会有两个,FlinkTutorial-1.0-SNAPSHOT.jar和FlinkTutorial-1.0-SNAPSHOT-jar-with-dependencies.jar,因为集群中已经具备任务运行所需的所有依赖,所以。这里我们所讲到的部署模式,相对是比较抽象的概念。主要配置程序入口主类的全类名,任务运行的并行度,任务运行所需的配置参数和保存点路径等,如下图所示,配置完成后,即可点击按钮“Submit”,将任务提交到集群运行。

2025-01-16 11:01:07 1660

原创 【Flink系列】2. Flink快速上手

在准备好所有的开发环境之后,我们就可以开始开发自己的第一个Flink程序了。首先我们要做的,就是在IDEA中搭建一个Flink项目的骨架。我们会使用Java项目中常见的Maven来进行依赖管理。

2025-01-16 10:37:35 1468

原创 【Flink系列】1.概述

Flink的官网主页地址:https://flink.apache.org/

2025-01-16 10:26:15 576

原创 确权前端启动步骤

【代码】确权前端启动步骤。

2024-11-13 15:01:30 158

原创 PostgreSQL 数据库修改wal_level级别

在 PostgreSQL 数据库中,wal_level 是一个关键的配置参数,它决定了预写式日志(Write - Ahead Logging,WAL)的详细程度。常用级别有以下三个:minimal、replica、logical,三个级别的区别与对比如下:选型建议:如果应用需要基于数据库的变更进行实时数据处理(如实时数据同步、ETL 操作等),则需要使用 logical 级别来支持逻辑解码功能获取详细的变更信息。

2024-10-29 14:11:09 2237

原创 PostgreSQL 数据库实时同步(通过发布与订阅)

现有一套业务库,想再创建一个中间库,保证中间库和业务库数据实时同步。

2024-10-29 13:58:01 847 1

原创 linux环境 分析jvm内存情况

将导出的文件用Java目录下的jvisualvm.exe打开即可查看dump信息。

2024-10-11 19:30:14 654

原创 Docker相关记录

默认链接地址 localhost:1521/XE。这个oracle占空间相对小一点。

2024-10-11 19:29:04 403

原创 oracle 创建用户 ,只赋予查询权限(ChatGPT)

在Oracle数据库中,要创建一个用户并仅赋予查询权限,你可以按照以下步骤进行操作。请注意,执行这些步骤需要具有足够权限的用户(通常是具有。此外,请确保按照你的安全最佳实践来设置用户密码,并仔细考虑授予的权限以确保安全性。或者,如果你希望用户在整个数据库中都有查询权限,可以使用。如果你希望该用户对所有表都具有查询权限,可以使用通配符。完成用户创建和权限授予后,你可以退出当前用户的会话。在此语句中,你可以指定用户名和密码。通常,查询权限是通过。权限的用户登录到Oracle数据库。

2023-11-27 16:43:50 3814

原创 国内外常见 数据科学竞赛平台 地址

除Kaggle外,还有哪些顶级数据科学竞赛平台

2023-10-21 12:26:33 1018

原创 查询 oracle数据库 哪些表有索引

请注意,上述查询可能需要特定的权限来执行。确保你使用的账户具有正确的权限,或者请数据库管理员协助。在Oracle数据库中,你可以使用数据字典来查找相关的信息。

2023-09-15 10:11:44 988

原创 单点登录 cas4.1 怎样设置当前session有效时间

单点登录(Single Sign-On,SSO)的一个流行实现是 CAS (Central Authentication Service)。您可能还需要根据您的具体环境和需求进行其他配置。票据是主要的认证票据,具有一个长的有效期(默认是8小时),并且是CAS用来给用户发放服务票据的票据。服务票据是一个较短的有效期(默认是10分钟),并且是CAS用来允许应用程序访问的票据。除了票据有效期外,您可能还想调整Web应用的 session 超时时间。在对配置文件进行更改后,确保重启CAS服务器以使更改生效。

2023-08-22 14:23:16 2110

原创 修改MongoDB中现有用户的密码

使用mongo shell连接到MongoDB。注意:请确保使用强密码,并定期更改密码以增强安全性。要修改MongoDB中现有用户的密码,您可以使用。切换到该用户所在的数据库。例如,如果您的用户在。替换为您想要更改密码的用户的用户名,并将。完成这些步骤后,用户密码将被更新。如果该用户位于另一个数据库(例如。替换为您想要设置的新密码。

2023-08-10 19:40:15 7005

原创 MongoDB 菜鸟教程

https://www.runoob.com/mongodb/mongodb-query.html

2023-06-02 11:00:31 384

原创 java开发常用工具方法 技巧

【代码】java开发常用工具方法 技巧。

2023-04-10 16:23:38 126

原创 常用框架介绍

https://layui.gitee.io/v2/docs/https://v3.bootcss.com/http://618cj.com/ys/547/form_basic.html

2023-03-17 16:24:52 147

原创 利用jdbc操作oracle数据库中BLOB字段

利用jdbc将文件从oracle数据库中读出来。利用jdbc将文件写入oracle数据库中。

2023-02-07 14:57:11 644

原创 oracle查看表空间及大小

oracle查看表空间及大小

2022-09-18 18:48:12 18972 2

转载 tomcat 集群 session 共享

https://www.cnblogs.com/tongcc/p/15331756.html

2022-09-16 17:29:11 154

原创 常用正则表达式总结

正则表达式在线测试工具。

2022-08-10 09:18:03 303

hibernate自动映射字段类型对照表

hibernate框架在实现自动生成数据库表时,对现有的java字段类型和常用的数据库如(Oracle,MySQL,PostgreSQL)等有对应的字段映射关系,该文件的主要内容就是具体的字段映射情况。

2024-12-12

基于Tomcat的代码class加密技术 可实现加密的Tomcat

在日常开发过程中,我们的生产环境用的发布都是通过IDE编译出来的,安全性很低,只要有人拿到class任意找一款工具就可以反编译获取源码,这样对代码很不安全,我开发了一套系统,在IDE编译后的class的基础上再次处理加密,在Tomcat运行时解密,将解密后的class的内容直接写入内存中,无法直接获取,加密后的class被反编译的概率几乎为0,只有用自制的解密工具才能将class解密。 有需要者可以直接下载,有任何问题请联系1242914172@qq.com

2023-05-30

java pdf处理 PDF的内容替换 切割 提取 拼接 等等操作

使用java完成对PDF的常见操作,比如 替换内容,合并,切割,拼接等,都有完整的示例,附带资料的详细说明及操作步骤 欢迎下载!

2023-04-18

Java代码反编译工具

可以用该工具将class文件反编译获得Java代码 支持jdk1.8(好多工具不支持)

2021-04-26

untitled.rar

可以实现简单的同步发消息,异步发消息,接收消息等操作

2021-09-16

空空如也

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

TA关注的人

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