自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(55)
  • 收藏
  • 关注

原创 When allowCredentials is true, allowedOrigins cannot contain the special value “*” since that cannot

跨域配置遇到这种情况就是配置的有问题,不正确。修改完毕就可以解决这个问题。

2024-06-09 11:50:13 346

原创 Spring boot开启跨域配置

Spring boot解决跨域问题还是很方便的,遇到跨域问题,通过以上方式都可以实现解决。

2024-06-09 11:45:26 688 1

原创 Spring boot实现基于注解的aop面向切面编程

经过测试,校验参数功能正常。可以看到,spring boot的aop功能使用起来还是相当简单的。

2024-06-04 22:44:58 1029 2

原创 Spring boot 集成Redis

Spring boot开发项目时,难免会需要redis的加持,比如登录信息要存redis、一些热点数据的缓存、使用redis实现分布式锁,使用redis过滤前端数据实现幂等性等等。

2024-06-04 19:46:17 798

原创 Spring boot 集成mybatis-plus

mybatis-plus是对mybatis的功能增强,并且只做增强,不做改动,也就是说,你完全可以把mybatis-plus当作mybatis来做

2024-06-03 15:24:46 633

原创 Spring boot集成mybatis

Spring boot集成mybatis就完成了,整个过程是非常简单的。

2024-06-03 12:17:40 364

原创 Spring boot 集成thymeleaf

pring boot集成通义千问已经完成,现在需要做一个简单的页面展示,作为一个八年没有摸过前端的后端开发人员,不得不又拿起了html和thymeleaf

2024-05-31 22:05:04 778

原创 Spring boot集成通义千问大模型实现智能问答

我在用idea进行java开发时发现了通义灵码这款免费的智能代码补全插件,用了一段时间了,感觉很不错。就想着在自己的项目中也能集成通义千问大模型实现智能回答,毕竟对接openai需要解决网络问题,这个问题是真烦。

2024-05-30 21:59:58 2180 3

原创 Spring boot集成easy excel实现导入导出操作

使用easyexcel实现导入和导出确实是非常方便的,同时,easyexcel还支持批量导入和批量导出,确实非常nice。

2024-05-28 21:15:40 576

原创 如何让社区版IDEA变得好用

收费版的idea功能非常强大,但是收费;社区版的免费,但是功能被阉割了。如何才能让社区版Idea变得好用,一、打开项目前进行全局配置;二,寻求各种插件的支持。在经过全局配置编码、maven、jdk版本后,再加上各种插件的支持,社区版idea也能具有:智能代码补全、spring boot配置文件提示、maven版本冲突分析、mybatis关联、controller接口自动识别、代码纠错、重复代码解放双手等高级功能。

2024-05-24 22:09:00 2480

原创 基于Go实现的分布式主键系统

在当前,最受欢迎的分布式主键生成算法是雪花算法,该算法由64位二进制数组成,如下图所示,它通过组合不同的二进制位来生成唯一的主键。雪花算法是由64位二进制组成的,其中,第一位是一个固定的符号位,其值永远不变,接下来的41位用于表示时间,精确到毫秒级别,接着的10位用于标记机器的位置,最后的12位是序列号。通过雪花算法,程序可以在每毫秒内生成12位二进制数,相当于2的12次方,共计4096个数字。采用这种方法可以确保:1、每个生成的ID随时间递增;

2024-05-21 19:01:37 1277 2

原创 压测过不去,问题排查到了Linux底层

在开发过程中,都是会遇到各种奇奇怪怪的问题,有些是代码层面的,有些是网络层面的,有些则是操作系统层面的。所以,在遇到问题时,千万不会慌乱,要按照步骤、过程,一步一步地排查,问题总能水落石出。

2024-05-16 16:41:18 243

原创 错误: 找不到或无法加载主类 回归java运行的本质

错误: 找不到或无法加载主类 回归java运行的本质

2023-10-31 22:18:19 354

原创 Caused by: java.net.BindException: Address already in use: bind

Caused by: java.net.BindException: Address already in use: bind

2022-11-27 21:36:57 14791 1

原创 vscode使用restClient实现各种http请求

vscode使用restclient插件,vscode如何请求http接口。restclient的使用postman的替代

2022-11-25 23:03:13 7582 2

原创 Okhttp3最佳使用方式

okhttp3是个非常好用的http的库。要比httpclient好用多了。如果想更多的了解使用okhttp3,我还是推荐大家去官网去看看。链接:官网。

2022-08-26 22:41:55 1842 1

原创 go集成gin处理error

go集成gin集中处理error1 gin的使用gin在go开发web的占比是挺大的。很好用的web框架,简单快速高效。但是呢,在使用gin的过程中,如何去统一去处理error和数据返回给客户端呢?原始的做法如下:func main() { r := gin.Default()//路由引擎 r.GET("/get",getMsg) //get方法 r.Run(":9090") //如果不指定IP地址、端口号,默认为本机IP地址、8080端口}func getMsg(c *gin.Con

2022-05-16 22:35:47 1790

原创 go集成grpc

go集成grpc一,准备条件1.1 下载protoc.exe可以去 https://github.com/protocolbuffers/protobuf 下载1.2 下载protoc-gen-go.exe通过命令 go install google.golang.org/protobuf/cmd/protoc-gen-go@v1.26 得到1.3 下载protoc-gen-go-grpc.exe通过命令 go install google.golang.org/grpc/cmd/proto

2022-03-08 18:22:17 4159 2

原创 redis实现延时队列的两种方式

背景项目中的流程监控,有几种节点,需要监控每一个节点是否超时。按传统的做法,肯定是通过定时任务,去扫描然后判断,但是定时任务有缺点:1,数据量大会慢;2,时间不好控制,太短,怕一次处理不完,太长状态就会有延迟。所以就想到用延迟队列的方式去实现。一,redis的过期key监控1,开启过期key监听在redis的配置里把这个注释去掉notify-keyspace-events Ex然后重启redis2,使用redis过期监听实现延迟队列继承KeyExpirationEventMessageLi

2021-01-29 16:09:09 10922 9

原创 记录一次kafka消息挤压,磁盘爆满事故

背景事情是这样的,生产的单机kafka有两个队列,消息挤压4个亿,磁盘已经超过98%,眼看服务器就要嗝屁了。这可把我们吓得浑身冷汗,激动不已。二话不说,先关机器,删数据,再起机器。然后就要思考到底是什么问题导致的。改造一kafka的partion数量太少了,竟然配置的是1,我特么真是服了,谁他么配置的参数。就一个partion。虽然消费者,起了三个服务,但是就一个partion,也只能有一个消费者消费呀。所以,二话不说,改造首先给partion数量改为了12,其次,给消费者加了并发4,这样三个服务

2021-01-27 10:49:33 2108 1

原创 闲来无聊手撸(冒泡排序,选择排序,插入排序,快速排序,归并排序)JAVA语言

背景最近临近过年,公司各种工作已经是不太忙碌,就闲来无事,手就有点痒痒。于是就没事儿撸撸各种排序算法,也算排解一下寂寞。一,冒泡排序冒泡排序可以说是最简单的排序方式了,其过程就如同它的名字一样,挨个比较,慢慢移动,把大的或者小的给移动到一端。其动态图如下:冒泡排序的java代码实现也很简单,如下:/*** 冒泡排序 */public static void maoPao(int[] args){ int temp; for(int i =0;i<args.length

2021-01-25 15:44:04 996 4

原创 mybatis分布式主键冲突--解决方式:修改默认雪花算法

背景上一篇 mybatis的分布式主键冲突 中,我提到,解决方式有两种,第二种就是修改默认的雪花算法实现方式,让机器标志不重复。1,分析idworker类如下图所示,idworker类有一个initSequence方法,而雪花算法的机器标志就是由里面的两个参数workerId, datacenterId来组成的。所以,我们只需要自定义workerId, datacenterId这两个值,保证他们不完全一样,那么机器标志就不会重复了。2,自定义workerId, datacenterId我们是在m

2021-01-15 09:47:19 3028 1

原创 mybatis的分布式主键冲突

背景我所在团队的一个项目是微服务架构,同一个服务,会部署多个实例。然后在项目中用的是mybatis的自带的分布式主键想必ID_WORKER这个东东,大家也都不默认,就是雪花算法实现的。雪花算法是由64位二进制数组成的。其中包含时间戳+机器标志+自增序号。理论上,不同机器的机器标志是不同的,也就是说,理论上,雪花算法生成的id是唯一的。但是,机器标志是通过hash算法得到的,这表明,机器标志是有可能重复的。当机器标志重复,那么雪花算法就会出现主键冲突的问题。1,mybatis获取主键可以看到,当标记

2021-01-14 10:18:29 2602 1

原创 mysql和redis实现自定义序号生成

通过redis和mysql实现自定义序号服务背景项目需要序号服务,该序号由标志字母+日期+自增数字。所以,考虑使用redis和mysql的方式去实现它。获取序号通过redis,可以保证线程安全。然后号段通过mysql去操作,对mysql的操作通过redisson分布式锁保证分布式一致性。1,所需环境redis和redisson分布式锁mysqlmybatisPlus2,数据库表CREATE TABLE `t_redis_sequence` ( `biz_tag` varchar(64

2021-01-12 13:38:47 1388 2

原创 一次频繁gc的故障分析

生产上一次频繁gc的故障分析事情是这样的,公司的微服务监控系统显示我所在项目的一个服务频繁掉线。接到这个消息后。首先,我觉得可能是服务器oom内存溢出了。就去查看服务状态,发现服务heap正常,表现出来的效果是正常的,就像没有掉线过一样。然后,直接去找运维,去生产上的容器中,查看服务器状态。1,通过 jps 查到服务进程jps2,通过如下命令查看服务内存状态jstat -gc pid效果如下S0C S1C S0U S1U EC EU

2020-11-24 12:24:41 2349 1

原创 easy excel 实现分页批量导出

easy excel 实现分页批量导出这是工具类核心主要对easyExcel做了易用性的封装,需要导出的话,就继承这个类。@Log4j2public class EasyExcelBaseController<T> { /** * 导出时候 获取某一页的数据. */ protected List<T> getExportPageData(Object condtion, int current ,int size){ r

2020-10-15 15:02:01 5577 5

原创 java下载文件的一个坑点(下载的文件比原文件大,多了几行)

事情的起因是这样的 我这边写了个批量导出csv文件,经过各种测试没问题。然后,功能上线了,用同事写的下载接口。下载下来傻眼了?文件是空白的。真惊出了一身冷汗,各种排查,各种本地复现,我靠,没问题呀。文件都是正常的。(不对,一定有猫腻) 自己又想了想,我自己测,都是在磁盘看的,没有经过同事的下载。而线上是经过同事的下载搞下来的。我靠,我感觉问题已经在那里了,这坑货。绝对下载功能有问题呀。然后去排查下载功能。说理说,下载功能很简单,不应该呀。看了看,一个简单的下载功能,他竟然网关

2020-07-16 09:57:06 3534 2

原创 apollo配置使用,坑点分析

一,配置一定要点发布二,默认的application配置也要点发布三,使用公共配置,一定要关联,这样避免出问题,也比较规范四,yml的格式,最好,提前排错。格式错误,会导致,配置拉不下来五,项目引入多个namespace的配置,如下图。顺序在前的先加载,如果,后面的配置依赖某一个配置,那么依赖的那个配置要在前面。六,配置会在本地缓存,怀疑最新配置没有拉下来,可以找到本地缓存的配置对比一下。ps(位置百度,windows跟linux目录不同)七,apollo支持动态配置,不过,要使用apoll.

2020-07-07 14:49:21 1677

原创 文本对比工具哪些好用?竟然有在线的。真香。

1, beyond compare这个确实比较好用,但是,只有试用期,需要破解。不喜欢2,https://www.json.cn/我刚发现,这个json网站,竟然可以比对文本。小惊喜呀。来看一看。json网站地址如下图,右上角的代码对比还别说,挺好用呀。支持两个文件以及三个文件的对比。不错,真香。...

2020-07-07 14:34:41 1194

原创 zookeeper集群搭建

一,服务器准备1,准备在下面三个服务搭建zookeeper的三节点集群192.168.1.195192.168.1.196192.168.1.197二,安装过程1,链接: https://pan.baidu.com/s/1KAtNcBNaLtTX_aWIIM2heg 提取码: ggig。下载后,通过xftp上传服务器在/u02目录下解压。三台服务器同样的操作。unzip zookeeper.zip2,进入zookeeper/conf下,修改zoo.cfg配置文件。把下面配置复制到里面。三

2020-06-22 14:07:01 159 1

原创 kafka集群搭建

一,服务器准备1,准备在下面三个服务搭建kafka的三节点集群192.168.1.195192.168.1.196192.168.1.1972,通过xftp把资源文件夹的kafka_2.11-2.0.1.zip 上传到服务器的/u02目录下。每一个服务器都执行。二,安装过程1,kafka需要java8环境,这个需要提前准备java8环境。2,进入到/u02目录下,把安装包解压,每一个服务器都执行。unzip kafka_2.11-2.0.1.zip3,进入/u02/kafka_2.

2020-06-22 13:54:38 653 1

原创 nacos借助keepalived搭建高可用服务

nacos借助keepalived搭建高可用服务1,安装keepalived软件,本操作系统为centos。yum clean allyum install -y keepalived2,keepalived简单操作 systemctl start keepalived.service #启动keepalived systemctl stop keepalived.serv...

2020-02-17 13:54:31 1322 1

原创 redis5集群搭建

redis集群搭建一,下载安装redis官方下载地址:https://redis.io/download下载后,通过xftp连接linux服务把安装包放到/usr/local/redis #目录下通过命令,把压缩包解压tar zxvf redis-5.0.7.tar.gz解压后,进入redis-5.0.7目录,执行make。(需要有gcc,没有的话安装gcc)make...

2020-02-16 11:54:53 117 1

原创 redis3集群搭建

redis集群搭建一,集群搭建准备1,准备在这三个服务器,搭个三主的集群10.19.161.19510.19.161.19610.19.161.1972,在家目录下新建redis文件夹,把redis-3.2.9.tar.gz复制到redis文件夹下。cd ~mkdir rediscp ./software/redis-3.2.9.tar.gz ./redis/3,进入red...

2020-02-16 11:49:27 296 1

原创 使用nacos配置教程

1,访问nacos网页默认nacos网页为 uat环境地址进入网页,默认账号 nacos 密码 nacos2,配置管理1,页面概述进来页面如下,我已经建立了三个命名空间,dev,test,prod。也在dev命名空间建立了各模块的配置文件。nacos通过命名空间隔离配置和服务。大家如果需要自测,需要自己的配置,可以自己建立自己的命名空间。把配置克隆到自己的命名空间。然后修改自己明明...

2020-02-16 11:45:14 7477 1

原创 nacos集群搭建

nacos 集群搭建1,我在这三个服务器搭建nacos集群。后续搭建根据自己服务器的真实ip10.19.161.196 10.19.161.19710.19.161.2392,在root的家目录下,建立 application 目录,然后把nacos解压到这里。如果没有这个安装包,文件夹有,可以通过xftp传过去。cd ~mkdir applicationcp ./softwa...

2020-02-16 11:43:58 550

原创 IDEA启动web项目页面中文乱码

IDEA启动web项目页面中文乱码1,处理idea控制台乱码在vm options添加 -Dfile.encoding=UTF-8-Dfile.encoding=UTF-82,处理文件编码3,处理 idea的vm options添加-Dfile.encoding=UTF-84,处理tomcat的server.xml添加 URIEncoding=“UTF-8”&...

2020-01-31 11:04:22 1559

原创 java生成token和验证token

java生成token和验证token1,登录生成tokenpublic class TokenService { public String getToken(User user) { Date start = new Date(); //一小时有效时间 long currentTime = System.currentTimeMillis() +...

2020-01-22 13:58:42 2108

原创 开了hystrix 通过feign调不通服务的一次故障分析

开了hystrix 通过feign调不通服务的一次故障分析一,微服务之间通过feign调用,本来都是正常走通的。在配置了hystrix 之后 就走不通了,只是有了个空指针异常二,通过各种方式的查找,终于发现了问题的地方,代码如下:/** * Feign配置 * 使用FeignClient进行服务间调用,传递headers信息 */@Configurationpublic class...

2020-01-22 13:53:05 1020

原创 spring实现url路径匹配

spring实现url路径匹配1,要想实现路径匹配,我们需要借助AntPathMatcher,这个是org.springframework.util工具包下的类。2,AntPathMatcher不仅可以匹配Spring的@RequestMapping路径,也可以用来匹配各种字符串,包括文件路径等。基本规则:(1)? 匹配一个字符(除过操作系统默认的文件分隔符)(2)* 匹配0个或多个字符...

2020-01-19 20:39:03 4895

空空如也

空空如也

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

TA关注的人

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