- 博客(100)
- 问答 (1)
- 收藏
- 关注
原创 【go语言 | 第6篇】Go Modules 依赖解决
h1:hash情况:是 Go modules 将目标模块版本的 zip 文件开包后,针对所有包内文件依次进行 hash,然后再把它们的 hash 结果按照固定格式和算法组成总的 hash 值。当前的 go_modules/modules_test 项目,依赖一个叫github.com/aceld/zinx库的,znet和ziface只是zinx的两个模块。当 Go 认为肯定用不到某个模块版本的时候就会省略它的 h1 hash,就会出现不存在 h1 hash,只存在 go.mod hash 的情况。
2025-12-24 15:23:18
929
原创 【go语言 | 第5篇】channel——多个goroutine之间通信
channel 用于多个 goroutine 之间的通信。// 创建一个 channeldefer fmt.Println("goroutine结束!")fmt.Println("goroutine正在运行")// 将数据发送到 channel 中c <- 100}()// 从 channel 中接收数据, 存入到 numfmt.Println("main goroutine 结束")为什么 main goroutine 中的执行会在 子goroutine 之后?
2025-12-16 21:13:29
829
原创 【go语言 | 第4篇】goroutine模型和调度策略
M1 正在通过 P 正在处理 G1,P的本地队列中还有等待处理的 G。每个线程(M)通过一个process调度器(P)来处理协程(G),每个 P 管理一个存储 G 的本地队列,还会有一个额外的全局队列。将线程分为内核态和用户态,CPU 本身是无感的,从 CPU 的角度看去,还是认为自己处理的是整个线程(包括内核态和用户态)传统的时间片轮转对线程的调度,CPU切换会消耗大量成本,甚至在线程数量很多的情况下,CPU切换的时间高于线程的执行时间。重心在于优化协程调度器,协程调度器越好,CPU 利用率越高。
2025-12-16 18:56:27
765
原创 【SpringCloud | 第5篇】Seata分布式事务
在微服务项目中,一个请求可能会涉及多个服务,每个服务会单独连接数据库,此时的 @Transactional 注解无法保证微服务下数据的一致性。在单体服务中,一个请求只会在一个服务中,连接一个数据库,对事务的回滚就可以使用 @Transational 进行回滚,保证数据的一致性。注解,在其他本地事务加@EnableTransactionManagement,@Transactional,即可保证事务的一致性。只需要在 TM 事务管理器的方法上添加。在项目中配置Seata之后,
2025-12-16 15:10:03
791
原创 【go语言 | 第3篇】go中类的封装、继承、多态 + 反射
go 语言中,类名、属性、方法的首字母是否大写,都与其是否能被外部(其它包)访问有关,否则只能在本包内访问。反射是通过 pair 结构来得到 type。interface 用于。
2025-12-15 21:00:16
339
原创 【go语言 | 第2篇】Go变量声明 + 常用数据类型的使用
defer 出栈是在方法的 } 后,也就是方法已经完全结束后,才出栈执行。defer 执行顺序:通过栈的方式,依次压入栈,再依次出栈执行。
2025-12-15 16:33:17
854
原创 【SpringCloud | 第4篇】Gateway网关统一入口
可以仿照 QueryRoutePredicateFactory 编写一个自定义断言配置。!自定义断言类的类名中 RoutePredicateFactory 之前就是就是配置文件中要写入的断言名 name。仿照实现 GatewayFilterFactory 接口的某个 FilterFactory 实现。
2025-12-15 15:10:54
875
原创 【SpringCloud | 第3篇】Sentinel 服务保护(限流、熔断降级)
发送的所有请求中,80%都是慢请求(80%的请求都响应时间超过了最大RT),就会进行30s熔断,在这30s内不会再发送请求。发送的所有请求中80%都是异常的请求,就会进行30s熔断,在这30s内不会再发送请求。无熔断的情况下,需要每次向服务发送请求,请求失败后,才返回兜底。有熔断时,不需要向服务发送请求,直接返回兜底,节约服务执行时间。限制多余的请求,保护系统资源不被耗尽,提升系统的稳定性。参数例外项:设置某个指定参数作为例外,可以不进行限制。切断不稳定调用,快速返回不积压,避免雪崩效应。
2025-12-14 13:32:55
724
原创 【SpringCloud | 第2篇】OpenFeign远程调用
远程调用超时失败后,还可以进行多次尝试,如果某次成功返回ok,如果多次调用仍然失败则结束调用,返回错误。就是向该 url 提交请求,没有则是向指定的注册服务提交请求。调用阿里云的API获取某城市的天气。注意:@FeignClient 后有。调用的远程服务宕机,读取不到数据。在 yaml 配置文件中。
2025-12-11 12:12:44
779
原创 互联网大厂Java面试故事:AIGC场景下微服务、缓存与安全技术全流程解析
本故事以AIGC平台为业务主线,层层递进剖析了Java大厂面试中微服务、缓存、消息队列、安全、API设计等关键技术栈的应用与原理,配合真实场景解答,助力初学者系统掌握大厂核心技能。
2025-12-03 22:00:28
851
原创 互联网大厂Java面试实录:电商场景下微服务、缓存与高并发技术全解析
通过模拟电商场景下的大厂Java面试,系统梳理了高并发、微服务、缓存、消息队列、日志、CI/CD、分布式锁等核心知识点,配合具体业务案例和详细答案,帮助初学者全面掌握大厂必备技术。
2025-12-03 21:00:37
565
原创 互联网大厂Java面试故事:核心技术栈与场景化业务问题实战解析
本故事结合内容社区真实业务场景,层层递进梳理了Java大厂面试中核心技术栈的常见问题和解题思路,既让面试故事生动有趣,也为小白系统学习Java技术栈提供了详细的业务与技术指引。
2025-12-03 20:00:41
468
原创 互联网大厂Java面试之谢飞机的奇妙冒险
ReentrantLock是JUC包中的锁实现,与synchronized相比,ReentrantLock具有更灵活的锁获取与释放方式,支持公平锁与非公平锁。:线程池啊,有很多种吧,大概就是FixedThreadPool,还有其他的,哈哈,主要是用来管理线程的,让它们不至于乱跑。:SpringBoot挺方便的,嗯,自动配置啥的,不用自己写太多xml,哈哈。:啊,内存模型嘛,就是JVM啦,堆和栈这种东西,哎呀,反正就是内存的管理啦。:ReentrantLock,哈哈,就是可以重新进入的锁嘛,嗯,它是个锁。
2025-12-03 13:54:14
396
原创 【SpringCloud | 第1篇】分布式系统 + Nacos作为注册中心和配置中心
采用spring-config-import多部分配置的方式,通过不同的spring.profiles.active来区分不同的运行环境,并为每个环境指定了需要从Nacos配置中心加载的特定配置文件。在分布式微服务之前,如果了修改项目配置,需要对项目重新打包部署,需要将已上线的服务下线,再重新上线,中间会停机。如果项目中的某个模块使用Java语言,另一个模块使用Python语言开发,集群模式无法进行多语言的调用。服务发现:当某个服务需要调用另一个服务时,需要先向nacos询问,要调用的服务在哪些服务器上。
2025-11-18 16:33:03
723
原创 【微服务 - easy视频 | day03】服务与服务之间的调用
本人不分享项目源码,支持项目付费!!!区分对于原来的每个接口的实现操作应该在哪个服务中针对需要调用其它服务中的接口,可以采用 Spring Cloud 的 @FeignClient 注解拆分为微服务后,与前端对应接口,有修改的地方再进行修改。
2025-11-10 21:52:47
963
原创 【go语言 | 第1篇】Go环境安装+go语言特性
由于国内访问不到 https://proxy.golang.org 所以我们需要换一个PROXY,这里推荐使用https://goproxy.io 或 https://goproxy.cn。Go1.14版本之后,推荐使用go mod模式来管理依赖了,也不再强制我们把代码必须写在GOPATH下面的src目录了,你可以在你电脑的任意位置编写go代码。动态语言:没有编译器,只能在执行过程中逐条判断对错(Shell脚本,python,JavaScript)go语言的语法,定义函数的时候,
2025-09-10 21:11:34
959
原创 【RabbitMQ | 第3篇】Java 代码使用 RabbitMQ + 交换机 + 消息转换器
—> 比如登录功能,规定除了校验以外,还需要发送短信和加积分,校验成功后,如果直接把消息发送给队列,发送短信的消费者从队列中获取这个消息后,执行发送消息;但加积分的消费者从队列中就获取不到校验成功的消息,因为消息已经被消费了,就无法实现加积分的任务。一个项目可能需要数十上百个队列,直接在控制台创建交换机和队列,在本地环境中认为还可以,但是如果给测试人员,就需要自己写一份文档,让测试人员在控制台上手动创建,很容易出现错误,效率也很低。保证消费者每次只能获取一条消息,消息处理完后才能获取下一条消息。
2025-04-21 16:43:18
829
原创 【RabbitMQ | 第2篇】RabbitMQ 控制台实现消息路由 + 数据隔离
所以就像数据库一样,每个项目有自己的 virtual-host,不同的 virtal-host 有不同的交换机和队列,那么不同的 virtual-host 内的队列和交换机就不会产生影响。e.g |消息延迟 | | | | | 比如,在登录的时候,原本只需要校验用户名和密码,但需求说的是,还需要给用户发一条短信,或者还需要给用户加积分之类的。,由消息代理去慢慢通知消息处理方处理,用户就不需要一直等待,把任务通知给消息代理即可。消息发送者将消息发送给交换机,交换机路由到队列,消费者监听队列。
2025-04-20 20:08:34
1125
原创 【云服务器 | 下载 FFmpeg】云服务器上下载 ffmpeg + 配置
在云服务器下载 FFmpeg 的时候,如果出现很多问题,建议删掉原本的 ffmpeg,重新按照上面的步骤来。这个更详细,我也是跟着里面的步骤来的。
2025-03-30 00:35:36
1468
原创 【云服务器 | 项目上线】通过云服务器、宝塔部署,使项目可以通过外网访问
按着步骤来,是可以上线成功的。只是在数据库的地方,因为数据库名和本地的不一致,导致一直无法连接数据库,出现一些问题。
2025-03-19 02:19:01
1437
原创 【RabbitMQ | 第1篇】Erlang 和 RabbitMQ 的下载安装
通过 “rz” 命令将两个压缩包上传到 CentOS 7 虚拟机上,对其进行解压安装。执行 rabbitmq-server,就可以启动 Rabbitmq。Rabbitmq 有一个 Web 管理后台,是以插件的方式提供的。进入解压后的 rabbitmq 文件夹中,进入 sbin 目录,,需要哪个版本,就在地址最后修改就可以了。访问:http://虚拟机地址:15672。然后 esc,:wq 保存退出。
2025-03-09 22:01:41
2154
原创 【easy视频 | day08】客户端和管理端数据统计 + 管理端稿件、互动、用户、系统管理
高仿B站(单服务版) springboot项目实战 easylive本人不分享项目源码,支持项目付费!!!这个项目的单服务的实现就完成了。微服务还是这些业务,就是需要拆分为多个服务。暂时先到这里,微服务后面再继续学啦~
2025-03-07 16:45:17
1246
原创 【easy视频 | day07】es 搜索 + 热门视频 + AOP 校验 + 消息管理、历史记录
高仿B站(单服务版) springboot项目实战 easylive本人不分享项目源码,支持项目付费!!!es 是第一次接触,有些地方不是很看得懂,下来还需要再补。AOP 实现拦截器的过程更进一步理解了。mapper.xml 文件中的一些 sql 语句还需要多看,多理解。
2025-03-06 22:16:02
1347
原创 【easy视频 | day06】查看在线观看人数 + 个人主页 + 创作中心
高仿B站(单服务版) springboot项目实战 easylive本人不分享项目源码,支持项目付费!!!
2025-03-06 00:32:14
1216
原创 【easy视频 | day05】播放视频 +发布弹幕 + 点赞、收藏、投币 + 评论
高仿B站(单服务版) springboot项目实战 easylive本人不分享项目源码,支持项目付费!!!
2025-03-05 00:42:23
1273
原创 【easy视频 | day04】视频转码 + 稿件管理 + 服务端审核稿件
高仿B站(单服务版) springboot项目实战 easylive本人不分享项目源码,支持项目付费!!!主要是转码过程理解,以及审核视频的流程。
2025-03-04 00:33:50
1330
1
原创 【easy视频 | day03】客户端获取视频分类 + 上传投稿
高仿B站(单服务版) springboot项目实战 easylive本人不分享项目源码,支持项目付费!!!今天的难点是上传投稿中对于上传的视频以及上传视频中的分P视频文件的处理。要不断看代码才能理解。
2025-03-03 00:29:10
1404
原创 【easy视频 | day02】管理端登录校验 + 分类管理 + 文件上传
高仿B站(单服务版) springboot项目实战 easylive本人不分享项目源码,支持项目付费!!!
2025-03-02 00:16:19
1426
原创 【easy视频 | day01】项目了解 + 登录注册 + 使用 token 作为客户端请求令牌
高仿B站(单服务版) springboot项目实战 easylive本人不分享项目源码,支持项目付费!!!一般来说,一个项目的登录注册功能,往往是这个项目动手写代码时第一个要做的功能。这部分功能包括验证码获取、注册、登录、自动登录、退出登录等。这段功能理解起来并不复杂,重点就是对 Redis 数据的操作、细节的把控、以及代码书写规范。尤其是 token 的使用,Session 的理解。
2025-02-27 23:26:33
1672
2
原创 【Redis学习 | 第5篇】Redis缓存 —— 缓存的概念 + 缓存穿透 + 缓存雪崩 + 缓存击穿
缓存:数据交换的缓冲区(Cache),是临时存储数据的地方,一般读写性能较高。比如说,CPU读取数据是内存从磁盘中读取,再到CPU,磁盘中读取数据速度非常慢,于是在 CPU 中设置一个缓冲区,将 CPU常用的数据存储在该缓冲区中,需要使用这些数据时,直接从缓冲区中读取要比从磁盘中读取快得多!缓存的作用: 降低后端负载;提高读写效率,降低响应时间缓存的成本:数据一致性成本;代码维护成本;运维成本。
2025-01-12 18:12:45
1439
原创 【Redis学习 | 第4篇】Redis代替Session实现登录 —— 黑马点评的短信登录功能
session共享问题就是:多态 Tomcat 不共享 Session 存储空间,当请求不同 Tomcat 服务器时,会导致数据丢失的问题。为了并发,对 Tomcat 做水平扩展,形成多个负载均衡的集群。当请求进入 Nginx,会进行负载均衡,在多台 Tomcat 之间做轮询。每个 tomcat 有自己的 session 空间。当第一次请求负载到第一台 tomcat 时,会将数据存储在该 tomcat 的 session 中,比如说验证码。
2024-12-19 23:54:34
844
原创 【easy云盘 | day09】删除文件 + 回收站恢复文件
Springboot项目实战 easypan 仿百度网盘 计算机毕业设计 简历项目 项目经验(后端)再次重申:本人不分享项目源码,支持项目付费!!文件的删除和恢复过程实现起来比较复杂,需要考虑删除的文件是目录时,对目录下的子目录和子文件的操作;还有彻底删除文件时要考虑用户空间的修改。
2024-12-06 22:38:50
439
原创 【easy云盘 | day08】目录相关操作 + 移动和下载文件
Springboot项目实战 easypan 仿百度网盘 计算机毕业设计 简历项目 项目经验(后端)再次重申:本人不分享项目源码,支持项目付费!!
2024-12-05 22:11:09
384
原创 【easy云盘 | day07】文件转码(合并分片文件、视频文件切割、缩略图生成) + 文件预览
Springboot项目实战 easypan 仿百度网盘 计算机毕业设计 简历项目 项目经验(后端)再次重申:本人不分享项目源码,支持项目付费!!这段内容的代码实现过程比较复杂,容易混乱,写这篇博客笔记也花费了些时间,在写笔记的过程中,不断梳理实现思路,读懂代码。
2024-11-29 17:01:25
490
空空如也
google chrome
2023-03-30
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅