- 博客(170)
- 资源 (42)
- 收藏
- 关注
原创 磁盘满造成业务异常问题排查
果然,挂载日志目录/applog的分区/dev/mapper/appvg-applog只有5G已用100%了。最近遇到一个因为磁盘满导致的问题,分享一下,希望能够帮助到以后遇到同样问题的朋友。想想之前都好好的,最近又没有更新,为什么突然不能使用了呢?但是没有提示权限问题,一般也不会有人没事去改目录文件权限。早上突然收到业务老师反馈说:上传文件不能正常上传了。第一反应是是不是用人动了目录权限,导致日志不能写了。所以,猜测是日志目录磁盘占满了。删除之后,果然系统马上就正常了。图片这个是处理之后的示意图。
2025-01-10 13:32:26 467
原创 PostgreSQL索引与查询计划
我们创建索引是为了优化查询,那我们如何衡量我们创建的效果如何呢?因为我们查询的id通过索引就能查到,不用再回表了。我们可以通过explain关键字来查看查询计划。我们只需要做一点点改动,就能让查询变成索引扫描。部分测试数据可以参考后面的附录。把*改成id就可以。
2025-01-10 09:04:52 441
原创 Python包模块与模块导入查找顺序
无论是为了看懂别人的代码,还是为了更好的组织我们的个人的工程代码,了解一下Python的模块和包都非常有必要。另外,知道搜索模块的顺序,也能帮助我们更好的理解一些常见的错误,方便我们快速定位问题。
2024-12-13 10:21:52 906
原创 Python中的特殊方法(魔术方法)
在数学中,我们的加法运算并不一定是我们通常的算术加法(+),例如群的加法、矩阵的加法,又比如说大整数加法。在Java中,就只能定义类调用对应的方法来实现。例如:xx.add(yy)在Python中我们就可以实现__add__方法来实现自定义的加法操作,这样我们可以直接使用xxx+yyy来实现我们自己对+的定义。类似的Python中还提供了大量类似的这一类方法。
2024-12-10 09:04:54 840
原创 PostgreSQL最常用数据类型-重点说明自增主键处理
- 查看第1个最后1个enum_first('超大杯'::cup_enum),enum_last('大杯'::cup_enum);-- 查看枚举值enum_range('大杯'::cup_enum,'超大杯'::cup_enum) as r3;
2024-11-29 09:13:43 1442
原创 git rebase-优雅合并与修改提交
在Git核心概念图例与最常用内容操作(reset、diff、restore、stash、reflog、cherry-pick)中我们已经介绍了git的最常用实用的命令。在上面说的那篇文章中,我们只是简单提了一下rebase。是因为rebase比较复杂,并且用的相对较少,因为我们通常更喜欢用merge。但是rebase绝对是有强迫症朋友的福音,尽管rebase非常危险,但是它非常优雅。能让我们的提交历史看起来简洁清晰。这一篇我们就来简单感受一下rebase命令的魅力吧。
2024-11-28 09:01:27 1266
原创 Java国际化时间-理解时区、ZonedDateTime、OffsetDateTime
我国现在没有实行夏令时和冬令时,但是欧洲北美很多还是会实行夏令时和冬令时,亚洲像印度、巴基斯坦也实行夏令时和冬令时。例如,美国西5区,中国东8区,中国时间-13小时就是美国时间了,这对于冬令时没有问题,对于夏令时有问题。再说,美国不像中国统一用1个时区,不管你是在上海、北京、香港、台北用的都是东8区。每个地区可能夏令时和冬令时的规定也不太一样。所以,做国际化的时候一定要注意。所以在处理有夏令时和冬令时的地区的时候,不能简单的用offset来计算。美国用多个时区,例如纽约西5区,芝加哥中部时间用的是西6区。
2024-11-27 09:07:40 791
原创 PostgreSQL常用字符串函数与示例说明
regexp_replace(string, pattern, replacement [, flags ]): 使用正则表达式替换字符串中的子字符串。PostgreSQL除了like,还支持正则匹配,这个就慎用了,可以作为的附加条件,而不要作为过滤的主要条件,特别是大表。start从1开始,如果小于1,自动修正为1,length如果大于最大长度,自动修正为最大长度。coalesce主要用来处理空,它返回第1个不为空的值,可以接受整型或者字符串,但是不能混有。除了拆分为数组,还可以拆分为table。
2024-11-20 09:08:22 1293
原创 PostgreSQL常用时间函数与时间计算提取示例说明
主要用于计算一些特殊时间,函数说明截断成指定的精度,第1个参数指定精度select date_trunc('year',now()) as 当年第1天,date_trunc('year',now() + interval '1 year') - interval '1 day' as 当年最后1天,date_trunc('month',now()) as 当月第1天,
2024-11-18 09:23:16 2002
原创 PostgreSQL存储过程-pgAdmin
declare是用来声明变量,必须先声明才能使用。do $$DECLAREname text:='娘子';BEGINraise notice '啊哈,%',name;END$$可以使用table_name%ROWTYPE来定义和表相同结构的行可以使用table_name.column_name%TYPE来定义和指定表指定列有相同数据类型,这样表的数据类型变了,存储过程可以不用变可以通过DEFAULT关键字设置默认值可以使用CONSTANT关键字来定义常量,不允许修改。
2024-11-11 09:17:51 1293
原创 Linux sed命令详解-结构(清楚结构便于理解记忆)-选项-模式空间与暂存区(多示例、多图)
指定的命令模式不同,相当于都是独立的指令,如果我们要对同一个模式匹配,做多个动作,怎么办呢?上面这个命令也非常简单,但是它几乎包含了sed的全部结构,我们在它的基础上稍微变一下,还能一眼看穿吗?查看我们已经有grep了,sed主要用来预处理文件,所以通常是find的最佳搭档。sed命令的$表示最后1行的时候,不是只文件的最后一行,而是指命令处理的最后1行。这个在处理一些特殊字符的时候非常有用,例如后面我们要说的模式空间测试的时候。所以,我们想要一眼就可能知道sed在干什么,就一定要清楚sed结构。
2024-11-08 09:06:22 768
原创 Linux awk命令详解-参数-选项-内置变量-内置函数-脚本(多图、多示例)
awk可以写非常复杂的命令,有时候写在1行之中不好看,可以将命令写作文件中,然后像sed一样通过-f参数来执行脚本。这个非常重要,只有理解了awk的基础结构,才能一眼看清awk在做什么,也便于记忆,不然过几天就忘了。awk中可以使用system()来调用系统命令。我们先看一些简单的示例,来理解参数、变量。例如,下面文件要如何分割其中的数字呢?注意是大写的BEGIN END。测试文件awk.txt。
2024-11-07 09:11:42 3434 1
原创 Linux grep命令详解(多图、多示例)
v参数是反选,最常用的就是在ps -ef | grep xxx的时候会把grep本身也打印出来,这时就可以用-v参数过滤掉grep。灵活应用grep能帮我们省很多事,例如很多日志可以直接在服务器查看了,就不用再单独下载下来。grep是grep、awk、sed这三剑客中最常用的命令了,相对也简单一些。扩展正则表达式(ERE)基本上和我们平常使用的正则表达式支持的元字符一样。ERE(egrep)中使用反斜杠转义表示普通字符,例如,要匹配?是不是有点乱,所以,为了避免混淆,建议正则直接使用egrep吧。
2024-11-06 10:20:56 1620
原创 Linux脚本参数、函数、函数返回值与return的区别
其实叫echo方式不太准确,因为result=$(add 100 200)是将add函数中所有的输出赋值给result,如果还有其他输出,结果就不准确了。我们看到result结果是300,sum为空,因为在add函数中我们使用local sum将sum定义为了局部变量。如果将add 100 20修改为add 100 200,那结果又是怎样的呢?在shell脚本中我们执行命令,经常需要获取结果,怎么办呢?答案是:sum的值是300,result的值是44。重点看一下$@,他可以帮我们获取指定位置的参数。
2024-11-05 09:09:23 888
原创 Linux脚本循环(for、while、until)
seq 0 2 100表示:初始值0,步长2,结束值100。2}表示:初始值0,结束值100,步长2。这种风格最像高级程序中的for循环。计算1到100之间的偶数和。计算1到100之间的偶数和。
2024-11-04 13:09:57 338
原创 Linux脚本(if、else、case、test中括号)
shell中没有不能匹配个数,类似于正则[0-9]{3,7}这种。逻辑运算or(||、-o) and(&&、-a)如果if和then同行,得加分号(😉。可以使用test来代替中括号([])
2024-11-04 09:19:02 796
原创 PostgreSQL安装用户、角色与权限管理
记得使用-d指定数据库,默认的超级用户和创建的数据库都是postgres,如果只修改了超级用户名称,psql的时候记得使用-d指定数据库,否则默认连接的就是和用户名同名的数据库。psql命令非常方便,提供了很多默认选项,如果没有修改过默认配置,用起来非常方便顺手,但是如果修改了默认配置,就一定要多注意。PostgreSQL中用户与角色基本是一个东西,唯一区别是角色没有登录权限,用户有登录权限,可以登录。所以,我们涉及权限的时候,可以把权限分配给角色,在为用户指定不同的角色(一个用户可以有多个角色)
2024-10-30 09:06:11 1422
原创 VScode任务配置详解(task.json与launch.json)
vscode非常强大,有很多可以自定义的东西,但是也不容易上手,例如搭建一个新环境是如何配置运行程序。本篇文章就将详细说明vscode的如何配置任务来完成编译等操作,如何配置launch来debug。tasks.json:配置和管理自动化任务,如编译、构建、运行脚本…launch.json:配置调试器,定义调试会话的启动和运行参数。
2024-10-24 09:40:36 4041 2
原创 Go环境搭建(vscode调试)
如果出现go.tools.intall not found 可以重启一下VScode,确保path中go的bin目录配置正确。推荐使用moudle模式,这样三方包就在$GOPATH/pkg/mod目录下,可以允许有多个不同的版本,多个项目都可以共享。这就有点像Java的包管理模式了,不用每个项目都去处理GOPTH,也不需要每个项目都去下载相同的三方包了。go get和go intall下载的三方包就会安装到GOPATH中。我们下载的免安装版本,直接解压就可以。
2024-10-21 09:10:51 1940
原创 Git核心概念图例与最常用内容操作(reset、diff、restore、stash、reflog、cherry-pick)
本文将介绍Git几个核心概念,和最常用的几个内容操作命令:首先我们来看一下几个非常重要的前置概念我们执行上面命令就会生成一个.git目录【工作区】add就到【暂存区】commit就到【本地仓库】objects目录中保存的是add到暂存区和commit到本地仓库的文件HEAD是一个文本文件,你们内容是HEAD当前指向的分支:ref: refs/heads/feature-view我们首先来看一下我们最常用的reset操作。reset是重置,他重置的是commit我们最最常用的reset的2个操作:res
2024-10-17 16:15:09 1164
原创 浏览器服务端文件下载控制(安全阻止、文件浏览器打开还是下载行为控制)
随着浏览器的发展,有很多安全方面的限制,对我们的文件下载行为产生了很大的影响。在JavaScript下载文件(简单模式、跨域问题、文件压缩)我们已经介绍了一些下载问题。文件下载安全设置浏览器和服务端如何控制文件是下载还是打开。
2024-10-11 15:09:41 1732
原创 JavaScript下载文件(简单模式、跨域问题、文件压缩)
相信各位开发朋友都遇到过下载的文件的需求,有的非常简单,基本链接的形式就可以。有的就比较复杂,涉及跨域和压缩文件,例如,文件在OSS中,有的oss不支持压缩文件,要下10个文件就得弹10个下载出来。业务老师多半是没有办法接受这种情况,怎么处理呢?这就涉及到跨域获取文件并压缩文件了。本文会介绍一下简单下载和下载OSS文件并压缩。
2024-10-10 16:56:39 1612
原创 Java GC:GC算法、GC回收器、GC日志
阶段2回收了部分空间,但是比例还是相当低的,不过G1已经知道各个Region的回收情况了。因此可以优先回收垃圾最多的Region,这些Region既包含了新生代,也包含了老年代。被清理的Region内的存活对象会被移动到其他Region,避免内存碎片。我们可以通过下面的代码和vm参数来简单看一下垃圾回收。这次回收,新生代的大小会根据实际运行情况调整。G1回收阶段2:并发标记周期。G1回收阶段3:混合回收。
2024-09-27 11:08:12 1008
原创 Linux top命令详解与重点内容说明
top命令非常强大,也非常复杂,很难面面俱到,也没有必要,这篇文章的目的是介绍重点,授人以渔,希望帮助朋友们以后遇到文中没有介绍的知识点也能举一反三。通常模式下,load average统计的是所有task队列的数量,所有,需要除以逻辑CPU的数量,如果这个值大于等于3就说明负载偏高。例如:load average的值为6,逻辑cpu的核心数为4,6/4=1.5,小于3,说明cpu负载正常,瓶颈不在CPU上。buffer缓冲区,通常是文件的meta信息,cache是缓存,通常是内存页page。
2024-09-20 15:44:56 2703
原创 关于【禁止new对象时在for循环内定义申明变量】
不知道是谁最先提出了一个不要将变量定义在循环内。然后我们在代码扫描中有一项是:【禁止new对象时在for循环内定义申明变量】我也好奇为什么不能?是影响了性能?还是影响了内存?还是影响了垃圾回收?变量定义在for循环内,每次都要为变量引用分配空间,效率低变量定义在for循环内,有引用,不利于内存回收真的如此吗?我们先从代码分析一下。综上所述,【禁止new对象时在for循环内定义申明变量】并没有什么意义。让变量作用域变大,存在被无意引用的风险更容易产生变量名冲突可读性变差。
2024-09-14 16:32:36 912
原创 JVM字节码与局部变量表
x:可以是i(int、byte、char、short、boolean类型)、l(long类型)、f(float类型)、d(double类型)、a(引用类型)x:可以是i(int、byte、char、short、boolean类型)、l(long类型)、f(float类型)、d(double类型)、a(引用类型)每个线程的帧栈是独立的,每个线程中的方法调用会产生栈帧,栈帧中保存着方法执行的信息,例如局部变量表。局部变量表是一个数组,大小在编译时就确定了,方法运行期间是不会改变局部变量表的大小。
2024-09-13 16:57:28 1513
原创 Camunda如何通过外部任务与其他系统自动交互
Camunda组件与服务与基本操作Camunda ScriptTask SendTask ReceiveTask操作Camunda中强大的监听服务Camunda最基本、最常用的表梳理及如何通过服务定位到相关表这一篇我们介绍一下Camunda的外部任务。很多时候,任务并不是业务老师来完成,而是外部系统来完成。这种情况,如何交互呢?提供接口吗?Camunda提供了更好的方式,外部服务:只需要在流程图中创建一个服务节点,配置为External就可以。
2024-07-14 10:01:55 1517
原创 Camunda最基本、最常用的表梳理及如何通过服务定位到相关表
文章目录简介Camunda服务根据流程说明Camunda最基本常用表流程部署实例启动实例启动之后的表数据完成任务之后表数据有哪些变化通知接受消息节点如何通过服务定位相关表常用网关表简介资源相关表运行时相关表用户、组相关表历史数据相关表通用数据相关表具体表说明act_ge_bytearray(二进制数据表)act_ge_property(流程引擎配置表)act_ge_schema_log(数据库脚本执行日志表)act_hi_actinst(历史的活动实例表)act_hi_comment(历史流程审批意见表)a
2024-07-13 21:35:57 776
原创 Threejs环境、透视相机、坐标系、光源
透视相机就是和我们生活中的相机一样,和眼睛看到的也差不多,近大远小,距离相机近的物体显示的大,距离相机远的物体显示的小。//创建透视投影相机,视角45度,画幅比例 宽比高,近平面距离0.1,远平面1000。相机是一个非常重要的概念,我们最终看到的都是摄像机看到的场景中物体。// 设置坐标位置,否则相机和物体默认都在坐标原点啥都看不见。// 设置坐标位置,否则相机和物体默认都在坐标原点啥都看不见。// 设置坐标位置,否则相机和物体默认都在坐标原点啥都看不见。//渲染循环,以每秒60次的频率来绘制场景。
2024-07-06 17:24:00 868
原创 RestTemplate使用详解
对于http请求之前一直用apache的httpclient,已经习惯了,特别是使用fluent之后,更加方便了。所以一直没有怎么太过关注RestTemplate,最近才发现在Spring环境中使用RestTemplate还是很方便。特别是处理带有多重泛型的复杂类型时,httpclient需要一层一层的自己处理,RestTemplate只需要指定类型参数ParameterizedTypeReference就能完美解决。
2024-05-29 14:22:41 1241
原创 Java对象大小计算与MAT内存泄露分析
String内存大小 = value内存大小16字节 + 对象头12字节 + int 4字节(hash) + 数组value引用4字节 + 对齐4字节= 40字节。MemoryCustomObject对象头12字节 + s引用4字节 + i变量4字节 = 20字节 + 4字节padding = 24字节。对象头12字节 + 3个引用 * 4字节 + 1个int * 4字节 = 28字节 + 4字节padding = 32字节。
2024-05-23 14:54:50 1184
原创 基于Spring EL表达式处理业务表达式
SpringEL是Spring表达式,功能非常强大。我们可以能在@Value、@Cachable、自定义注解中的应用EL表达式,当然这些不是本文的重点。本文的重点是如何基于SpringEL来定制业务表达式,以便于简化我们工作,减少自己去处理解析表达式的复杂逻辑。一个简单的场景:例如,业务希望文件名是动态的,根据实际的年、月、日、季以及其他的业务数据来生成。因为有非常多的文件类型,业务希望通过表达式根据实际业务数据生成最终文件名。
2024-05-02 16:22:41 1180 1
原创 JavaAgent的agent与attach
javaagent是什么?从名字agent也可以看出,是一种代理。javaagent用来做什么?本质上是对class的一种增强,用来实现一些通用功能,例如链路追踪等。和AOP有什么区别?AOP和javaagent本质上都是通过修改class来实现额外功能,对代码逻辑本身无侵入,在运行时侵入。AOP通常是项目内的代理增强,通常是增强业务逻辑,例如:公用授权检查逻辑。
2024-04-22 16:37:59 848
原创 Linux find命令详解与实际使用
exec选项处理匹配到的文件时,find命令将所有匹配到的文件一起传递给-exec执行,系统传递给-exec的命令长度有限制,如果find的结果比较多,可能会出现溢出错误。这种情况就可以使用xargs命令,find命令把匹配到的文件传递给xargs命令,而xargs命令每次只获取一部分文件而不是全部,它会先处理最先获取的一部分文件,然后处理下一批,直到全部处理完成。另外,在部分系统中-exec选项会为处理每一个匹配到的文件而发起一个相应的进程,可能导致进程过多,xargs命令则只有一个进程。
2024-04-09 15:49:03 1295
原创 Java锁与Redisson锁的坑
当线程没有获取到锁,去执行unlock时,就会出现IllegalMonitorStateException异常。习惯了,只检查是否在finally中,看起来没啥问题,运行一下似乎也没有问题。我们只需要做一点点改动就能在运行中看出问题,就是获取锁之后,让它多运行一会儿。只需要判断一下是否获取锁,获取到锁的时候才去unlock就可以。我们先看一下Java的锁,再来继续redisson这个问题。同样2个问题,下面的方式使用锁是否有问题?如果有问题,是什么问题呢?如果有问题,是什么问题?现在,看出问题了吗?
2024-03-26 13:13:05 691
原创 jacoco使用示例与常用配置说明
有时候,对于一些重要的项目或者重点类,我们希望重点测试,但是我们怎么评估测试质量呢?这个时候,或许就需要jacoco了。接下来,我们就来了解一下jacoco的基本概念与使用。以及在某些条件不允许的情况下,我们如何跳过某些类,再结合mvn参数,让我们的单元测试报告看起来不那么乱。jacoco会分析:指令(C0)、分支(C1)、行、方法、类型和循环复杂度的覆盖率jacoco结果显示:如果上面内容比较抽象,可以看看下面具体实例。
2024-03-23 16:56:56 3761 2
原创 文件编码探测与原理、Java实现与构造让探测器失效文件
文章目录构造让探测器失效的文件文件编码探测原理探测器Java实现版本测试构造让探测器失效的文件我们用vscode打开一个文本文件的时候,默认会使用UTF-8编码,所以当文件不是UTF-8编码的时候就会乱码。但是,好像notepad–这类编辑器就似乎总是能以正确的编码打开文本文件。为什么呢?notepad–这类编辑器真的总能以正确编码打开文件不出现乱码吗?答案是否定的,不信,用下面的代码生成一个文件试一试,notepad–类编辑器是否能正确打开。 @Testpublic void write(
2024-03-21 17:21:16 434
原创 CIDR网络地址、广播地址、网段区间计算说明与计算工具
最大的主机地址是广播地址-1:10101100000100010000001111111110(172.17.3.254)网络位数,数子网掩码前面1的个数:22,因此网络号可以写成:172.17.0.0/22,很多网策支持这样配置。相信很多朋友长时间不看也忘了,所以,这里记录一下,并提供了一个工具类用来计算相关值。我的IPv4地址是:172.17.1.6,子网掩码是:255.255.252.0。有了最小的主机地址和最大的主机地址,现在再看第一个问题,是不是清晰了。上面的问题你能回答几个?
2024-03-15 16:56:55 1427
原创 jasypt配置敏感信息加密解密及其原理
比如我们要定义一个使用RSA加密方式的,我们只需要实现StringEncryptor接口就可以。// 更好的方式是在RsaStringEncryptor直接指定@Component("jasyptStringEncryptor") // new的方式不会直接处理EnvironmentAware return new RsaStringEncryptor();} }
2024-02-29 13:50:35 1885
effective java 中文版pdf和英文版pdf 两份
2016-11-01
svn客服端服务端套装
2020-12-21
hbase-helper.zip
2020-07-27
ip纯真数据库与解析工具类
2020-04-08
ip4国家ip段数据库(csv格式,操作和查看都非常方便)
2020-01-09
hive-win-bin.zip
2019-07-03
jdk8源码.zip
2019-06-27
jdk加密无政策限制jar包及示例
2019-01-09
windows-openssl安装包
2019-01-08
grunt学习资料
2017-10-27
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人