自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Xnio源码分析

Xnio是Jboss对nio的一次优秀的封装网络io框架,相信有研究过undertow源码的同学,在undertow的源码里面或多或少的都有看到xnio的身影先回忆一下前一篇博文对netty线程模型的概述,先上图:说白了:就是使用多个线程组,各自分工处理自己的事情,boss线程只负责连接事件,然后把连接好的SocketChannel交给worker线程处理。在netty中,有说过EventLoop是netty中最最重要的组件,相信在Xnio这种优秀的io框架处理上也会有惊艳的骚操作。

2026-02-25 21:05:34 814

原创 ELK日志收集平台搭建

此时,只需要在logback.xml中增加对应的logstash配置即可把日志传递到logstash,再然后到es,最后在kibana中展示了。elasticsearch.hosts:["xxxx.xxxx.xxx.xxxx:port"] --- 指定你的es的地址。cmd切换到logstash的目录 ./bin/logstash.bat -f logstash.conf。cmd切换到对应目录:./bin/kibana.bat 启动即可。i18.local:"zh-CN" ---指定中文界面。

2026-02-25 21:04:56 845

原创 spring cloud gateway内置网关filter

spring cloud gateway中内置了很多的路由过滤工程,这些路由过滤工程允许以某种方式修改请求进来的http请求的内容(请求头,请求体)或返回的http响应。路由过滤器主要作用于需要处理的特定路由。spring cloud gateway内置了很多种类的过滤器,大致可以分为:Header、Paramter、Path、Status、Redirect、Hystrix熔断和限流RateLimiter。

2026-02-25 21:03:42 1030

原创 spring cloud gateway内置路由断言工厂

在spring cloud gateway中有支持以服务名为开头的默认路由规则,但是在实际生产中的路由规则可能更复杂,需要支持自定义的路由规则定义,包括路径匹配、时间匹配、请求匹配等等,以下是spring cloud gateway内置的路由断言工厂及一般用法。

2026-02-25 20:58:44 1036

原创 Java小技艺

平时在工作中运行jar包一般是导出后命令行窗口运行 jar -jar xxx.jar 这个其实是很不方便的。可以在win上编写bat脚本去运行jar包的。2 将jre和待执行的jar包存放到一个目录下(和bat文件在同一目录下),其中jar是需要能通过java -jar 运行的。1 编写bat脚本。

2024-11-19 10:15:45 382

原创 延迟队列-DelayQueue

实现了一个支持延时获取元素的无界阻塞队列,只有当其指定的延迟时间到达时,队列中的元素才能被获取。

2024-11-15 12:00:29 581

原创 优先级队列-PriorityQueue

无界队列,数据存储于内部数组中,数据采用堆(默认小顶锥)的组织形式。

2024-11-14 16:38:00 696 1

原创 pmap命令

pmap(process memory map)用于查看进程的内存映射,即进程的内存地址空间。pmap 从文件中获得相关数据,用来观察系统中指定进程的地址空间分布和内存状态信息,包括进程各个段的大小。对查看完整的进程地址空间很有帮助。

2024-07-11 17:30:05 1658

原创 sort命令

sort是在Linux里非常常用的一个排序命令。将文件的每一行作为一个单位,从首字符向后,依次按ASCII码值进行比较,默认将他们按升序输出。

2024-07-11 16:46:48 748

原创 top命令详解

top 是 Linux 系统中的一个动态监视工具,它可以实时显示系统中各个进程的资源占用状况的统计信息,类似于 Windows 的任务管理器。通过 top 命令,用户可以快速查看系统的运行状态,以及各个进程的 CPU、内存等使用情况。

2024-07-11 15:21:21 1080

原创 spring cloud alibaba可落地灰度发布方案

spring cloud alibaba是由阿里在spring cloud 基础上开源的微服务框架。提供了更高性能的注册中心/配置中心组件:nacos限流组件:sentinel分布式事务:seata最重要的是spring cloud alibaba把dubbo框架整合,在服务之间调用时从http协议变成了rpc调用,大大提升了服务之间的通信效率。

2024-07-05 10:16:22 1173

原创 hutool工具实践-缓存

hutool工具既可以像上一章hutool工具实践-验证码-CSDN博客所说直接全部引入,也可以分模块引入。

2024-06-06 16:11:29 3778

原创 hutool工具实践-验证码

验证码功能位于包中,核心接口为ICaptchacreateCode创建验证码,实现类需同时生成随机验证码字符串和验证码图片getCode获取验证码的文字内容verify验证验证码是否正确,建议忽略大小写write将验证码图片写出到目标流中其中write方法只有一个ICaptcha实现类可以根据这个方法封装写出到文件等方法。为一个ICaptcha抽象实现类,此类实现了验证码文本生成、非大小写敏感的验证、写出到流和文件等方法,通过继承此抽象类只需实现方法定义图形生成规则即可。

2024-06-03 09:13:59 2913

原创 sed命令详解

sed(Stream EDitor),是一种流文件编辑器,其特点为:1、非交互式。处理文件时,把当前处理的行存储在临时缓冲区(称为“模式空间”(Pattern Space))中,即它是基于模式匹配过滤及修改文本。2、逐行处理,sed 命令在缓冲区中一次处理一行内容,处理完成后,把缓冲区的内容送往屏幕,接着处理下一行,直到文件末尾。

2024-05-27 15:24:38 2650

原创 bytebuddy入门

Byte Buddy 是一个代码生成和操作库,用于在 Java 应用程序运行时创建和修改 Java 类,而无需编译器的帮助。除了 Java 类库附带的代码生成实用程序外,Byte Buddy 还允许创建任意类,并且不限于实现用于创建运行时代理的接口@Test// 加载指定路径下的jar包// 系统类加载,如果不加载会找不到jdk本身的类// 此处调用不会触发类的加载.make();

2024-05-24 15:26:22 2031

原创 easy-rule规则引擎使用

轻量级的规则引擎,易于学习的api简单来说,规则引擎就是一个函数:y=f(x1,x2,…,xn)将业务代码和业务规则分离,解耦业务决策和业务代码的绑定关系。

2024-05-22 11:24:57 1978

原创 quartz源码分析

在上一章quartz的使用-CSDN博客有讲关于quartz的使用,包括常规使用,结合mysql存储做分布式调度和结合springboot使用,本篇文章主要做定时调度的主流程源码分析。

2024-04-17 09:52:54 1666

原创 quartz的使用

是OpenSymphony开源组织在Job scheduling领域又一个开源项目,完全由Java开发,可以用来执行定时任务,类似于java.util.Timer。功能更强大。

2024-04-16 17:24:03 646

原创 arthas的搭建和使用

Arthas 是一款线上监控诊断产品,通过全局视角实时查看应用 load、内存、gc、线程的状态信息,并能在不修改应用代码的情况下,对业务问题进行诊断,包括查看方法调用的出入参、异常,监测方法执行耗时,类加载信息等,大大提升线上问题排查效率。

2024-04-11 15:46:10 1858

原创 springboot-admin使用及原理剖析

spring.boot.admin.ui.brand是springbootadmin页面顶部显示内容。其中列举了开发的所有端口信息内容,其中有关于应用的日志级别、jvm、spring的ioc相关信息。spring.boot.admin.client.url表示admin服务端的地址和端口。spring.boot.admin.ui.title 表示html页面的标题内容。可以在dashboard的主页面看到相关的应用注册信息,包括注册的应用和实例个数。的实现具体的原理可以翻看一下上一章的源码分析。

2024-04-08 15:18:17 1681

原创 SpringMvc之映射器HandlerMapping

在springmvc的处理流程中,第一步就是查询请求对应的映射器,然后组装成处理器链处理请求,本文意在梳理该过程在springboot actuator中有很多的监控信息可以通过暴露"端点"的方法让外部获取应用的信息,而端点的暴露即和以上过程大体相当在图3所示的springboot actuator的自定义端点是通过WebMvcEndpointHandlerMapping暴露的。

2024-03-26 17:11:09 1930

原创 JSqlParser的使用

JSqlParse是一款很精简的sql解析工具,它可以将常用的sql文本解析成具有层级结构的语法树,我们可以针对解析后的节点进行处理(增加、移除、修改等操作),从而生成符合我们业务要求的sql,比如添加过滤条件等等JSqlParse采用访问者模式项目结构非常简单,从截图上看就5个包。如果对源码感兴趣的可以直接从github上下载源码包调试。其中expression包包含了所有的sql表达式的抽象对象:statement包含了所有sql语句的类型,比如:增删改查,ddl语句,rollback语句等等。

2024-03-22 18:24:14 5266

原创 xxl-job源码分析

com.xxl.job.admin.core.trigger.XxlJobTrigger:定时任务真正的触发器,通过上面的ringThread传入的定时任务相关参数信息,通过路由器(com.xxl.job.admin.core.route.ExecutorRouter)计算获取最终需要发送http请求的客户端地址,发起调用请求,完成定时任务调度。dashboard在启动的时候初始化类com.xxl.job.admin.core.conf.XxlJobAdminConfig,关于任务调度的入口就是在这个类。

2024-03-15 18:14:09 1270

原创 xxl-job

XXL-JOB是一个分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线,开箱即用执行器:通过xxl-job注册到dashboard上的应用,可以理解成xxl-job的一个客户端任务:注册到dashboard上的每个应用的任务先简单理解即可,后续在源码分析篇会详细介绍。

2024-03-15 11:29:34 1080

原创 Jmeter扩展---自定义取样器

Jmeter已经内置了各种协议的取样器,已经能满足常用的性能压测需求。且在前面一章Jmeter扩展开发--自定义java取样器-CSDN博客中也有关于Java取样器的扩展开发,不过有时候我们期望能定制自己的取样器和界面。为此,需要对Jmeter做扩展,自定义取样器开发在自定义取样器开发中有两个类需要重点介绍该类是自定义Jmeter取样器的ui显示类,可以直接像操作Swing一样编辑Jmeter取样器的ui界面,如上图2所示。

2024-03-14 14:29:45 1661

原创 Jmeter扩展开发--自定义java取样器

jmeter内置了包括:http、https、tcp等各种协议的支持,通常情况只需要做简单的参数配置即可使用。

2024-03-14 12:19:00 1166

原创 java非对称加解密

非对称加密:加密和解密使用不同的秘钥的加解密方法。一般的,用公钥做加密,私钥做解密使用常用的加解密有:RSA、ECC、DSA,在java中使用最多的是RSA。

2023-12-25 15:12:55 538

原创 java对称加密

Advanced Encryption Standard)是一种对称加密算法,AES 算法比 DES 算法更安全,加密和解密速度也更快注意:AES加密算法的key的长度必须是:16、24、32。

2023-12-22 18:26:56 520

原创 java常用密码简介及代码实现

当 URL 路径或者查询参数中,带有中文或者特殊字符的时候,就需要对 URL 进行编码(采用十六进制编码格式)。URL 编码的原则是使用安全字符去表示那些不安全的字符使用示例public static final String DEMO_STR= "法律";@Test又叫Hash算法、散列函数、数字摘要、消息摘要,是一种单向算法(不可逆),可以根据该算法对目标信息生成固定长度的唯一hash值,不能逆向计算(不可通过计算的hash值反推目标信息)。

2023-12-22 17:07:43 701 1

原创 maven常用插件简介及配置模板

maven-assembly-plugin是maven的官方插件,在使用时可以不用指定groupId。该插件主要用于将项目打包成归档文件(fat-jar)maven-shade-plugin是maven的官方插件,在使用时可以不用指定groupId。该插件可以制作归档文件(fat-jar)、包的重命名、配置文件追加等等,功能十分强大maven-antrun-plugin是maven的官方插件,在使用时可以不用指定groupId。该插件用于创建指定目录,并把指定目录的文件拷贝到目标目录下。

2023-12-21 10:59:06 2680

原创 自定义maven插件

一般的maven插件使用时需要引入插件的gav(groupId,artifactId,version)就可以正常使用了。一般的结构如下: 包含插件的gav,还有一组可执行器<execution>。在每个<execution>里面包含有如下结构一个可执行器的结构如上,其中各标签释义如下:<configuration>表示该可执行器的配置项,后续在自定义实现maven插件中会详细的描述<id>就是取个名字,别重复就行了<phase>表示该可执行器在maven的生命周期的哪个阶段生效,如果不配置,使用插件默认的,

2023-12-20 16:36:03 1231

原创 日志门面slf4j和各日志框架

简单日志门面(Simple Logging Facade For Java)SLF4J主要是为了给Java日志访问提供一套标准、规范的API框架,其主要意义在于提供接口,具体的实现可以交由其他日志框架,如log4j、logback、log4j2。对于一般的Java项目而言,日志框架会选择slf4j-api作为门面,配上具体的实现框架,中间使用桥接器完成桥接。所以我们可以得出SLF4J最重要的两个功能就是对于日志框架的绑定以及日志框架的桥接。

2023-12-08 14:37:47 1380

原创 log4j2日志框架使用

log4j2支持四种类型的配置文件:XML/JSON/YML/Properties(后缀支持的不只4种),由四种解析器完成。最终会由ConfigurationFactory#getConfiguration完成配置文件加载初始化。log4j2的配置文件语法树如下:结构清晰。

2023-12-08 11:50:19 753

原创 log4j日志框架的使用

当调用logger.info打印日志时,和logback的流程基本一样,也是先组装成一个LoggingEvent对象,然后一次遍历logger对象的Appender列表(无appender列表的继承子父对象)完成日志输出。log4j的配置文件可以理解成有2部分 1根日志记录器 2 各appender(输出源)配置。在loggerManager的静态代码块中,完成对配置文件的读取和解析。然后组装成框架的Logger对象、appender对象完成初始化操作。loggerManager的静态代码块。

2023-12-07 17:39:25 918

原创 logback日志框架使用

p = %le = %level【等价】 日志级别 %-5p 表示打印日志级别,且左对齐5个字符的距离。%F = %file 【等价】 发出日志请求的java源文件名字 ---不推荐,耗性能。%L = %line 【等价】 java文件中请求的行号 ---不推荐,耗性能。%M = %method 日志请求发出的方法的方法名----不推荐,耗性能。%C = %class【等价】打印全类名 ---不推荐,耗性能。%m = %msg = %message 日志正文信息。%t = %thread 线程名称。

2023-12-07 14:45:34 1321

原创 docker启动nginx

在nginx中,server_name指令用于指定虚拟主机的域名或IP地址。它可以用于匹配请求的主机头(HTTP请求头中的。该配置打开了下划线的自定义请求头可以被转发,默认nginx的转发是不会转发下划线的请求头。字段),从而确定哪个虚拟主机应该处理该请求。

2023-12-05 14:18:40 626

原创 springboot应用支持https实现

keytool -genkey -alias (别名) -dname "CN=(姓名),OU=(组织单位名称),O=(组织名称),L=(城市名称),ST=(省),C=(国家)" -storetype (密钥仓库类型) -keyalg (生证书的算法名称) -keysize (密钥长度,证书大小) -keystore (指定生成证书的位置和证书名称) -validity (证书有效期,天单位)切换到jdk目录下bin目录,执行。一 jdk自带证书生成。二 配置https协议。

2023-12-05 11:24:07 991

原创 hadoop集群搭建

hadoop1 hadoop2 hadoop3 ip分别为:192.168.56.211,192.168.56.212,192.168.56.213。

2023-11-09 15:09:58 807 1

原创 docker创建elasticsearch、elasticsearch-head部署及简单操作

b 第7574行 var inspectData = s.contentType === "application/x-www-form-urlencoded" &&改为 var inspectData = s.contentType === "application/json;a 第6886行 :/contentType: "application/x-www-form-urlencoded。1 docker exec -it {elasticearch-head}容器名称 /bin/bash。

2023-10-13 15:33:08 1255

原创 docker搭建rocketmq集群

刷盘策略,取值为:ASYNC_FLUSH,SYNC_FLUSH表示同步刷盘和异步刷盘;#刷盘策略,取值为:ASYNC_FLUSH,SYNC_FLUSH表示同步刷盘和异步刷盘;#刷盘策略,取值为:ASYNC_FLUSH,SYNC_FLUSH表示同步刷盘和异步刷盘;#有三个值:SYNC_MASTER,ASYNC_MASTER,SLAVE;#有三个值:SYNC_MASTER,ASYNC_MASTER,SLAVE;#有三个值:SYNC_MASTER,ASYNC_MASTER,SLAVE;

2023-10-11 13:49:36 500

空空如也

空空如也

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

TA关注的人

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