自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

weixin_64842400的博客

在校大四生,学习记录。

  • 博客(109)
  • 收藏
  • 关注

原创 Windows环境下 Go项目迁移至Ubuntu(WSL) 以部署filebeat为例

还有当你把go.mod文件删除后,重新go mod init + ModuleName ,也是需要go mod tidy的,否在会报错【当然,如果你go mod tidy 了还报错,就需要检查你当前路径是否在GOPATH下,如果在的话可以切换GOPATH路径,或者退出GOPATH路径,这也是Module模式和GOPATH模式的区别】1、先在Ubuntu操作系统下,配置go语言环境【需要go build ,当然如果你是打算在外界编译成可执行文件,然后丢到wsl,可以不要配置go环境】

2025-07-24 20:40:42 365

原创 GoLand 部署第一个项目

GOPATH:需要配置GOPATH路径,将GOPATH目录视为工作目录,下面建立三个子文件夹,分别为src(存放所有项目的源码)、pkg(存放所有项目的依赖)、bin(存放所有项目的二进制文件)。编译项目,打包成可执行文件(Windows):go build -o filebeat.exe (接exe文件存放的路径,当前路径为 ‘.’)前言:Go环境部署分为两种模式,一种是基于GOPATH部署(老版本),另一种是基于Module部署(新版本v1.11开始)。整理依赖包:切到go.mod的路径下。

2025-07-22 19:22:13 270

原创 Docker中Redis修改密码失效

docker容器中,我们通过docker run命令运行某一容器这里,我们通过以下命令来进行运行【注意,这里有两个关键点:-d 和--requirepass】通过-d命令,当我们启动容器的时候,后台会自己去执行 redis-server命令【并且读取/etc/redis/redis.conf配置文件的信息】

2025-04-08 10:44:24 611

原创 ubuntu系统安装docker

PS:我看网上其他教程,就是让你执行以下systemctl daemon-reload,systemctl restart docker,这样你通过docker info命令,会发现镜像源配置没有变化,后面了解到,还需要额外重启docker.service和docker.socket。发现是默认的镜像源被禁用了,于是需要额外指定镜像源,在 /etc/docker/daemon.json文件中【如果没有该文件,则新建文件】系统 :ubuntu 22.04。更改后,就能成功拉取镜像了。

2025-03-28 19:23:20 1042

原创 Feign请求发生中文乱码

注:使用@PostMapping、@RequestMapping的情况下,@Headers将失效 ,所以需要额外再@PostMapping注解中配置编码方式,通过。2、produces: 指定返回的内容类型,仅当request请求头中的(Accept)类型中包含该指定类型才返回。场景:服务的发起方,本地看的时候是没有出现中文乱码的,但是请求发送到接收方的时候,收到的是乱码,导致功能异常。

2025-03-18 19:06:43 356

原创 自动同步多服务器下SQL脚本3.0

由于上一版发现数据库【MySQL】不支持DML事务回滚,该迭代主要是去兼容这种问题。数据表新增一个completed字段,用来表示当前版本下同步成功的个数。

2025-03-12 17:30:55 395

原创 线上排查流程笔记

堆是由垃圾回收来负责的,堆的优势是可以动态地分配内存大小,生存期也不必事先告诉编译器,因为它是在运行时 动态分配内存的,Java的垃圾收集器会自动收走这些不再使用的数据。在Java中一个线程就会相应有一个线程栈与之对应,这点很容易理解,因为不同的线程执行逻辑有所不同,因此需要一个独立的线程栈。而堆则是所有线程共享的。拿到dump文件后,结合工具可以获得可视化图像展示,如MemoryAnalyzer工具,可以看到堆的内存分配使用情况,我们往往可以观察使用前几的对象,去看相应的方法栈,结合对应代码分析。

2025-03-11 18:50:13 1020

原创 自动同步多服务器下SQL脚本2.0

考虑到1.0的适用场景太过苛刻,一次只支持读取至多一个版本的脚本变化,想涉及多个脚本的连续读取就有困难,于是有了2.0。该版本支持读取多个版本的sql脚本,并且如果某一脚本出现sql问题【如重复插入相同名称的字段】,则当前版本回滚,同时hd_version表不留痕,以便下次部署的时候可以再次插入。2.0版本主要变动就是实现类:考虑到随着版本的变动,后续脚本文件维护的版本过多,不采用顺序读,改用。当然,也可以一个大版本对应一个SQL文件,也可以用倒序查找,都可以的...这里只是提供一个方案。

2025-03-11 14:34:01 510

原创 网关相关配置

​ inClass:将请求体转换为字符串【前提是能转换,如果转换失败,则网关报错,将这个请求拦截,不让继续路由转发,正常业务中,传递的都是json字符串,所以inClass一般是指定为String或Object类型】底层其实是将predicates下的一行行信息,转换成RouteDefinition对象,然后再分割成数组,最后被封装成一个个PredicationDefinition对象,放到list中。(不需要中间件 nacos,consul,Eureka)predicates:谓词,规则。

2025-03-08 11:21:29 495

原创 项目中同时使用Redis(lettuce)和Redisson的报错

当其他类需要redisTemplate的时候,即依赖RedisConfig,去完成Bean注册的时候发现redisTemplate依赖RedissonConnectionFactory,而RedissonConnectionFactory依赖RedissonClient,而RedissonClient依赖RedisConfig。直接上图,这个错表示依赖版本不匹配问题,我本地SpringBoot用的是2.7,但是Redisson版本用的3.32.5。我在它的基础上加了个。都是一样的,最终其实用的都是。

2025-03-07 19:25:19 1081

原创 我的创作纪念日

比如最近搭建deepseek+dify+ollama大模型,碰到的线上问题,这些都是花了我大量的排查精力总结出来的,我当然是不希望将来碰到同样的问题,又是辛辛苦苦走一遍,发现这个问题我曾经碰过...当然也有来自网友在看到我文章之后,仍旧有疑问的私信,这可能也是我当初欠缺考虑的点,能帮助我提升。写这个功能的初衷比较尴尬:因为我是实习生,没有申请线上服务器的权限,导致我在开发一个功能的时候,如果涉及到表结构的变更,经常会忘记同步到国外环境、正式环境,进而导致项目一上线就....

2025-03-07 16:07:59 551

原创 docker上部署dify-ollama-知识库搭建【Linux】

拉取代码,下载慢的可以搞个代理,几分钟就能下好。Git可以实时更新代码,同时git上的Issue也有很多问题反馈,说不定有你的问题。部署文档,参考官方文档把,毕竟其他人的也都是CV的官方文档(这里说一下我碰到的问题:服务刚起来的时候那一刻,是可以正常访问到的,但是过了会,继续访问 域名/install的时候发生了nginx 502网关超时问题,就好像服务垮掉了一样,但是我去看docker,发现nginx服务没挂,我继续访问域名/install的时候nginx日志没有更新。

2025-03-06 14:06:10 768

原创 自动化同步多服务器数据库表结构

由于这个工程是临时突加的,我也不好随便就测试环境的库来删删改改,因此我在本地windows上用docker部署了mysql,来测试的。以下是在windows上的docker部署mysql步骤:在c盘用户目录下,创建conf、data、logs三个文件夹在conf目录下,创建my.cnf文件,里面编写如下内容。[mysql]#设置mysql客户端默认字符集[mysqld]#设置3306端口port=3306#允许最大连接数#允许连接失败的次数。

2025-03-06 09:19:07 1034

原创 快速选择算法

平均时间复杂度O(nlogN),最坏时间复杂度O(n²),【冒泡,每次的基数正好是最大/小的数】快速选择并不是对集合内所有数排好序,而是对一个区间进行排序。而对于快速排序,它旨在将所有的数都。

2025-02-23 20:42:18 235

原创 补码溢出问题

所以对于一个Integer类型的数字,表示的范围应该是-2^31 - 1 ~ 2^31-1 (滑稽)。那为什么能表示-2^31呢,答案:我们认为规定1000 0000 0000 0000 0000 0000 0000 0000为-2^31。对于0这个数,表示方法有0000 0000 0000 0000 0000 0000 0000 0000【+0】和1000 0000 0000 0000 0000 0000 0000 0000 【-0】对于8bit的数字,1000 0000也表示为-128,即-2^7。

2025-02-23 20:06:02 317

原创 rebase和merge

rebase 和merge区别:rebase变基,改变基底:rebase会抹去提交记录。git pull 默认merge,git pull --rebase 变基。

2025-02-09 16:53:32 362

原创 手动配置IP

简要说一下:先去本地DNS服务器发送DNS请求,如果有本地缓存,则直接返回,否则向根服务器发请求,比如我要查看www.baidu.com(.root)域名的IP地址,则向.root根域名服务器查询,发现有com.root,并告诉本地服务器去com.root的顶级域服务器看看,然后知道了baidu.com.root可能在哪一个权威DNS服务器,并返回给本地DNS服务器,本地DNS又向指定的权威DNS服务器发DNS请求,结果找到了,并返回对于的IP地址。网络位:类似于身份证的前六位,表示自己所在的大区(网段)

2025-02-09 16:45:19 2244

原创 迭代器的使用场景

迭代器是一个接口,它的存在,使得我们不需要关注一些细节,比如我们要遍历List、Set接口下的不同实现,常见的ArrayList、LinkedList、HashSet、Set<Map.Entry<K,V>>【Map.entrySet的返回值】,直接通过.iterator( )拿到迭代器,即可进行迭代操作。通过hasNext方法,通过迭代器的指针判断下一个元素是否存在(不存在则抛异常)通过next方法,将指针指向下一个元素,并输出 【指针初始化指向-1,下一个元素为0】通过。

2025-01-06 19:58:45 339

原创 时间格式转换

Date 类的这个构造函数期望的日期字符串格式是 EEE MMM dd HH:mm:ss zzz yyyy(例如:Sat Jan 04 11:19:51 CST 2025),而不是 yyyy-MM-dd HH:mm:ss(例如:2025-01-04 11:19:51)。我们有两种做法,一种是将时间格式替换为EEE MMM dd HH:mm:ss zzz yyyy ,对于我们当前的使用场景,那还不如直接new Date( ),再转一下格式。好处:操作简便,不需要我们每次去手动转换时间格式。

2025-01-04 13:53:35 1112

原创 责任链模式应用

通过责任链设计模式,

2025-01-03 18:30:57 850

原创 Json字符串解析失败

JSONField @SeriealizedName注解是用来解析json字符串的时候,注解中的值解析成对应的字段。有关(详见我另一篇博客,有讲到为什么会返回LinkedHashMap),直到后面比较了json字符串的命名才发现原因。所以,对一段json字符串,用驼峰命名的,你用下划线去接受解析结果,能有值就有鬼了....通过JSON.parseObject方法,拿到的对象,值为null。通过第三方服务,拿到响应体的data对象(拿到的时候对象是有值的)

2025-01-03 16:04:52 293

原创 常用的数据结构API概览

究其原因:对list类型进行输出的时候,会遍历list中的每个元素,并调用其toString方法,取决于toString方法是否被重写,没有重写的话,则默认使用Object类的,所以得到哈希值,而对于Integer类型等都重写过toString方法,所以可以拿到具体值。内存储的是一个数组/ 对象,我们通过sout 输出的时候,有的时候是具体的值,但有的时候只能得到哈希地址。1、在初始化一个ArrayList的时候,如果我想同时set一些值。注意,这里创建list集合的方式是通过new 关键字。

2025-01-02 14:10:50 538

原创 Git关联多个仓库

场景: 我从Gitee关联了仓库A,但是我想一边能继续关联仓库A(获取新代码),一边想自己建个仓库GitCode,放自己的代码。1、git remote -v 查看当前关联了的仓库 (仓库A)2、git remote add (远程仓库命名)GitCode 仓库地址3、关联后继续通过 git remote -v 查看是否关联上了4、我们直接 git push originSelf(远程仓库名称) 【第一次不用git add 再git commit操作】

2025-01-02 10:02:19 525

原创 格式化输出年月日

结论:老老实实用yyyy,得到的年月日是我们口头上说的时间,而YYYY有点反人类....对于一年的最后一周的一些日子,会统计成下一年;对于下一年的第一周的一些日子,会统计成上一年;你猜我发这篇博客的时间是什么时候?

2024-12-31 16:58:07 234

原创 apifox

如果传json串的话,需要将Content-Type覆盖为application/json。

2024-12-27 10:29:33 987

原创 项目热加载

是对整个项目进行编译(如果已经编译了,相对的叫法应该是重新编译),编译前会检测是否有文件进行更新,没有的话则不会进行操作。(具体是通过子线程去维护每个文件最后修改的时间戳,如果时间戳变动了,说明有文件发生了变化)是对当前(光标)所在文件进行热加载,只针对当前的java文件,不管你有没有改动,都会强制重新编译一遍。如果没有光标,则会对整个模块或整个项目进行热加载。(取决于你上次编译的是整个项目还是当前模块)PS:调试状态下,才有用,如果是在运行状态下,无用。配置完毕后,点击按钮,即可完成热加载。

2024-12-26 15:03:02 496

原创 JSON工具包,常用API

对于json字符串中内容:1、为数组对象,即字符串最外层通过中括号括起来,当我们使用JSON工具包去解析的时候,需要通过parseArray方法,否则会报错。返回值为List<?2、为普通对象,通过parseObject方法去解析, 返回值为 T。当然,如果json字符串本身是普通对象,(即没有通过中括号括起来)而你返回值又想要一个List的形式(兼容),那我们可以将结果通过Collections.singletonList( )手动转换一下。

2024-12-24 15:58:40 262

原创 json数据传递过程中,被改成LinkedHashMap导致CastException

可以发现 我们封装的MsgVo下的data数据,为ArrayList类型,但是里面又封装了一个LinkedHashMap类型的元素。服务B发起http post请求 给服务A。服务B 拿到服务A的返回值(list类型)将集合转换为新的类型。

2024-12-17 17:05:17 344

原创 ES语句——DSL(kibana语句)

ESDSL语句

2024-12-09 19:21:46 1199

原创 利用Hutool工具类,创建CSV文件,并上传至Oss

转成InputStream流,在finally块中,删除本地文件。【当然,这里直接传File文件也可以】ak : Access Key ID sk : Access Key Secret 两个密钥。通过putObjectRequest封装:对应的桶下的绝对路径,输入流。,创建本地文件(临时的,在上传至Oss后,删除)endpoint : 服务访问入口。bucketName :存储桶名称。region:服务所在大区。src:路径 + 文件名。

2024-12-09 09:41:15 574

原创 刷算法心得

当返回值是数组 / list集合 的时候,我们可以通过中间数据结构 list集合/ 数组去赞数存放数据,最后再调用工具类,转换回去。如数组转换成list ,我们可以通过Arrays.asList( 数组 );

2024-12-07 14:46:02 1038

原创 过期策略、内存淘汰机制

使用key之前,检查是否过期,属于一种被动的处理方式。因此,过期时间到了不表示这个key真的被删除了:Redis默认每隔100ms检查,有过期key则删除,检查方式为随机抽查。定期删除属于的一种补充机制。redis使用额外的字典专门存储带expire过期时间的key,redis默认有16个DB,删除时尝试轮询每个DB的expire字典,遍历一遍该字典即可,空间换时间。同时,还会全局记录当前处理到了哪个DB,方便后续从当前位置开始。

2024-12-07 14:43:47 647

原创 数据结构中数据有序性/ 单调性 ——二分查找

以下记录的都是。

2024-11-10 23:39:48 752

原创 从0开始创建一个SpringBoot项目可能发生的问题

其次,在我们的配置文件,如yaml中指定控制台打印的等级,可能设置了INFO ,这样debug级别就不会打印到控制台中。项目中我通过@Slf4j注解,引入log ,打印时,控制台看不到输出。格式:logging.level.com.(启动类所在的包名)1、未配置数据源,导致SpringBoot项目起不来。环境:JDK17 + SpringBoot3.3。2、引入日志框架,控制台还是看不到日志输出。解决办法: 先确定我们项目中引入了依赖。解决办法:在启动类上面。

2024-11-04 20:50:51 271

原创 二叉树相关算法

一、dfs深度搜索例题:求树的深度、树的中序遍历、树的直径、二叉树的最近公共祖先、二叉树中的最大路径和dfs思想:都是基于递归,将大问题化解成子问题。

2024-11-04 20:50:10 535

原创 云服务器数据库的问题

mysql>update user set user="新用户名" where user="旧用户名";了解到问题出在用户root【root作为我们从外界访问数据库的桥梁】,于是尝试添加root用户回去。进入 /etc/mysql/mysql.conf.d/mysqld.cnf。路径:/etc/mysql/mysql.conf.d/mysqld.cnf。localhost表示本地,mysql登入的时候,不用指定ip登入。重启数据库,直接进入数据库,发现用户只有四个。结果没有再报错,root用户创建成功。

2024-10-28 16:47:07 457

原创 Web容器和Servlet容器、Spring和SpringMvc

即属于Web容器,又属于Servlet容器,所以称为轻量级应用服务器。属于Web容器,即只能解析html,image等静态资源,不能解析JSP文件,而Tomcat都可以解析,但是主要是解析JSP、Servlet等动态资源,在解析静态资源时效率没有Apache高。Apache:也就是说你在服务器的目录下面丢个index.html,通过http:xxx//8080/index.html可以访问;倘若丢个index.jsp,无法解析,无法通过http:xxx//8080/index.jsp访问。

2024-10-27 10:52:03 452

原创 IO及网络编程

IO分类:分为IO一切程序皆文件,这样对于我们程序员来说,只需要open、read、write、close接口,即可完成全部操作。FD,一个索引,内核中维护了一些数据结构,通过文件描述符能找到对应的文件,文件读写到了那里。比如调用open(‘file:// ***’)函数,,将来我们调用read()/ write()的时候,参数就是对应的文件描述符传统的web服务器中,当我们三次握手成功后,通过调用函数,可以得到对应的文件描述符(进行网络通信的),也叫。

2024-10-26 18:58:06 478

原创 阻塞与非阻塞

阻塞与非阻塞、同步与异步

2024-10-26 13:50:27 287

原创 Spring Cloud Alibaba

拆分成微服务架构的优点:如果某一个服务出了问题,最终宕机的是当前问题服务,而对于单体架构,然后一出出来error如OOM,可能整个工程都崩溃了。对于大型项目,拆成多个服务后,可以更细致的管理,达到敏捷开发,如果是很多人共同去维护一个项目,在提交代码的时候可能还会频繁出现合并冲突。注册中心的引入:早些年,在微服务架构引进之前,我们如果把一个工程拆成多个子系统,更多的是通过给不同的子系统分配一个二级域名,然后交给nginx来负载均衡。

2024-10-22 17:39:55 810

空空如也

空空如也

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

TA关注的人

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