自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

JustCode的博客

本人为java开发工程师,拥有高并发系统开发经验,本博客是本人日常发表技术文章用,积累个人经验

  • 博客(38)
  • 资源 (3)
  • 收藏
  • 关注

原创 线上java程序CPU及内存占用过高问题排查总结

由此可以看出,消耗资源的线程id为4152.由此,可见,该进程id为4140。

2023-08-04 16:32:54 1533

原创 XXL-JOB:com.fasterxml.jackson.databind.JsonMappingException: Unexpected character (‘o‘ (code 111))解决

通过以上报错,可以看到报错的位置为xxl-job-admin回调接口报错导致,该回调接口接收到的字符串无法转换为Java对象;在xxl-job-admin这个类WebMvcConfig.class添加如下方法。springboot版本升级后,导致接收到复杂的json字符串无法解析。

2023-03-29 15:41:30 1576 1

原创 windows11中120G的C盘总被占满问题解决方法

个人电脑120G的c盘总被占满,导致总会出现程序无法使用问题通过工具(可以通过https://download.csdn.net/download/weixin_45973130/85637827下载)搜索大文件可以发现系统中最大的文件夹就是C:\ProgramData\Microsoft\Search\Data\Applications\Windows\Windows.edb,估计每个windows11或者windows10都是这个文件夹占用较大的存储。在网上搜索此文件,有很多说明:Windows.ed

2022-06-14 13:26:04 9200

原创 due to missing ServletWebServerFactory bean错误之spring boot 不占用端口方式启动

前言springcloudalibaba项目启动报错,如下:[2022-03-15 21:50:46] [INFO ] [com.alibaba.cloud.dubbo.service.DubboGenericServiceFactory:176] -- The Dubbo GenericService ReferenceBeans are destroying...[2022-03-15 21:50:46] [INFO ] [org.apache.dubbo.config.spring.beans.

2022-03-15 22:10:09 3708 1

原创 springcloudalibaba项目之dubbo整合sentinel实现熔断降级并配置全局fallback

前言之前在springcloud项目整合过了dubbo,现在需要加上sentinel实现熔断降级功能,dubbo本身提供降级功能,但是不完善,没有熔断功能,因此,引入sentinel来实现熔断降级要求这篇文章需要读者对sentinel熔断功能了解、了解使用nacos、了解使用sentinel-dashboard使用和配置规则、了解配置dubbo,在这里就不详细介绍了环境dubbo版本2.7.8sentinel版本1.8.0springcloud版本 <properties>

2022-03-10 14:28:05 2292

原创 springcloudalibaba项目之dubbo整合并开启生产者和消费者过滤器

前言之前使用springcloud搭建了一个系统,接口调用是使用feign来实现的,因为dubbo也是一个效率更高的调用框架,现在就研究了下,怎么整合dubbo,后面发现dubbo也有类似mvc的过滤器的东西,挺有意思的,网上比较少这样的资料,因此,在这里做个记录。依赖引入springcloud部分依赖 <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding&

2022-03-07 23:02:45 796

原创 使用easy-captcha生成图形验证码报错Cannot load from short array because “sun.awt.FontConfiguration.head“ is null

前言使用easy-captcha生成图形验证码,报以下错误2022-02-28 17:27:02.068 [http-nio-8081-exec-2] ERROR o.a.c.c.C.[.[.[.[dispatcherServlet] - Servlet.service() for servlet [dispatcherServlet] in context with path [/base] threw exception [Handler dispatch failed; nested except

2022-02-28 17:38:39 4332 1

原创 springcloud项目grafana+prometheus监控常用配置

前言之前使用springcloudalibaba搭建了一套新项目,项目使用Prometheus做监控数据存储,使用grafana显示数据在这里,我就不介绍怎么搭建grafana和Prometheus,我们这里是运维搭建的,仅仅演示一下springcloud项目的常用监控埋点配置可视化springcloud版本<spring-boot.version>2.2.10.RELEASE</spring-boot.version><spring-cloud.version&gt

2022-01-18 15:55:41 1476

原创 lombok与jdk版本兼容性问题报错解决

前言现在已经出了jdk17了,项目中还在使用jdk1.8更新jdk为17时,发现编译代码出现这样的错误:[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.7.0:compile (default-compile) on project call-common: Fatal error compiling: java.lang.IllegalAccessError: class lombok.

2022-01-10 13:35:35 12550 1

原创 springcloud项目中redis哨兵模式使用redisson实现分布式锁实践

前言由于项目中需要使用到分布式锁,虽然分布式锁的实现有很多方法,例如,使用数据库、zookeeper、redis,以前我也写过这样的分享文章虽然可以手写分布式锁,但还是比较复杂的,代码量比较到,由于现在已经有了实现分布式锁的jar包了,例如,redisson就是了,没必要自己手写那么复杂,还是站在前人的肩膀上吧项目环境本项目是基于springcloudalibaba的项目,版本如下: <spring-boot.version>2.2.10.RELEASE</spri

2022-01-08 17:58:24 2494

原创 Linux下硬盘写入性能测试命令分享

1.直接写硬盘SSD:第一次:[root@BIGDATA02 ~]# time dd if=/dev/zero of=/tmp/test.txt bs=64k count=10000 oflag=dsync10000+0 records in10000+0 records out655360000 bytes (655 MB) copied, 2.32527 s, 282 MB/sreal 0m3.377suser 0m0.004ssys 0m1.963s第二次:

2022-01-08 17:40:17 1300

原创 springcloud项目logback配置异步打印日志到磁盘

前言最近在项目中对服务器磁盘读写性能做了一个测试,发现服务器性能实在太差了,写入速度一般在13-15M/s的范围,速度太小了因为这个是新项目来的,想着提高服务性能,减少磁盘io,因此,准备对项目日志进行改造,改为异步写入磁盘项目框架基于springcloudalibaba,版本如下: <spring-boot.version>2.2.10.RELEASE</spring-boot.version> <spring-cloud.versio

2022-01-08 17:33:46 1480

原创 ftp上传错误org.apache.commons.net.ftp.FTPConnectionClosedException: Connection closed without indication

报错信息ftp上传文件报org.apache.commons.net.ftp.FTPConnectionClosedException: Connection closed without indication错误项目中由于ftp做了迁移,代码使用的ftpclient登录成功,但是上传文件就报这个错误。代码public boolean uploadFile(String ip, int port, String username, String password, String s

2022-01-08 17:16:12 7378

原创 ffmpeg相关音频转格式命令,用于asr转写实践总结

背景之前做了一个项目,需要将音频发送转写成文字,就是asr功能用户端能够提供的音频格式为amr,但是,asr引擎智能识别8k8b的pcm文件因此,需要将asr转成pcm文件,再发送引擎转写测试音频下载:https://download.csdn.net/download/weixin_45973130/73080746测试命令及结果#识别不准amr->mp3ffmpeg -i 00e13f8cd76f57f4fb4c397b5d2e4298.amr -ar 16k -ac 1 test

2022-01-02 13:14:33 1662

原创 springcloud项目使用elk搭建统一日志中心实践之应用通过logback接入

前言续上篇,elk相关集群都搭建好了,现在就将日志输入到elk使用框架这里的程序都是使用springcloud框架版本如下 <spring-boot.version>2.2.10.RELEASE</spring-boot.version> <spring-cloud.version>Hoxton.SR4</spring-cloud.version> <spring-cloud-alibaba.vers

2021-12-27 21:25:19 824

原创 springcloud项目使用elk搭建统一日志中心实践之kibana搭建

前言续上篇,搭建kibana简介Kibana是一个开源的分析和可视化平台,设计用于和Elasticsearch一起工作。你用Kibana来搜索,查看,并和存储在Elasticsearch索引中的数据进行交互。你可以轻松地执行高级数据分析,并且以各种图标、表格和地图的形式可视化数据。Kibana使得理解大量数据变得很容易。它简单的、基于浏览器的界面使你能够快速创建和共享动态仪表板,实时显示Elasticsearch查询的变化。下载https://repo.huaweicloud.com/kib

2021-12-27 20:58:38 329

原创 springcloud项目使用elk搭建统一日志中心实践之logstash搭建

前言续上篇,由于项目需要,生产环境多节点部署搭建统一日志中心。之前介绍过搭建es集群在这里介绍一下如何搭建logstash。下载https://repo.huaweicloud.com/logstash/7.9.3/从以上地址下载logstash机器主机10.196.201.80logstash没有集群的概念,在这里,我就搭建一个节点该节点的作用是提供tcp连接,接收程序发送过来的日志内容,并将日志内容写入到es集群搭建在这里,我是用root用户搭建,将安装包解压为logstash-

2021-12-27 20:43:19 614

原创 springcloud项目使用elk搭建统一日志中心实践之elasticsearch集群搭建

前言最近,做了个新项目,为了好排查问题,方便查询日志,需要搭建一套统一日志中心,在这里选择elk来做环境三台主机搭建集群主机1 10.196.201.80主机2 10.196.201.81主机3 10.196.201.82下载https://repo.huaweicloud.com/elasticsearch/7.9.3/在以上地址下载es创建用户每台主机都要创建es自己的用户,因为es不允许使用root启动。命令如下groupadd es && useradd

2021-12-27 20:26:16 1076

原创 springcloudalibaba配置sentinel持久化数据到nacos实战详细说明

前言由于项目中使用了springcloudalibaba这套框架,使用sentinel做熔断降级功能,在Sentinel-Dashboard中配置规则是存储在内存之中,重启应用就会丢失,所以实际生产环境中需要配置规则的持久化实现。搜了一下网上介绍规则持久化的文章,发现介绍的不是很全面,因此,在这里,我把我的时间经验分享出来。Sentinel持久化介绍存在三种持久化模式,生产环境一般使用push模式,该模式的工作原理如下图:Sentinel-Dashboard统一管理配置,然后将规则统一推送到N

2021-12-09 09:00:12 1137

原创 springboot中使用restemplate,请求接口会将url参数的%编码为%25问题解决

前言在开发过程中,通过resttemplate调接口,然后发现url中参数会将%编码为%25,导致接收方接收到的参数值改变请求代码ResponseEntity<String> entity = restTemplate.postForEntity(url, request, String.class);url中拼接了参数,如sign = gshq2%2BjmBizK%2Bq0Ugec%2BYnmVH5V%2FXRUHG6ivYgCqdSC09jpdV%2FF41pA5R1xUqwkW

2021-10-21 23:12:40 2422

原创 真实项目使用springcloudalibaba搭建高可用、可扩展系统架构设计思考-gateway设计

前言之前看过设计思考的总体文章就可以知道,整个系统的流量入口就是gateway,现在主要介绍一下gateway项目创建在这里使用模块化管理,将不同功能模块化放置,代码结构如下:项目的pom.xml该文件主要是定义好模块,并且指定一些可能引用的依赖的版本,引入springcloud相关依赖。<!-- 子模块 --> <modules> <module>call-common</module> <modu

2021-10-19 19:30:51 325

原创 真实项目使用springcloudalibaba搭建高可用、可扩展系统架构设计思考

前言由于有项目要开发,不想使用原来的旧项目代码,因此,需要设计一套全新的项目架构背景整个项目由客服系统、配置系统、公众号小程序后台、数据系统组成技术选型这里我结合自己的经验,选择了springcloudalibaba来设计系统架构,使用了springcloud5大组件如下:网关:spring-cloud-gateway负载均衡:ribbon、feign熔断降级:sentinel注册中心和配置中心:nacos其他中间件:数据库:mysql、redis消息中间件:rocketmq对象存

2021-10-16 22:17:38 624

原创 对象存储之minIO-java框架springcloud封装minio-sdk为http接口

前言由于项目需要,需要存储音频、图像等二进制文件,这些文件不能存放在数据库,之前使用Hbase做过音频存储,但是,hbase的api实在是太复杂了,不好使用文件存储也有fastdfs,就是安装配置挺复杂的,后面在工作中发现了minio,这个软件比较好用,接下来,介绍一下我封装接口的过程我这篇文章使用的框架是springcloud,首先需要了解springcloud后才能理解代码mioIO简介构建高性能的云原生数据机器学习,大数据分析,海量存储的基础架构MinIO支持各种应用程序数据工作负载在

2021-10-16 19:57:01 2227 3

原创 Netty应用系列之编写http服务

依赖引入 <dependency> <groupId>io.netty</groupId> <artifactId>netty-all</artifactId> <netty.version>4.1.22.Final</netty.version> </dependency>编写服务端业务类HttpServerChannelHandlerpublic class HttpServ

2021-10-03 16:16:46 145

原创 Netty应用系列之实现简单echo服务

依赖引入netty的依赖比较少,只需要引入以下就可以编写服务了<dependency> <groupId>io.netty</groupId> <artifactId>netty-all</artifactId> <netty.version>4.1.22.Final</netty.version></dependency>编写服务器编写服务处理类EchoServerHandler@Shara

2021-10-03 14:06:58 326

原创 解决mysql获取连接报Table ‘performance_schema.session_variables’ doesn’t exist错误

前言目前,手头上接的一个项目比较老,使用servlet的项目,前端使用jsp来显示,没打什么日志,代码又老又旧,需要tomcat才能启动。问题目前项目的数据库连接是使用比较原始的jdbc来做的,在启动程序后一直获取不到连接,报空指针,不知道怎么解决,数据库也是正常启动的,然后自己的工具也能够连上,程序就是不能连接。思路看到问题后,一直在查看错误日志,重复重启tomcat,看看能不能找到关键得报错信息。最终找到了和数据库相关的报错信息:对了,这个很关键。performance_schema在

2021-09-30 16:08:46 3001 2

原创 java集合型数据结构,看这篇就够了

前言java共有八大类型的数据类型,int、byte、double、long、boolean、 float 、short、char,这些远远不够使用,因为我们还需要用到集合类型的数据结构,如数组、链表等。在这里主要实现一下背包、队列和栈三种数据结构,基于链表实现。定义api链表节点定义private class Node{ Item item; Node next;}背包背包是一种不支持从中删除元素的集合类型,他的目的是帮助用例收集元素并迭代遍历所有收集到的元素。定

2021-09-29 20:28:04 279

原创 java分布式锁 - 基于数据库表实现乐观锁(三)

前言前几天写过使用zookeeper、redis和数据库悲观锁实现分布式锁,好吧,今天想再研究一下使用数据库表示实现。原理先在数据库建一张资源表,包含资源名称resource_name、版本号version(可以是随机数、时间戳,与锁是否过期有关)等信息,将资源名称建立唯一索引在程序尝试上锁时,根据资源名称查询数据,获取锁的版本号也就是时间戳将当前时间与版本号作比较,如果当前时间大于等于版本号的时间,就以资源名称和查出来的版本号作为条件,更新数据库版本号为自己的版本号自己的版本号怎么产生的呢?就

2021-09-29 20:22:05 939 3

原创 java分布式锁 - 基于数据库悲观锁实现(二)

前言前面写过了分布式锁zookeeper和redis实现,现在也一并研究了一下数据库实现方式原理在查询语句后面加上FOR UPDATE,数据库会在查询过程中给数据库表增加悲观锁,也称排他锁。当某条记录被加上悲观锁之后,其他线程也就无法再改行上的数据。在使用悲观锁的同时,我们需要注意一下锁的级别。Mysql innodb引起在加锁的时候,只有明确的指定主键(或索引)的才会执行行锁(只锁住被选取的数据),否则mysql将会执行表锁(将整个表锁住)。在使用悲观锁时,我们必须关闭mysql数据库的自动提

2021-09-29 20:18:46 379

原创 优雅地sharking-proxy进行mysql分库分表

前言由于项目中用户数量已经达到5亿,数据库存储性能有所降低,因此,需要将原来的数据表拆分出10张表来存放用户数据,提高mysql性能。技术选型据了解,mycat能够实现分库分表功能,但是,在这里我们还是选择sharking-proxy来做分表处理。好吧,那就开始苦逼的研究之旅了。获取sharding-proxy下载sharding-proxy的地址为https://shardingsphere.apache.org/document/current/cn/downloads/,在这里,我下载的是

2021-09-28 13:19:27 281

原创 java分布式锁-redis实现(一)

前言最近由于项目需要,需要增加分布式锁功能,因此,对分布式锁进行了研究。技术选型分布式锁有三种实现方式,zookeeper、数据库、redis。由于redis效率高,使用简单,因此,在这里选用了redis实现分布式锁。配置redis由于项目是springboot项目,整合了RedisTemplate,直接在利用RedisTemplate实现分布式锁较为简单,无需增加其他配置,配置如下:spring.redis.host=10.1.1.1spring.redis.port=6379sprin

2021-09-28 13:11:38 231

原创 springboot整合dubbo标准用法

前言由于项目中没有采用微服务,导致接口不好管理,因此,自己研究一下springboot整合dubbo使用。原来使用过spring整合dubbo,考虑到spring 的xml配置实在是不好配置和比较繁琐,所以,考虑使用springboot来整合dubbo。生产者依赖引入<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-s

2021-09-28 13:06:12 171

原创 nacos集群搭建和使用

前言最近在使用springboot整合dobbu,实现微服务,发现了阿里还有一个注册中心叫做nacos,因此,想要使用nacos作为dubbo的注册中心,在这里将分享如何搭建nacos集群。下载nacos是阿里的一个开源的注册中心,地址https://github.com/alibaba/nacos/releases,这里本人下载的是最新版本的nacos(nacos-server-1.2.0.tar.gz)搭建集群,因为原来使用0.9.0版本来搭建发现还是存在问题,存在很多差异。原理nacos实际

2021-09-27 19:03:56 1508

原创 修改wav格式音频比特率的标准方法

前 言记得之前写过一篇文章,介绍怎么将amr音频转为wav格式,这个过程是没有问题的,转码产生的音频文件是可以正常播放的。但是,由于项目中的服务器智能播放比特率为64kbps的wav音频,而转码产生的wav音频比特率为128kbps,导致不可用。wav音频WAVE文件作为多媒体中使用的声波文件格式之一,它是以RIFF格式为标准的。RIFF是英文Resource Interchange File Format的缩写,每个WAVE文件的头四个字节便是“RIFF”。技术选型由于转码产生的音频比特率不符合

2021-09-27 18:58:11 6940 1

原创 springboot上传文件大小限制设置

有一次由于项目升级,我修改了原来项目接收文件的方法,原来的项目是使用原生的servlet来接收文件后来,我修改为使用springboot的方式来接收文件,上传小文件的时候没发现有问题,后来上传大文件就总是报错通过看错误代码可以知道,原来springboot对上传的文件大小有限制的,上传的文件大小超过了上限所以报错后面问题被解决了,为了能够避免再次发生这样的错误,因此,将这次经历记录下来针对这个问题,有两个解决方法,如下在启动类添加如下代码注意是启动类。main那里@Beanpublic Mu

2021-09-27 18:52:00 7978

原创 xxl-job分布式任务调度框架使用实战

前言一般来讲,定时任务都会使用quartz,springboot本身也整合了Scucher做定时任务,但是,怎么来讲这都是单个服务使用的,侵入性较强。而xxl-job是一个分布式任务调度服务框架,简单易用。因为在公司的项目中,我们已经使用了这个框架,因此,我想写篇文章介绍这个框架如何使用的。下载xxl-job分布式任务调度平台已经开源了,我们可以在https://gitee.com/xuxueli0323/xxl-job.git下载源码。里面其实有示例的,也有文档,写得还是很详细的。在这里我就下载

2021-09-26 20:21:30 612

原创 优雅地使用ffmpeg转换音频格式

最近发现项目中原来使用的ffmpeg转码音频格式(amr转为wav),总是报错(错误代码:Caused by: it.sauronsoftware.jave.InputFormatException),挺费解的,也找不到原因。百度发现,对于这个问题的解答很少,试了很多办法都不靠谱。后来发现,有朋友封装过jave,可以完美解决,可以参照https://www.cnblogs.com/livedian/p/11981232.html。因此,我也引用jave这个jar(如下),先将amr转化为mp3,再将m

2021-09-26 18:48:49 1143

原创 JAVA源文件GBK编码批量转为UTF-8(暂没找到IDE直接转换方法)

背景 今天使用eclipse打开GBK项目时,发现显示中文乱码,本来不想处理的,但是后面编写的文件都被以UTF-8默认编码保存,由于eclipse设置的工程默认编码时UTF-8,导致整个文件的格式变成了中文乱码,并且无法再还原了。后面在网上搜了一下,发现在方面的资料偏少,不过最终还是搜到了一个文章,就是自己写代码把文件编码批量修改为UTF-8。原理 就是我们使用GBK编码读取文件,然后,再以UTF-8编码写入文件并覆盖。不过还是有问题,因为之前由于使用UTF-8保存的文件编...

2021-03-15 19:48:18 244

查询大文件夹程序压缩包

查询大文件夹程序压缩包

2022-06-14

springcloudalibaba微服务dubbo+sentinel+gateway+zookeeper+nacos的demo

springcloudalibaba 微服务 sentinel案例 dubbo案例 nacos案例 zookeeper案例

2022-03-10

Sentinel.zip

修改sentinel-dashboard支持数据持久化到nacos

2021-12-09

空空如也

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

TA关注的人

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