自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Sa-Token过滤器实现

微服务状态下,无法处理监控其他服务的线程情况,所以使用seata进行加锁同步,不过seata加锁太多,不适合订单页面操作,所以订单使用rabbitmq消息队列实现事务。先判断库存是否足够,真实库存=剩余库存-锁定库存,库存足够,对库存进行加锁操作,设置锁定商品的数量=已经上锁的数量+购买的数量。(需要进行多种判断,一对优惠券类型进行判断,例如指定商品的优惠券有那些可以进行使用,二对优惠券最低限额进行判断。获取当前用户信息,购物车商品信息。主要信息,订单,订单编号,优惠券,用户,物流信息。

2025-03-05 21:02:50 1476

原创 Spring Security

现在过滤器链的配置,我们通过提供一个 SecurityFilterChain Bean 来配置过滤器链,SecurityFilterChain 是一个接口,这个接口只有一个实现类 DefaultSecurityFilterChain,构建 DefaultSecurityFilterChain 的第一个参数是拦截规则,也就是哪些路径需要拦截,第二个参数则是过滤器链,这里我给了一个空集合,也就是我们的 Spring Security 会拦截下所有的请求,然后在一个空集合中走一圈就结束了,相当于不拦截任何请求。

2025-03-05 20:53:51 977

原创 Springcloud

自己创建实现类Irule接口,然后通过配置类和配置文件雪崩:一个服务失败,导致整个服务线路失败。服务降级:服务降级是一种服务自我保护的方式,或者保护服务下游,确保服务不会崩溃。如果降级太多,触发熔断。

2025-03-05 20:52:11 744

原创 技术场景问题

单点登录:(sso)只需要登录一次,就可以访问所有信任的应用系统。JWT解决单点登录(redis+token)token写入浏览器cookie当访问其他页面功能时,如果没由登录,检验token是否有效,无效返回401,跳转登录认证页面。登录后把token存储到浏览器cookie中,并且每次页面访问携带token。在访问其他页面时,携带了token就可以使用。

2025-03-05 20:43:11 228

原创 设计模式介绍

工厂设计模式,顾名思义,就是用来生产对象的,在 java中,万物皆对象,这些对象 都需要创建,如果创建的时候直接 new该对象,就会对该对象耦合严重,假如我们要 更换对象,所有 new对象的地方都需要修改一遍,这显然违背了软件设计的开闭原 则,如果我们使用工厂来生产对象,我们就只和工厂打交道就可以了,彻底和对象解 耦,如果要更换对象,直接在工厂里更换该对象即可,达到了与对象解耦的目的;所 以说,工厂模式最大的优点就是:解耦代理模式给某一个对象提供一个代理对象,并由代理对象控制对原对象的引用。

2025-03-05 20:20:05 666

原创 数据结构和算法

程序=数据结构+算法相关概念:递归概念:自己调用自己,每次调用传入不同的变量,

2025-03-05 20:02:30 300

原创 缓存-分布式锁

例如多个商品服务进行查询数据库操作,如果使用synchronized锁,商品服务1查询一次数据库缓存到redis,商品服务2也查询一次数据库缓存到redis。找到一个所有共有的服务都能访问的地址,来进行加锁操作,如果有一个服务进去了就进行加锁操作。重新进来,当执行完业务,再次执行删除操作,这时候删除的就是新进来的锁。​ 写锁:只有当写操作完成,释放写锁,才能让其他线程进行读写操作。失效模式:删除缓存,写入数据库,等下次查询在写入数据库。先删除缓存,在更新数据库,等一段时间,然后在次删除缓存。

2025-03-05 19:36:22 484

原创 常用注解使用

Controller 是 Spring 中最基本的组件,主要处理用户交互,一般每个业务逻辑都会有一个 Controller,供用户请求接口进行数据访问;@RequestMapping 注解用于绑定URI到具体处理器。二者相辅相成,共同完成前后端数据交互。使用@RequestMapping 和@RequestParam 等一些注解以定义URL 请求和Controller 方法之间的映射,这样Controller 就能被外界访问到。

2025-03-05 19:35:39 674

原创 Linux学习

​ Linux是一种基于 POSIX 和 UNIX 的多用户、多任务、支持多线程和多 CPU 的操作系统。Linux 能运行主要的 UNIX 工具软件、应用程序和网络协议。它支持 32 位和 64 位硬件。Linux 继承了 Unix 以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。​ Linux广泛应用于各个领域,包括服务器、个人电脑、移动设备、嵌入式系统以及科学研究等。在服务器领域,Linux的稳定性、可靠性和安全性使得它成为许多企业和组织的首选操作系统。

2025-03-05 19:33:39 825

原创 Git操作命令

git status 查看文件状态git add 将文件的修改加入暂存区git reset 将暂存区的文件取消暂存或者是切换到指定版本git commit 将暂存区的文件修改提交到版本库git log 查看日志。

2025-03-05 19:31:26 336

原创 RabbitMQ相关问题

消息队列在实际应用中常用的使用场景。异步处理,应用解耦,流量削锋和消息通讯 四个场景。

2025-03-05 19:25:39 957

原创 Redis

Redis是基于内存的操作,CPU不是 Redis的瓶颈,Redis的瓶 颈最有可能是机器内存的大小或者网络带宽。既然单线程容易实现,而且 CPU不会成 为瓶颈,那就顺理成章地采用单线程的方案了 Redis利用队列技术将并发访问变为串行访问1)绝大部分请求是纯粹的内存操作2)采用单线程,避免了不必要的上下文切换和竞争条件。

2025-03-05 18:46:37 762

原创 MySQL

不可重复读的和幻读很容易混淆,不可重复读侧重于修改,幻读侧重于新增或删除。解决不可重复读的问题只需锁住满足条件的行,解决幻读需要锁表。

2025-03-05 18:19:42 931

原创 Spring相关问题

(1) Nacos–作为注册中心和配置中心,实现服务注册发现和服务健康监测及配置信息 统一管理(2) Gateway–作为网关,作为分布式系统统一的出入口,进行服务路由,统一鉴权等(3) OpenFeign–作为远程调用的客户端,实现服务之间的远程调用(4) Sentinel–实现系统的熔断限流(5) Sleuth–实现服务的链路追踪。

2025-03-05 16:05:12 996

原创 Spring Bean

SpringBean是指 Spring IoC 容器管理的对象,通常是通过配置或注解声明的类实例。容器会在应用启动时创建这些 Bean 的实例,并根据需求将它们注入到其他组件中,实现对象的自动管理和依赖注入。Spring Boot 使用 Bean 来管理应用中的服务、数据源、控制器和其他核心组件。Spring Boot 的 Bean 是应用程序核心组件的容器化管理单元,通过注解和配置方式实现。

2025-03-05 15:28:18 898

原创 JavaEE

Java是一个支持多线程的开发语言,多线程并发执行任务可以充分利用CPU资源,提高多任务并发执行效率(注意区分:多线程并不会加快任务的执行速度,而是可以充分利用多核CPU让线程轮流进行工作,达到了一种“同时”工作的效果)。并发时的产生问题多线程在执行时,会遇到一些问题,问题的关键原因则是在共享资源的更新操作上容易产生冲突。解决的方向解决冲突的方式则是从共享资源的占用机制入手,保证共享资源同一时刻只能被一个线程占用,从而达到数据一致。具体实现方式中的一种。

2025-03-04 03:04:34 1094

空空如也

空空如也

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

TA关注的人

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