- 博客(427)
- 资源 (14)
- 收藏
- 关注
原创 开发Sonar的Java规则插件--最详细完整的教程
本文介绍了如何实现一个SonarQube插件来检测slf4j的log.info滥用问题。主要内容包括:1) 使用Maven创建项目结构,配置pom.xml引入SonarQube Plugin API和SonarJava API等必要依赖;2) 通过sonar-packaging-maven-plugin打包插件,配置插件基本信息如插件键、名称、类路径等;3) 支持Java语言分析,插件将被归类为代码异味,严重级别设为info。该插件有助于识别和改善日志记录实践。
2025-08-30 22:55:47
708
原创 深入理解Linux网络--读书笔记(二)
➥ 127.0.0.1本机网络10需要经过网卡吗?不需要➥ 数据包在内核中是什么走向,和外网发送相比流程上有什么差别?总的来说,本机网络O和跨机网络口比较起来,确实是节约了驱动上的一些开销。发送数据不需要进RingBuffer的驱动队列,直接把skb传给接收协议栈(经过软中断)。但是在内核其他组件上,可是一点儿都没少,系统调用、协议栈(传输层、网络层等)、设备子系统整个走了一遍。连“驱动”程序都走了(虽然对于回环设备来说只是一个纯软件的虚拟出来的东西)。所以即使是本机网络口,切忌误以为没啥开销就滥用。
2025-07-27 10:29:59
685
原创 SSE实现消息推送
摘要:本文介绍了使用Java开发SSE(Server-Sent Events)流式接口的实现方法。SSE是一种基于HTTP的单向服务器推送技术,适合服务器主动推送数据的场景。
2025-06-22 16:02:18
1219
原创 各种数据库产品的细节比较
本文介绍了MySQL和PostgreSQL的JDBC连接配置方法。MySQL配置包括驱动类名、用户名、密码以及包含时区、SSL等参数的URL格式,并提供了官方文档参考链接。
2025-06-22 15:59:27
916
原创 Feign针对每个接口单独设置超时
Feign可以通过配置文件来定义调用服务器端REST API的超时设置,可以指定全局超时,也可以指定声明`@FeignClient`的单个Client,但是不可以设置Client中的每个接口方法的超时。由于项目中部分接口需要较大的超时,如果通过单独定义一个额外的Client,则需要调整大量代码,那能否通过底层框架解决呢。
2025-06-22 15:58:05
683
原创 Python 使用Gitlab Api
本文介绍了GitLab的API使用方法,主要包括:1)REST API基础接入指南;2)Python-gitlab包的安装和基本配置(匿名/Token/OAuth认证);3)提供了删除过期流水线的完整Python代码示例,包含项目遍历、流水线查询和时间判断逻辑。代码展示了如何通过python-gitlab库操作GitLab,包括获取项目列表、删除指定项目和清理3天前的流水线。附录提供了官方API文档参考链接和所需依赖包安装说明。
2025-06-22 15:49:02
417
原创 linux jq命令详解
jq是一个功能强大的命令行JSON处理工具,提供丰富的查询、过滤和修改功能。jq强大的正则表达式支持和内置运算符使其成为处理JSON数据的理想工具。
2025-06-22 15:42:23
410
原创 GPU机器安装docker
Docker与Nvidia-Docker离线安装指南 本文介绍了在Ubuntu系统上离线安装Docker和Nvidia-Docker的完整流程。文章详细说明了组件版本匹配关系和安装验证方法。该指南适用于需要在内网或离线环
2025-06-22 15:39:16
1975
原创 Netty Eventloop详解
Netty提供三种线程模型:单线程模型(所有I/O操作在一个线程处理,适用于小并发场景)、多线程模型(单独线程组处理I/O操作,适用于多数场景)、主从多线程模型(独立线程池处理连接,适合百万级并发)。Netty通过配置可以灵活切换模型,并采用无锁化设计和串行化处理优化性能。NioEventLoop作为核心线程,不仅处理I/O读写,还执行系统Task和定时任务,避免锁竞争。源码分析揭示了其高效的事件循环机制。
2025-06-22 15:32:46
1038
原创 Netty ChannelPipeline和ChannelHandler详解
Netty的ChannelPipeline采用职责链模式管理ChannelHandler,支持事件的拦截和处理。事件分为inbound(如连接建立、读事件)和outbound(如连接操作、消息发送)两类。Pipeline通过链表结构维护Handler,用户只需继承ChannelHandlerAdapter并覆盖关心的方法即可实现自定义拦截。Netty在创建Channel时会自动初始化Pipeline,开发者只需添加自定义Handler。源码分析显示Pipeline继承ChannelInboundInvoke
2025-06-22 15:31:33
1062
原创 Netty Channel 详解
Netty没有使用JDK原生的NIO Channel,而是自定义实现了Channel接口,主要原因包括:1) JDK原生的SocketChannel和ServerSocketChannel缺乏统一接口,不便于使用;2) 继承扩展原生Channel难度大;3) 需要与Netty架构深度整合;4) 自定义实现更灵活。Netty的Channel采用Facade模式统一封装网络I/O操作,通过聚合而非继承的方式整合功能类,提供了更完整的操作视图。核心实现包括AbstractChannel、AbstractNioCh
2025-06-22 15:30:18
836
原创 mysql主从复制
本文介绍了MySQL主从复制的配置方法,主要包括主从复制的功能优势(数据备份和读写分离)、docker-compose部署方案、主从服务器的配置
2025-05-24 08:06:53
1032
原创 Maven插件之docker-maven-plugin
本文介绍了使用docker-maven-plugin插件实现Maven工程自动化构建Docker镜像的方法
2025-05-24 07:56:12
1861
原创 GitLab CI_CD 从入门到实战笔记
本书主要介绍GitLabCI/CD的相关内容。首先介绍GitLabCI/CD的基础知识,包括CI/CD的几个基本概念(pipeline、stages、job、GitLabRunner和.gitlab-ci.yml文件);然后介绍GitLabCI/CD的35个关键词、每个关键词的语法及其使用场景,并给出一些示例;最后介绍CI/CD的实践,通过3种不同的项目详细讲解各种部署方式,包括微服务架构项目流水线开发、GitLabCI/CD与Kubernetes的集成,以及如何将项目部署到Kubernetes集群中等。
2024-09-15 10:53:05
3065
原创 Mybatis技术内幕-基础支撑层
MyBatis 的整体架构分为三层, 分别是基础支持层、核心处理层和接口层。基础支持层包含整个MyBatis 的基础模块,这些模块为核心处理层的功能提供了良好的支撑。
2024-05-12 12:10:09
845
原创 MAT工具详解
可以用来分析Java堆内存,可以用来排查内存泄漏和内存浪费的问题,但是功能不是特别强大, MAT(Memory Aanlysis Tool)是一款更优的工具。
2024-04-14 19:39:40
827
原创 log4j2配置详解
配置自动配置log4j2支持4种格式的配置:json、yaml、xml、peroperties。加载顺序为:切分文件策略,是基于filePattern中的来决定到底采用哪种时间单位(天、小时、分钟、秒等)。日期格式精确到哪一位,interval 也精确到哪一个单位。注意中配置的文件重命名规则是 ,最小的时间粒度是 ,即秒钟。 默认的 是 1,结合起来就是每 1 秒钟生成一个新文件。如果改成 ,最小粒度为小时,则每一个小时生成一个文件,说明是否对封存时间进行调制。若 , 则封存时间将以 为边界进行偏移
2024-04-05 11:07:46
4357
原创 Groovy语言学习
Groovy 是一种基于 JVM 的敏捷开发语言,它结合了 Python、Ruby 和 Smalltalk 的许多强大的特性。
2024-01-27 08:50:14
1260
原创 protobuf-Java使用.md
protobuf 环境配置1、安装编译器下载地址直接解压缩。2、配置环境变量环境变量Path 中增加安装目录的路径3、检查是否配置成功protocUsage: protoc [OPTION] PROTO_FILESParse PROTO_FILES and generate output based on the options given: -IPATH, --proto_path=PATH Specify the directory in which to search for
2024-01-21 12:55:29
1423
原创 jdbc源码研究
JDBC(`Java Data Base Connectivity`,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用`Java`语言编写的类和接口组成。
2024-01-06 16:11:04
782
原创 Flink学习-处理函数
处理函数是Flink底层的函数,工作中通常用来做一些更复杂的业务处理,处理函数分好几种,主要包括基本处理函数,keyed处理函数,window处理函数。
2024-01-01 12:50:02
1815
原创 Flink学习-时间和窗口
在流数据处理应用中,一个很重要、也很常见的操作就是窗口计算。所谓的“窗口”,一 般就是划定的一段时间范围,也就是“时间窗”;对在这范围内的数据进行处理,就是所谓的 窗口计算。所以窗口和时间往往是分不开的。
2024-01-01 10:15:19
2104
原创 Java Bean Validation规范
约束是一系列约束注解与约束校验实现的组合。约束注解可以应用在types, fields, methods,constructors, parameters, container elements 或其他约束注解。Bean校验API的默认包名为。在指定一个注解应用于Java Bean的同时,需要指定属性,这些属性映射为注解元素。messagegroups和payload,为保留名称,注解元素命名不能以valid开头,constraint 可以使用其他元素名称作为其属性。
2024-01-01 10:06:00
1291
Spring 5 开发大全-第2部分.pdf(11章以后)
2019-06-16
深入理解Kafka:核心设计与实践原理_朱忠华著_带目录.rar
2019-06-12
Netty进阶之路--跟着案例学part1
2019-02-27
aspectj开发包
2019-01-05
Java测试驱动开发.pdf
2019-06-11
java编程思想第4版清晰pdf中文完整版.pdf
2018-12-25
从Paxos到Zookeeper 分布式一致性原理与实践
2018-04-05
Netty进阶之路--跟着案例学part2
2019-02-27
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅