- 博客(94)
- 收藏
- 关注
原创 Java小技艺
平时在工作中运行jar包一般是导出后命令行窗口运行 jar -jar xxx.jar 这个其实是很不方便的。可以在win上编写bat脚本去运行jar包的。2 将jre和待执行的jar包存放到一个目录下(和bat文件在同一目录下),其中jar是需要能通过java -jar 运行的。1 编写bat脚本。
2024-11-19 10:15:45
297
原创 pmap命令
pmap(process memory map)用于查看进程的内存映射,即进程的内存地址空间。pmap 从文件中获得相关数据,用来观察系统中指定进程的地址空间分布和内存状态信息,包括进程各个段的大小。对查看完整的进程地址空间很有帮助。
2024-07-11 17:30:05
1107
原创 sort命令
sort是在Linux里非常常用的一个排序命令。将文件的每一行作为一个单位,从首字符向后,依次按ASCII码值进行比较,默认将他们按升序输出。
2024-07-11 16:46:48
532
原创 top命令详解
top 是 Linux 系统中的一个动态监视工具,它可以实时显示系统中各个进程的资源占用状况的统计信息,类似于 Windows 的任务管理器。通过 top 命令,用户可以快速查看系统的运行状态,以及各个进程的 CPU、内存等使用情况。
2024-07-11 15:21:21
902
原创 spring cloud alibaba可落地灰度发布方案
spring cloud alibaba是由阿里在spring cloud 基础上开源的微服务框架。提供了更高性能的注册中心/配置中心组件:nacos限流组件:sentinel分布式事务:seata最重要的是spring cloud alibaba把dubbo框架整合,在服务之间调用时从http协议变成了rpc调用,大大提升了服务之间的通信效率。
2024-07-05 10:16:22
888
原创 hutool工具实践-验证码
验证码功能位于包中,核心接口为ICaptchacreateCode创建验证码,实现类需同时生成随机验证码字符串和验证码图片getCode获取验证码的文字内容verify验证验证码是否正确,建议忽略大小写write将验证码图片写出到目标流中其中write方法只有一个ICaptcha实现类可以根据这个方法封装写出到文件等方法。为一个ICaptcha抽象实现类,此类实现了验证码文本生成、非大小写敏感的验证、写出到流和文件等方法,通过继承此抽象类只需实现方法定义图形生成规则即可。
2024-06-03 09:13:59
1907
原创 sed命令详解
sed(Stream EDitor),是一种流文件编辑器,其特点为:1、非交互式。处理文件时,把当前处理的行存储在临时缓冲区(称为“模式空间”(Pattern Space))中,即它是基于模式匹配过滤及修改文本。2、逐行处理,sed 命令在缓冲区中一次处理一行内容,处理完成后,把缓冲区的内容送往屏幕,接着处理下一行,直到文件末尾。
2024-05-27 15:24:38
1581
原创 bytebuddy入门
Byte Buddy 是一个代码生成和操作库,用于在 Java 应用程序运行时创建和修改 Java 类,而无需编译器的帮助。除了 Java 类库附带的代码生成实用程序外,Byte Buddy 还允许创建任意类,并且不限于实现用于创建运行时代理的接口@Test// 加载指定路径下的jar包// 系统类加载,如果不加载会找不到jdk本身的类// 此处调用不会触发类的加载.make();
2024-05-24 15:26:22
1489
原创 easy-rule规则引擎使用
轻量级的规则引擎,易于学习的api简单来说,规则引擎就是一个函数:y=f(x1,x2,…,xn)将业务代码和业务规则分离,解耦业务决策和业务代码的绑定关系。
2024-05-22 11:24:57
1651
原创 quartz源码分析
在上一章quartz的使用-优快云博客有讲关于quartz的使用,包括常规使用,结合mysql存储做分布式调度和结合springboot使用,本篇文章主要做定时调度的主流程源码分析。
2024-04-17 09:52:54
1420
原创 quartz的使用
是OpenSymphony开源组织在Job scheduling领域又一个开源项目,完全由Java开发,可以用来执行定时任务,类似于java.util.Timer。功能更强大。
2024-04-16 17:24:03
481
原创 arthas的搭建和使用
Arthas 是一款线上监控诊断产品,通过全局视角实时查看应用 load、内存、gc、线程的状态信息,并能在不修改应用代码的情况下,对业务问题进行诊断,包括查看方法调用的出入参、异常,监测方法执行耗时,类加载信息等,大大提升线上问题排查效率。
2024-04-11 15:46:10
1458
原创 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
1399
原创 SpringMvc之映射器HandlerMapping
在springmvc的处理流程中,第一步就是查询请求对应的映射器,然后组装成处理器链处理请求,本文意在梳理该过程在springboot actuator中有很多的监控信息可以通过暴露"端点"的方法让外部获取应用的信息,而端点的暴露即和以上过程大体相当在图3所示的springboot actuator的自定义端点是通过WebMvcEndpointHandlerMapping暴露的。
2024-03-26 17:11:09
1639
原创 JSqlParser的使用
JSqlParse是一款很精简的sql解析工具,它可以将常用的sql文本解析成具有层级结构的语法树,我们可以针对解析后的节点进行处理(增加、移除、修改等操作),从而生成符合我们业务要求的sql,比如添加过滤条件等等JSqlParse采用访问者模式项目结构非常简单,从截图上看就5个包。如果对源码感兴趣的可以直接从github上下载源码包调试。其中expression包包含了所有的sql表达式的抽象对象:statement包含了所有sql语句的类型,比如:增删改查,ddl语句,rollback语句等等。
2024-03-22 18:24:14
4600
原创 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
1154
原创 xxl-job
XXL-JOB是一个分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线,开箱即用执行器:通过xxl-job注册到dashboard上的应用,可以理解成xxl-job的一个客户端任务:注册到dashboard上的每个应用的任务先简单理解即可,后续在源码分析篇会详细介绍。
2024-03-15 11:29:34
914
原创 Jmeter扩展---自定义取样器
Jmeter已经内置了各种协议的取样器,已经能满足常用的性能压测需求。且在前面一章Jmeter扩展开发--自定义java取样器-优快云博客中也有关于Java取样器的扩展开发,不过有时候我们期望能定制自己的取样器和界面。为此,需要对Jmeter做扩展,自定义取样器开发在自定义取样器开发中有两个类需要重点介绍该类是自定义Jmeter取样器的ui显示类,可以直接像操作Swing一样编辑Jmeter取样器的ui界面,如上图2所示。
2024-03-14 14:29:45
1432
原创 Jmeter扩展开发--自定义java取样器
jmeter内置了包括:http、https、tcp等各种协议的支持,通常情况只需要做简单的参数配置即可使用。
2024-03-14 12:19:00
1039
原创 java非对称加解密
非对称加密:加密和解密使用不同的秘钥的加解密方法。一般的,用公钥做加密,私钥做解密使用常用的加解密有:RSA、ECC、DSA,在java中使用最多的是RSA。
2023-12-25 15:12:55
465
原创 java对称加密
Advanced Encryption Standard)是一种对称加密算法,AES 算法比 DES 算法更安全,加密和解密速度也更快注意:AES加密算法的key的长度必须是:16、24、32。
2023-12-22 18:26:56
442
原创 java常用密码简介及代码实现
当 URL 路径或者查询参数中,带有中文或者特殊字符的时候,就需要对 URL 进行编码(采用十六进制编码格式)。URL 编码的原则是使用安全字符去表示那些不安全的字符使用示例public static final String DEMO_STR= "法律";@Test又叫Hash算法、散列函数、数字摘要、消息摘要,是一种单向算法(不可逆),可以根据该算法对目标信息生成固定长度的唯一hash值,不能逆向计算(不可通过计算的hash值反推目标信息)。
2023-12-22 17:07:43
601
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
2161
原创 自定义maven插件
一般的maven插件使用时需要引入插件的gav(groupId,artifactId,version)就可以正常使用了。一般的结构如下: 包含插件的gav,还有一组可执行器<execution>。在每个<execution>里面包含有如下结构一个可执行器的结构如上,其中各标签释义如下:<configuration>表示该可执行器的配置项,后续在自定义实现maven插件中会详细的描述<id>就是取个名字,别重复就行了<phase>表示该可执行器在maven的生命周期的哪个阶段生效,如果不配置,使用插件默认的,
2023-12-20 16:36:03
1079
原创 日志门面slf4j和各日志框架
简单日志门面(Simple Logging Facade For Java)SLF4J主要是为了给Java日志访问提供一套标准、规范的API框架,其主要意义在于提供接口,具体的实现可以交由其他日志框架,如log4j、logback、log4j2。对于一般的Java项目而言,日志框架会选择slf4j-api作为门面,配上具体的实现框架,中间使用桥接器完成桥接。所以我们可以得出SLF4J最重要的两个功能就是对于日志框架的绑定以及日志框架的桥接。
2023-12-08 14:37:47
1263
原创 log4j2日志框架使用
log4j2支持四种类型的配置文件:XML/JSON/YML/Properties(后缀支持的不只4种),由四种解析器完成。最终会由ConfigurationFactory#getConfiguration完成配置文件加载初始化。log4j2的配置文件语法树如下:结构清晰。
2023-12-08 11:50:19
616
原创 log4j日志框架的使用
当调用logger.info打印日志时,和logback的流程基本一样,也是先组装成一个LoggingEvent对象,然后一次遍历logger对象的Appender列表(无appender列表的继承子父对象)完成日志输出。log4j的配置文件可以理解成有2部分 1根日志记录器 2 各appender(输出源)配置。在loggerManager的静态代码块中,完成对配置文件的读取和解析。然后组装成框架的Logger对象、appender对象完成初始化操作。loggerManager的静态代码块。
2023-12-07 17:39:25
739
原创 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
879
原创 docker启动nginx
在nginx中,server_name指令用于指定虚拟主机的域名或IP地址。它可以用于匹配请求的主机头(HTTP请求头中的。该配置打开了下划线的自定义请求头可以被转发,默认nginx的转发是不会转发下划线的请求头。字段),从而确定哪个虚拟主机应该处理该请求。
2023-12-05 14:18:40
547
原创 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
811
原创 hadoop集群搭建
hadoop1 hadoop2 hadoop3 ip分别为:192.168.56.211,192.168.56.212,192.168.56.213。
2023-11-09 15:09:58
724
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
1106
原创 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
367
原创 docker搭建rabbitmq集群
如果在执行 "rabbitmqctl join_cluster --ram rabbit@node2"报错,分别进入三台虚拟机docker容器中:docker exec -it {containerName} bash。分别在3台机器上执行:docker pull rabbitmq:3.9.5-management。浏览器访问:http:192.168.56.104:15672。#跟机器1的消息队列建立关系。#跟机器1的消息队列建立关系。1 拉取rabbitMq镜像。2 启动rabbitMq容器。
2023-10-10 15:23:15
450
原创 使用docker搭建kafka集群、可视化操作台
注意:103和104启动kafka的区别就是指定不同的KAFKA_BROKER_ID,如果是以配置文件启动的,在配置文件中修改即可。本次基于docker搭建kafka集群,zookeeper使用单实例。b 启动zookeeper容器。e 拉取kafka-map镜像。f 启动kafka-map容器。a 拉取zookeeper镜像。c 拉取kafka镜像。d 启动kafka容器。a 拉取kafka镜像。b 启动kafka容器。
2023-10-10 14:05:14
690
1
原创 使用docker创建redis实例、主从复制、哨兵集群
masterauth 123456 ------这是因为,当master节点down之后再次重启,会从新的master节点同步数据,需要密码验证。appendonly yes -----持久化。appendonly yes -----持久化。c 切换到redis配置文件映射目录/mydata/redis/conf。appendonly yes -----持久化。
2023-10-09 15:10:14
302
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人