- 博客(59)
- 收藏
- 关注
原创 spring boot thymeleaf 404 error
未启用 Spring MVC:如果你的 Spring Boot 应用没有启用 Spring MVC,那么即使配置了 Thymeleaf 模板引擎也无法正常工作,请确保你的应用已经启用了 Spring MVC。访问的 URL 地址不正确:请检查你的浏览器地址栏中输入的 URL 地址是否正确,并且确保你的 Thymeleaf 模板文件和 Spring MVC 控制器方法的映射关系是正确的。如果以上问题都不能够解决,可能是pom.xml中的依赖引入错了,html出现不了,请尝试降低Thymeleaf依赖版本。
2023-09-27 16:53:56
1600
原创 发现好工具nodepad-- 你没有看错是--
他们的目标是要进行文本编辑类软件的国产可替代,重点在国产Uos/Linux系统、Mac 系统上发展。这是一个使用C++编写的文本编辑器Notepad--,可以支持Win/Linux/Mac平台。对比其它竞品Notepad类软件而言,我们的优势是可以跨平台,支持linux mac操作系统。一个支持windows/linux/mac的文本编辑器,目标是要国产替换同类软件,来自中国。▲ 支持文件对比及同步,编辑修改,撤销修改等。▲ 支持文件夹中批量查找。▲ 支持文件夹对比及同步。▲ 支持文件编码批量修改。
2023-06-28 14:16:03
489
原创 dubbo升级至2.7.18版本后,客户端调用失败解决方案和原因
dubbo升级至2.7.18后服务调用异常 No provider available for the service XXXXX from registry 127.0.0.1:2181 on the consumer xxxxxx using the dubbo version 2.7.18. Please check if the providers have been started and registered.解决思路
2023-06-28 13:40:48
1800
原创 如何在zookeeper集群环境查看leader节点
今日对dubbo进行升级,本地测试dubbo2.7.22版本,服务调用正常,测试环境中有个dubbo服务客户端调用异常,降低版本后正常。因此考虑是否为zk脑裂导致。进入zk所在bin目录 执行命令:./zkServer.sh status。
2023-06-27 23:04:09
1515
原创 关于Apache Dubbo反序列化漏洞(CVE-2023-23638)的预警提示与对应的Zookeeper版本
Apache官方发布安全公告,修复了Apache Dubbo中的一个反序列化漏洞(CVE-2023-23638)。由于Apache Dubbo安全检查存在缺陷,导致可以绕过反序列化安全检查并执行反序列化攻击,成功利用该漏洞可在目标系统上执行任意代码。Apache Dubbo 2.7.x 版本:
2023-06-27 15:09:50
1891
原创 GraalVM简介
同时,GraalVM还与Java生态系统中的所有工具兼容,包括用于微服务的Micronaut、Helidon、Quarkus或Spring Boot,以及用于命令行应用的PicoCLI等。GraalVM的高性能JIT编译器可以生成优化的本机代码,从而提高应用程序的运行速度和垃圾回收效率,降低CPU使用率。GraalVM是一款由Oracle公司开发的跨平台虚拟机,它支持多种编程语言,如Java、JavaScript、Ruby和Python等,旨在提高开发效率和应用程序的性能。
2023-06-21 18:00:51
2170
原创 MYSQL 使用GROUP_CONCAT函数返回值缺失问题
MySQL中的GROUP_CONCAT函数用于将查询结果集中的多行数据合并为一行,常用于统计分组聚合操作。然而,在使用GROUP_CONCAT时,可能会遇到截断问题,即合并后的字符串长度超过了MySQL的配置限制,导致结果不完整。接下来,我们还需要了解如何处理合并后的字符串中可能存在的特殊字符。例如,换行符会被转义为。需要注意的是,增加最大长度限制和开启反斜杠转义模式可能会对性能产生一定的影响。如果查询结果集中的数据量较大,或者需要合并的字段长度较长,那么1024的限制可能会不够用,导致结果被截断。
2023-06-13 15:50:38
1798
原创 MAC 因为未卸载干净老版本IDEA导致新的IDEA启动报错解决办法
【代码】MAC 因为未卸载干净老版本IDEA导致新的IDEA启动报错解决办法。
2023-03-13 17:17:31
559
1
原创 Spring微服务无法注册到指定的Spring cloud Eureka
我们前期方便部门内应用间的依赖调用构建了一个公共项目,大家将自己的应用以模块的方式创建。后来由于新的项目越来越多,导致代码合并经常冲突。再加上近期决定要将应用进行容器化部署。同时为了各应用间开发间避免彼此影响提出了两种解决方案。方案一:应用可以剥离成独立的项目方案二:根据应用建立专属分支,每个组只对自己的独立分支进行拉取和维护因为项目中有一个基础模块封装了一些启动项,比如配置类的启动项,eureka的启动注解等这样每个模块就不需要单独配置。大家遵守同一套逻辑方便管理和敏捷开发。
2022-11-29 18:00:22
1357
转载 IP如:192.168.2.0/24表示的IP段范围
192.168.2.0/24表示的IP范围192.168.2.0换成32位二进制,四组,每组8位/24 表示前24位不变,后8位由全0变化到全1的过程,也就是由“00000000”变化到“11111111”又因为全0是子网网络地址,全1是子网广播地址,这两个地址是不分配给主机使用的。所以有效的可分配的范围是前24位不变,后8位由“00000001”变化为“11111110”的范围再转换回十进制就是192.168.2.1~192.168.2.254P地址IP地址被用来给Intern
2022-06-13 14:07:44
6159
转载 dubbo-monitor-2.7.3监控器配置
1.解压dubbo-monitor-2.7.3.zip2.进入dubbo-monitor-2.7.3\src\main\resources\conf路径,修改dubbo.properties3.进入dubbo-monitor-2.7.3路径依次执行命令 mvn clean 、 mvn package4.生成target文件夹,生成dubbo-monitor-simple-2.7.3-assembly.tar.gz,解压5.进入dubbo-monitor-2.7.3\tar
2022-04-26 13:28:07
393
转载 Intellij IDEA 高效使用教程
安装好Intellij idea之后,进行如下的初始化操作,工作效率提升十倍。一. 安装插件1.Codota 代码智能提示插件只要打出首字母就能联想出一整条语句,这也太智能了,还显示了每条语句使用频率。原因是它学习了我的项目代码,总结出了我的代码偏好。如果让它再加上机器学习,人工智能写代码的时代还会远吗?2. Key Promoter X 快捷键提示插件每次都会在右下角弹窗提示,帮助我们快速熟悉快捷键。3. CodeGlance 显示代码缩略图插件.
2022-03-30 17:21:13
138
原创 如何解决项目中maven包冲突
简介在项目的开发过程中会依赖很多第三方的依赖包,这些第三方依赖包也会引用其他第三方的maven依赖,这样就可导致项目中出现某个maven依赖包存在很多个版本,遇到某个依赖存在安全风险时就需要升级依赖,这时就需要解决依赖包之间的版本冲突开发工具:IntelliJ IDEA用到的IDEA插件:Maven Helperstep1:查看项目中的maven依赖冲突?step2:定位与那个依赖产生冲突step3:解决冲突(我们保留fastjson1.2.70,就需要在1.2.50的m
2022-03-30 10:55:22
818
转载 命令行下载maven依赖
Maven Repository官网:https://mvnrepository.com/介绍两种方式下载jar包到本地的方式前提条件是:配置好maven的环境变量(具体操作百度吧)方法一:将本地指定位置的jar包安装到maven仓库中mvn install:install-file -Dfile=jar包保存的本地路径 -DgroupId=jar保存的父级路径 -DartifactId=jar包文件夹名称 -Dversion=版本 -Dpackaging=jar --settings ma
2022-03-24 11:03:37
12474
原创 hbase数据库连接池 未设置最大链接数导致数据库操作异常频发
简介业务中将主要数据存储定位hbase存储,近期突然发现数据比对不上,发现实在创建环节发生异常导致逻辑执行终端(hbase存储或查询出现异常)。表现:供应商提供参考:供应商提供的解决方案: 关闭超过90s未使用的链接是一种保护方案,可以重新链接一下就好了第一次按照解决方案优化结果按照供应商提供的解决思路,对核心调用环节增加了异常捕获和重试(4次),依然还是有很多超过两次以上的异常报错,因为可能造成的影响很大,因此继续和供应商沟通是否有彻底解决方案,避免此...
2022-03-01 17:35:31
2379
原创 dubbo admin 无法启动提示:zookeeper not connected 解决方案
问题描述dubbo admin 从github上挡下来之后,启动dubbo admin server发现使用无法启动做那个是提示zk 链接超时,看设置相关超时时间应该是没问题,此处暂时没有深入了解底层代码逻辑有兴趣的可以看一下:错误提示:zookeeper not connected错误日志:2022-02-22 17:03:09.997 ERROR 21688 --- [ main] o.s.boot.SpringApplication ...
2022-02-22 17:09:21
4027
2
原创 dubbo admin 本地打包构建不成功解决思路
概述由于公司安全扫描dubbo admin是老版本没有鉴权需要使用新版本的dubbo admin,目前dubbo admin最近一次更新在2021年11月8日,因此可能会与我们当前的本地的开发环境存在很大的偏差,尤其是node,npm,已经相关的依赖库之间的高低版本差异会导致我们本地打包失败主要问题:本地开发环境node和npm超过9.11.1 以及相关依赖库版本都是最新的解决方案:通过降低node版本和如果打包环节遇到指定的低版本第三方库就重新安装指定版本库然后在重新打包
2022-02-22 16:53:38
1071
原创 Linux 内存使用率超过90%,问题排查和清理
摘要问题发生在周末,正在家休息突然接收到告警信息提示linux内存使用率超过90%,刚接收到信息以为是程序发生了内存泄漏。登录Linux通过top命令发现系统占用内存正常。各进程内存使用率都很低使用命令:free -h 查看内存使用情况命令:free -h下图为已经清理后的可以看到used使用了1.8GB,当时告警used为6.3GB而且还在持续增长中使用:通过释放 文件缓存,手动释放缓存的方法命令:echo 3> /proc/sys/vm/drop_cache...
2022-02-14 15:38:08
25239
转载 linux 释放 文件缓存,Linux中手动释放缓存的方法
一、Linux释放内存的相关知识介绍:在Linux系统下,我们一般不需要去释放内存,因为系统已经将内存管理的很好。但是凡事也有例外,有的时候内存会被缓存占用掉,导致系统使用SWAP空间影响性能,例如当你在Linux下频繁存取文件后,物理内存会很快被用光,当程序结束后,内存不会被正常释放,而是一直作为caching。,此时就需要执行释放内存(清理缓存)的操作了。Linux系统的缓存机制是相当先进的,他会针对dentry(用于VFS,加速文件路径名到inode的转换)、Buffer Cache(针对磁盘
2022-02-14 15:06:26
10635
原创 查看Zookeeper版本
命令:echo stat|nc 127.0.0.1 2181如果提示:-bash: nc: command not found使用命令:yum -y install nc安装完成后在执行:echo stat|nc 127.0.0.1 2181
2021-12-30 18:05:28
15343
原创 【云产品】hbase 索引使用笔记
简介: 此文记录公司记录使用阿里云产品hbase增强版,使用过程涉及到的关键问题点,首先云hbase增强版最新版本时支持sql查询,但是只允许用户建立5个二级索引,但用户可以通过建立组合索引的方式来增加查询的效率。查询时最多命中一个索引 hbase增强版查询时,只会命中一个索引,因此在创建索引时要结合自己常用的查询语句创建索引,因为考虑到查询效率和索引数量限制建议建组合索引。在测试环境尽量多测试多压测暴露问题 测试环境作为功能验收重要环...
2021-12-24 10:20:58
1391
原创 xxl-job 处理能力提升记录和验证点
公司目前逐渐慢慢开始推广xxl-job来替换一些其他的定时任务框架,因为我们做了很多告警提示,重试类型,以及扩展了API任务触发方式来满足业务方的需求。同时对于分布式锁业进行来替换(redis和zk)。功能上已经满足公司很多的业务需求,但是在性能瓶颈上遇到了问题。问题出现在mysql上,因为api 投递的任务每天增长数据在300w条任务执行记录,因此在查询上就变的越来越慢。这还只是刚开始,后期还会有其他高频和大数据量的api 投递任务接入进来做一些异步优化,数据量预估5000w-1亿2千万每...
2021-12-13 13:59:25
2274
原创 Java 诊断利器Arthas:快速入门
Arthas是Alibaba开源的Java诊断工具,深受开发者喜爱。在线排查问题,无需重启;动态跟踪Java代码;实时监控JVM状态。Arthas支持JDK 6+,支持Linux/Mac/Windows,采用命令行交互模式,同时提供丰富的Tab自动补全功能,进一步方便进行问题的定位和诊断。快速入门1. 启动math-game curl -O https://arthas.aliyun.com/math-game.jar java ...
2021-12-10 16:43:04
449
原创 Apache Log4j2 远程代码执行漏洞
简介 今天刚上班就被拉到紧急处理群被告知Apache Log4j2 存在安全隐患需要升级相关依赖版本起因: 2021年11月24日,阿里云安全团队向Apache官方报告了Apache Log4j2远程代码执行漏洞。2021年12月10日,阿里云安全团队发现 Apache Log4j 2.15.0-rc1 版本存在漏洞绕过,请及时更新至 Apache Log4j 2.15.0-rc2 版本。漏洞描述Apache Log4j2是一款优秀的Java日志框架。202...
2021-12-10 15:57:04
942
原创 Redis 队列和MQ 对比
简介 为了保障基础服务的稳定,需要对MQ进行灾备,这个灾备主要是防患MQ突然不可能,基础服务依然可以调用其他队列来继续正常运行。第一想法是引入其他MQ中间件来做灾备,这样只需要实现一套生产者消费者就好。但因为公司这块中间件都使用的云产品。要过要使用其他类型的MQ中间件就需要购买资源,但程序运行中正常情况下不会用到这个备胎,因此剩下的选项就是将队列数据落到数据库(关系型/非关系型),要么就是redis,因为即便MQ出现问题,供应商也会很快的修复问题保证MQ中间件的可用,因此我们这边灾备主要的...
2021-12-08 15:18:34
4767
原创 变量不为空触发的空指针异常
简介 最近在为公司一个基础组件做性能优化,优化主要是通过使用hbase存储来替换mysql,考虑到只是针对于一张表(切换后日数据量超过亿条记录)做存储切换。为了上线过程中出现问题可以不用通过回滚版本的方式来进行紧急操作。我们采用开关的形式:全局开关和局部开关来对数据存储进行切换。 因为是灰度切换,因此会有一个存储方式过度并存的时间,同时部分数据必须保证能够获取到:根据id获取数据,因此写了一个公用的判断方法来做数据源判断。也就是在判断的过程中我遇到了值非空的NullPoi...
2021-12-07 16:02:45
315
原创 数据存储周期如何设定和选择
简介 众所周知,我们的程序运行产生很多的数据:log,业务数据,行为轨迹等,但是每种数据如何存储,存储周期有多久合适
2021-12-02 15:15:05
1706
原创 敬畏生产,重视测试
简介 一般来说每家互联网公司大都会有测试环境(包括日常),预发环境,生产环境。三个环境相互隔离。开发完成一个功能会部署到测试环境,供测试人员测试和其他业务线测试使用。测试没问题,提交上线申请,通过则在部署到预发环境再次测试验收没问题,才能正式上线。 因为功能扩展,本次在测试环境更改了表结构以及对象类型,导致后续状态修改失败,因为很少对记录表做更改,也就忽略问题的追踪。突然一个其他业务现的小伙伴回复他们执行结果没有?然后跟踪发现确实没有。这个影响就比较重大了,回想一下组内小...
2021-12-01 17:30:50
196
原创 HBase实战:hbase伪分布式模式运行
简介 因为想要再本地测试Apache phonix ,但是phonix 需要通过zk 来发现hbase 因此只能将单机的hbase 变成分布式的,因为单机hbase zk是默认集成修改配置文件:vim conf/hbase-site.xml<property> <name>hbase.cluster.distributed</name> <value>true</value> </prope...
2021-11-30 16:22:51
837
原创 Docker 启动zk (MAC)
简介 为了快速快速调试apache Phonix 使本地HBase 可以使用sql 来进行数据管理,phonix 使用zk来发现相关hbase的节点,而本地一直没有安装zk,因此使用Docker 快速启动一个镜像。1. 搜索zookeeper镜像docker search zookeeper2. 拉取zookeeper 镜像(如不不指定版本则拉取最新 )docker pull zookeeper3. 查看本机所用可用的镜像docker ...
2021-11-30 15:51:02
2165
原创 JAVA设计模式:纲要
简述 好的程序总是稳定高效的,好的代码也是相似的,健壮性,扩展性,容错性也体现在代码书写的过程中,一个新员工是否能够快速熟悉代码逻辑,以及新的需求进来是否可以快速进入迭代开发,这些都与开发人员在程序书写时的习惯有着密切关联,好的设计模式对于程序的健壮性,扩展性,处理能力有着非常重要的作用。这也是现在很多企业在面试Java研发人员时会经常提问相关问题的原因。什么是设计模式1995 年,GoF(Gang of Four,四人组/四人帮)合作出版了《设计模式:可复用...
2021-11-30 13:31:56
293
原创 业务代码层面灾备思考和设计
简介 随着业务的扩展,用户的增长,稳定性和可用性要求也越来越严格。从主备切换,一主多从,读写分离,哨兵模式等,我们经历很多应用部署层面和应用架构层面的灾备,在业务代码层面其实我们很多业务也做很多稳定性和可用性的工作。 因为我们基础服务将要迎来很多业务方的接入,对我们稳定性和可用性也提出更多的要求。现在我们就来看看我们在业务代码层面灾备思路1: 存储方面 众所周知不论是什么样的业务最终都是要将数据落到数据库中,基础服务同样。为了能够保证我们的服务稳...
2021-11-29 17:42:51
137
原创 Linux 查看删除未释放的文件
简介 我们使用的是ECS部署的应用,因为是云产品,可以配置很多的告警指标,其中有一个关键指标就是磁盘使用率,对成熟的公司来说日志数据和业务数据同等重要‼️,甚至可能会更重要一些。log数据能够帮助我们定位问题和做一些修复性的工作。 问题:ECS磁盘告警 我们ECS采用的是ssd云盘,大小为40G,正常来说系统+应用相关文件磁盘使用不会超过50%,因为我们日志会根据日期和文件大小进行分割,有效期7天(非核心业务逻辑,保存有效期可以降低)。因为一次优化日志导致l...
2021-11-27 01:20:25
3579
原创 mysql 查看sql执行执行计划
简介 在程序运行中,我常遇到的瓶颈往往出现在数据库(MYSQL)上,除了数据量上的问题外,更大的问题是查询时索引命中问题,当然如果数据量极小索引问题可以忽略。执行计划我们经常使用 MySQL 的执行计划来查看 SQL 语句的执行效率 例如:执行计划:idselect 查询的序列号,标识执行的顺序 id 相同,执行顺序由上至下 id 不同,如果是子查询,id 的序号会递增,id 值越...
2021-11-26 14:51:25
1521
原创 思考:为什么系统要做限流处理
简介 我们有一个基础服务,这个基础服务平时外部调用量并不是很大,我们有一个小集群(三台4d8g规格的ECS)。运行平稳,后面因为业务方需求我们我们做了一个功能扩展,因为业务方将基础服务当作MQ使用,因此访问量突然增大,平时我们tps:2-10个,这个新的功能支持后tps:200以上,高峰时期业务方评估在tps:2500-2800。这个完全超出了我们当时开发时的数据预估。因此联系测试组对基础服务处理能力进行了压测,果然我们是有瓶颈性问题的,最终的瓶颈点相信很多小伙伴已经猜...
2021-11-19 10:59:31
1173
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人