- 博客(123)
- 资源 (2)
- 收藏
- 关注

原创 【实战总结】SpringMVC架构升级SpringCloudAlibaba
【实战总结】SpringMVC架构升级SpringCloudAlibaba
2023-07-18 18:02:05
796

原创 KANO模型-产品需求调研利器
KANO 模型是东京理工大学教授狩野纪昭(Noriaki Kano)发明的对用户需求分类和优先排序的有用工具,以分析用户需求对用户满意的影响为基础,体现了产品性能和用户满意之间的非线性关系。
2023-04-12 19:08:56
1914

原创 【实战总结】JVM内存溢出问题排查
这里先说一下结论,堆内存总共3.1G,Suspect1问题指向一个慢SQL,间接导致1.7G内存无法回收,Suspect2 由com.mysql.jdbc.ByteArrayRow导致1.2G内存无法回收,原始sql指向与Suspect1同样的慢SQL,这样就基本可以确定是这一条慢SQL导致的内存溢出。打开MAT,File--->open dump file--->选择本次输出的dump文件,可以看到如下总览页面,点击Leak Suspects查看内存泄露分析。一周前系统有一次投产,之后再没有更新过系统。
2023-01-06 00:03:40
8919
1
原创 Arthas实现热更新代码
Arthas 是一款线上监控诊断产品,通过全局视角实时查看应用 load、内存、gc、线程的状态信息,并能在不修改应用代码的情况下,对业务问题进行诊断,包括查看方法调用的出入参、异常,监测方法执行耗时,类加载信息等,大大提升线上问题排查效率。
2023-05-21 17:29:54
1932
1
原创 Volatile 线程可见性
线程不可见原因:每个线程会将成员变量保存一份备份到各自线程的工作内存,而各线程之间内存是私有的,除非更新到主内存,才会被其他线程看到。
2023-03-23 19:45:24
167
2
原创 如何写出优雅的代码
方法对应的是一个行为,每个方法应该独立做一件事,如果要做多件事应该通过调用多个不同方法实现,好的方法应该是高内聚、低耦合。说白了就是别把一大段错综复杂的逻辑都塞到一个方法里,按照行为拆一拆,拆出一些能复用的方法。
2023-02-11 00:30:08
553
原创 我的2022总结和2023展望
珍惜当下的经历,生活就是一段段经历、修心,感受不同的经历,不要等到某个时候再去做什么事,人生没有过渡,你不能等到生活不再艰难了,才决定开始快乐。
2023-01-19 20:45:00
1876
1
原创 Logback、Log4j2、Log4j全局限制单条日志打印长度
例如限制单条日志长度10k,将%m替换为%maxLen{%m}{10240},未测试效果。例如限制单条日志长度10k,将%msg替换为%.-10240msg,从左侧截取固定长度。例如限制单条日志长度10k,将%m替换为%.10240m,但是会从末尾开始截断。
2022-11-17 20:30:33
8740
原创 pgloader部署及使用-mysql迁移pg
pgloader用于将mysql数据库迁移到pg数据库,之前用DTS进行迁移,自增主键没有正常迁移,所以改为使用pgloader。pgloader部署在linux环境,支持apt-get 方式、源码部署和docker部署。pgloader官网:https://pgloader.io/pgloader mysql迁移pg官方技术文档服务器系统版本#lsb_release -aLSB Version: :core-4.1-amd64:core-4.1-noarchDist...
2021-02-05 16:22:27
4098
2
原创 jenkins自动清理构建
jenkins自动构建随着项目和构建次数的增加,服务器磁盘会被撑爆,因为/var/lib/jenkins/jobs/项目名/modules下会保存每次构建的jar包。可以通过配置丢弃自动构建解决。解决办法:进入jenkins项目-配置-勾选Discard old bulids(丢弃旧的构建),并设置发布包保留天数和保留个数。这样在下次构建的时候就会按照策略清理构建产生的发布包。...
2021-01-14 16:06:40
2536
1
原创 druid 数据库密码加密
druid ConfigFilter wiki文档https://github.com/alibaba/druid/wiki/%E4%BD%BF%E7%94%A8ConfigFilter生成密钥cd C:\Users\Administrator\.m2\repository\com\alibaba\druid\1.1.6java -cp druid-1.1.6.jar com.alibaba.druid.filter.config.ConfigTools XsF10@123!!publi
2020-11-24 10:11:25
844
原创 idea Terminal git log 中文乱码
idea Terminal git log 中文乱码IDEA terminal git commit时输入中文无法看到光标移动,而且git log显示中文出现如下乱码:解决办法:在git安装目录下找到etc/bash.bashrc文件,在文件的最后添加: export LANG="zh_CN.UTF-8" export LC_ALL="zh_CN.UTF-8" 如果git bash中可以正常显示中文,可忽略该条。在IDEA Ter...
2020-11-12 10:52:10
254
原创 jenkins DingTalk配置钉钉群消息通知
由于jenkins邮件通知经常被冻结掉,而且通知效果不好,正好公司使用钉钉交流比较多,有专门的部署发版通知群,所以决定使用jenkins结合钉钉机器人在构建完成后自动发送消息至钉钉群中。从网上搜索了很多帖子建议使用Dingding[钉钉] Plugin,但我在插件管理中没有找到这个插件,我的jenkins版本是Jenkins 2.240,这是2020-06-08发行的版本,目前来看是比较新的版本,不知道为什么搜不到插件。但是插件管理中找到一个叫DingTalk的插件,配置和使用更加简单。jenkin
2020-09-29 15:46:03
1860
1
原创 docker异常:Error response from daemon: Get https://harbor/service/token: no such host
当从docker harbor私服拉取镜像时,报如下错误Error response from daemon: Get https://10.10.8.1xx/v2/test/tomcat/manifests/8.5.57-jdk1.8.0_65: Get https://harbor/service/token?scope=repository%3Atest%2Ftomcat%3Apull&service=harbor-registry: dial tcp: lookup harbor
2020-09-29 15:17:41
2469
原创 docker异常:Error response from daemon: Get https://10.10.8.1xx/v2/: x509: certificate signed by unknow
在执行docker-compose up命令时抛出如下异常:Error response from daemon: Get https://10.10.8.1xx/v2/: x509: certificate signed by unknown authority报错中的ip地址是harbor私服地址,使用docker-compose up从harbor拉取镜像时缺少权限。尝试使用以下方式解决:1.确认用户是否在docker组内#如果还没有 docker group 就添加一个su
2020-09-29 15:04:23
6102
原创 jenkins误删管理员权限补救办法
今天考虑到项目的安全问题,想把删除项目权限都给取消,但发现这个admin不管怎么勾选,都具有所有权限,不信邪的我取消了一下下图中的Administer,然后我发现彻底失去了管理员权限,无法修改任何jenkins配置。jenkins这个权限设置我觉得很不人性化,还有,千万别动管理员权限!下面介绍万一误删了管理员权限,如何补救。1.修改jenkins服务器config.xml我这里jenkins路径是 /var/lib/jenkins。编辑之前先进行备份:cp config.xml con
2020-08-27 11:48:36
3897
6
原创 jenkins配置构建后邮件通知
本文介绍如何在完成基于jenkins的持续集成部署后,将结果邮件通知相关人员。一、安装Email Extension插件系统管理->管理插件,选择Email Extension Plugin插件进行安装。二、系统配置系统管理->系统设置,配置邮箱1、设置管理员邮箱地址2、设置Extended E-mail Notification上图中邮箱以邮箱登录授权码作为认证密码,以新浪邮箱为例,生成授权码操作如下:3、配置邮件内容模版Def.
2020-08-26 10:53:20
1535
原创 jenkins用户权限分配
目前我使用的jenkins平台上只有一个管理员用户admin,权限过大,多人使用可能会误操作,其实测试人员只需要read和build权限,下面介绍如何为不同jenkins用户分配权限。1.安装插件Role-based Authorization Strategy2.修改授权策略为Role-Based Strategy管理Jenkins--》Configure Global Security--》授权策略3.修改角色配置管理Jenkins--》Manage and Assign R
2020-08-17 15:30:49
916
原创 spring参数校验消除重复代码
spring参数校验的目的是消除类似下面的重复代码,通过注解的方式进行参数校验。if (acctBindParam.getAccChgSeq() == null) { throw new BusinessException("-1", "变更流水号为空");}if (StringUtil.isEmpty(acctBindParam.getDataSrc())) { throw new BusinessException("-1", "数据来源为空");}if (Strin...
2020-07-19 23:07:49
654
原创 openresty安装及运行nginx
openresty介绍OpenResty (也称为 ngx_openresty)是一个全功能的 Web 应用服务器。它打包了标准的 Nginx 核心,很多的常用的第三方模块,以及它们的大多数依赖项。这里只介绍使用openresty快速部署nginx服务。openresty安装步骤下载openresty源码包wget https://openresty.org/en/download...
2019-12-03 18:47:04
1785
1
原创 阿里云OSS简单上传
阿里云oss官方文档:https://help.aliyun.com/document_detail/84781.html?spm=a2c4g.11186623.2.23.5d362d36BLTMHk1.pom文件:<dependency> <groupId>com.aliyun.oss</groupId> <artifac...
2018-09-29 10:36:54
2478
原创 OCR识别测试demo
OCR测试类:/** * 测试ocr识别 */ @Test public void testOcr() { byte[] imageBytes = new byte[0]; try { // 获取文件字节数组 imageBytes = DownLoadPicUtil.rea
2018-01-31 11:44:00
3542
原创 Log4j输出日志到单独日志文件
正常情况下log4j的info日志会打印到统一的日志文件,当需要查看特定功能的执行情况,打印特定功能到指定日志文件,方法如下:log4j.properties### set log levels ###log4j.rootLogger = INFO , C , D , E### console ###log4j.appender.C = org.apache.log4j.ConsoleAp...
2018-01-31 09:01:03
24634
2
原创 ImageMagick和Im4java处理图片
im4java是ImageMagick的一个Java开源接口。与JMagick不同之处在于im4java只是生成与ImageMagick相对应的命令行,然后将生成的命令行传至选中的ImageCommand(使用java.lang.ProcessBuilder.start()实现)来执行相应的操作。它支持大部分ImageMagick命令,可以针对不同组的图片多次复用同一个命令行。原生java
2018-01-25 12:00:26
1729
原创 eclipse mat插件安装
1.eclipse插件安装点击help ---install new software------add 然后添加新地址,路径为:http://download.eclipse.org/mat/1.3/update-site/这种方式看网络状态,经常不好用2.本地安装官网地址 http://www.eclipse.org/mat/downloads.php选择更早版本(最新版需要收费),点击win
2018-01-19 17:43:09
5088
原创 nginx部署nodejs前端项目
前端项目打包下载nodejs下载地址:https://nodejs.org/en/download/执行npm -v,查看安装是否成功。下载nodejs依赖包在项目目录下执行 npm iCompiled successfully!The app is running at:http://localhost:8007/项目打包npm run build打包后的代码保存在 /dist目录下l
2018-01-19 09:34:40
9429
原创 idea控制台乱码
1.打开Intellij的安装的bin目录,idea.exe.vmoptions和idea64.exe.vmoptions中增加一行配置:-Dfile.encoding=UTF-82.setting-File Encoding配置编码为UTF-83.配置服务器启动参数maven项目乱码解决方法
2018-01-15 10:49:19
266
原创 maven异常 编码GBK的不可映射字符
maven 编码GBK的不可映射字符 异常解决方式如下: 建议每个pom程序中都加入此配置<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugi
2018-01-02 10:45:13
388
原创 java 循环中String与StringBuilder效率探究
测试类:public class StringTest { @Test public void testString() { String str = ""; for (int i = 0; i < 3; i++) { str += i; } System.out.println(str);
2017-12-08 15:22:56
1774
原创 git常用命令之git push使用说明
git push使用说明Gitpush命令用于将本地分支的更新,推送到远程主机。它的格式与gitpull命令相仿。$ git push :注意,分支推送顺序的写法是:,所以git pull是:,而git push是:。如果省略远程分支名,则表示将本地分支推送与之存在”追踪关系”的远程分支(通常两者同名),如果该远程分支不存在,则会
2017-06-26 18:44:37
2027
转载 lombok在IntelliJ IDEA下的使用
lombok是一款可以精减java代码、提升开发人员生产效率的辅助工具,利用注解在编译期自动生成setter/getter/toString()/constructor之类的代码。代码越少,意味着出bug的可能性越低。官网地址:https://projectlombok.org/ 首页有一段几分钟的演示视频,看完就明白是怎么回事了。先来二段对比代码:这是用lombok后的j
2017-06-26 11:41:06
524
转载 错误:java.security.InvalidKeyException: Illegal key size or default parameters解决方法
Java几乎各种常用加密算法都能找到对应的实现。因为美国的出口限制,Sun通过权限文件(local_policy.jar、US_export_policy.jar)做了相应限制。因此存在一些问题:●密钥长度上不能满足需求(如:java.security.InvalidKeyException: Illegal key size or default parameters);●部分算法未能支
2017-06-24 15:45:46
2845
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人