- 博客(87)
- 收藏
- 关注
原创 docker教程(从0到1, 一小时入门到精通)
Docker 多阶段构建的核心思想是:前置阶段完成项目编译构建,后置阶段基于轻量运行时镜像,仅复制最终产物,从而减小镜像体积并提升部署效率。Docker 创建镜像主要通过 Dockerfile 实现,使用命令将运行环境、代码和启动命令打包为可复用镜像,是企业级项目部署的标准方式。
2026-04-09 21:24:42
489
原创 markdown教程
你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:撤销:Ctrl/Command + Z重做:Ctrl/Command + Y加粗:Ctrl/Command + B斜体:Ctrl/Command + I标题:Ctrl/Command + S
2026-04-07 10:46:49
229
原创 黑马点评---好友关注
1.修改新增探店笔记的业务,在保存blog到数据库的同时,推送到粉丝的收件箱2.收件箱满足可以根据时间戳排序,必须用Redis的数据结构实现3.查询收件箱数据时,可以实现分页查询。
2026-03-19 20:08:49
321
原创 黑马点评---基于Redis的Stream作为消息队列,实现异步秒杀下单
1.创建一个Stream类型的消息队列,名为stream.orders2.修改之前的秒杀下单Lua脚本,在认定有抢购资格后,直接向stream.orders中添加消息,内容包2含voucherld、userld、orderld3.项目启动时,开启一个线程任务,尝试获取stream.orders中的消息,完成下单。
2026-03-17 20:18:32
46
原创 Redis消息队列
字面意思就是存放消息的队列。:存储和管理消息,也被称为消息代理(MessageBroker):发送消息到消息队列:从消息队列获取消息并处理消息:基于List结构模拟消息队列:基本的点对点消息模型:比较完善的消息队列模型。
2026-03-17 17:25:03
485
原创 黑马点评---Redis优化秒杀
如果抢购成功,将优惠券id和用户id封装后存入阻塞队列开启线程任务,不断从阻塞队列中获取信息,实现异步下单功能总结:
2026-03-17 15:16:28
185
原创 Redission快速入门---分布式锁
Redisson是一个在Redis的基础上实现的Java驻内存数据网格(In-Memory Data Grid)。它不仅提供了一系列的分布式的ava常用对象,还提供了许多分布式服务,其中就包含了各种分布式锁的实现。
2026-03-15 15:35:16
119
原创 点评项目---优惠券秒杀的实现方案(超详细!!!)
这样保证了线程 B 拿到锁的时候,线程 A 的事务已经写进数据库了,B 查到的就是最新的订单记录,从而完美实现“一人一单”。开启事务(进入 createVoucherOrder)提交事务(退出 createVoucherOrder)
2026-03-11 20:04:53
50
原创 缓存更新策略
缺点:在 Java 后端开发(如使用 Redis + MySQL)中,这种模式实现起来较复杂,通常需要引入额外的中间件或框架来代理这一层逻辑,且缓存层如果出现故障,整个系统会直接受到影响。一致性:采用“先删缓存,后更新数据库”或者“先更新数据库,再删缓存”的组合策略,可以很好地权衡性能与数据一致性。容错性:如果缓存服务宕机,程序依然可以从数据库读取,系统不会瘫痪(数据库压力虽会瞬间增大,但系统可用)。写数据:先更新数据库,然后直接删除缓存(注意:是删除而不是更新)。逻辑:应用代码直接与数据库和缓存交互。
2026-03-10 14:50:59
104
原创 黑马点评项目——短信登录功能
本文介绍了基于Session和Redis实现的用户登录验证功能。首先展示了如何配置后端环境和导入前端项目,然后详细讲解了短信验证码发送功能的实现过程,包括手机号校验、验证码生成和Session存储。接着描述了登录验证流程,包括验证码校验、用户查询/创建及Session存储。针对Session共享问题,提出了使用Redis替代Session的解决方案,并实现了登录校验拦截器来保护需要认证的接口。文章通过代码片段展示了关键功能实现,如验证码发送、用户登录和拦截器配置,为开发者提供了完整的登录认证流程参考。
2026-03-09 23:27:56
282
原创 SpringSecurity从入门到精通(超级详细教程,不会你打我)
本文介绍了Spring Security安全框架的基本概念和快速入门方法。主要内容包括: Spring Security与Shiro的对比,指出Spring Security更适合中大型项目 快速搭建SpringBoot工程并集成Spring Security的基本步骤 认证授权流程的核心原理,包括过滤器链结构和认证流程详解 自定义登录校验的解决方案,涉及JWT令牌、Redis存储等关键技术 相关依赖配置和工具类实现,如FastJson序列化处理 文章通过代码示例和流程图
2026-02-26 22:12:26
987
原创 基于esp32_arduino通过mqtt接入onenet
如下为esp32端的代码:将其中的相关部分替换为自己的内容,以及修改上报数据格式和sendMessage()这个函数的相关定义改为自己的数据格式就行。随后将自己的产品id和设备id替换掉第一行中的相关部分,第二行为未来的时间戳,第三行为自己的access_key,点击生成即可。输入未来时间(就是你希望你的这个token在什么时候过期失效)需要通过这些参数计算token。
2025-12-19 15:50:57
277
原创 SpringCloud---Feign远程调用(快速入门)
使用Feign的步骤:① 引入依赖② 添加@EnableFeignClients注解③ 编写FeignClient接口④ 使用FeignClient中定义的方法代替RestTemplate。
2025-11-25 01:49:49
328
原创 Nacos与Eureka的区别
临时实例:如果实例宕机超过一定时间,会从服务列表剔除,默认的类型。非临时实例:如果实例宕机,不会从服务列表剔除,也可以叫永久实例。Nacos与eureka的共同点。Nacos与Eureka的区别。
2025-11-24 02:07:36
238
原创 服务注册到Nacos
2、注释掉order-service和user-service中原有的eureka依赖。3、添加nacos的客户端依赖:4、修改user-service&order-service中的application.yml文件,注释eureka地址,添加nacos地址:
2025-11-23 16:44:47
190
原创 初学Nacos注册中心
国内公司一般都推崇阿里巴巴的技术,比如注册中心,SpringCloudAlibaba也推出了一个名为Nacos的注册中心。Nacos的默认端口是8848,如果你电脑上的其它进程占用了8848端口,请先尝试关闭该进程。,也可以进入nacos的conf目录,修改配置文件中的端口,可以修改其中的内容。功能更加丰富,在国内受欢迎程度较高。至此 你已成功安装Nacos 骚年。是阿里巴巴的产品,现在是。
2025-11-23 03:30:49
265
原创 Ribbon负载均衡
Ribbon的负载均衡规则是一个叫做IRule的接口来定义的,每一个子接口都是一种规则:默认的实现就是ZoneAvoidanceRule,是一种轮询方案通过定义IRule实现可以修改负载均衡规则,有两种方式:2、配置文件方式:在order-service的application.yml文件中,添加新的配置也可以修改规则:注意,一般用默认的负载均衡规则,不做修改。饥饿加载Ribbon默认是采用懒加载,即第一次访问时才会去创建LoadBalanceClient,请求时间会很长。而饥饿加载
2025-11-23 03:13:19
319
原创 Eureka注册中心
spring会自动帮助我们从eureka-server端,根据userservice这个服务名称,获取实例列表,而后完成负载均衡。下面,我们将order-service的逻辑修改:向eureka-server拉取user-service的信息,实现服务发现。为了演示一个服务有多个实例的场景,我们添加一个SpringBoot的启动配置,再启动一个user-service。最后,我们要去eureka-server中拉取user-service服务的实例列表,并且实现负载均衡。
2025-11-23 01:24:44
385
原创 为什么word转pdf后页脚页码从9开始后面全是1
绝对是因为 页脚页码的方框位置不够 将页脚页码的方框拉宽 你就会发现新大陆 不用谢 我也是刚遇到这个问题 这里记录一下。
2025-06-04 20:52:45
959
原创 mysql中出现错误1138-Invalid use of NULL value
问题:1138-Invalid use of NULL value
2024-08-24 00:14:02
1076
1
原创 no instance(s) of type variable(s) R exist so that void conforms to R报错原因
【代码】no instance(s) of type variable(s) R exist so that void conforms to R报错原因。
2024-08-23 18:09:14
1510
原创 MybatisPlus的LambdaQueryWrapper用法
【代码】MybatisPlus的LambdaQueryWrapper用法。
2024-08-21 23:39:15
7009
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅