自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Condition

是MyBatis中用于构建查询条件的工具类,可以避免手写SQL字符串。

2025-10-28 17:24:44 280

原创 红黑shu

2025-10-06 17:16:45 140

原创 MySQL基础

1)查看/设置事务提交方式2)提交事务3)回滚事务1)开启事务2)提交,回滚与上面一致多个并发事务在执行过程当中出现的问题:√×表示会不会出现对应的问题,隔离级别越高,安全性越高,性能越差。1)查看事务级别2)设置事务隔离级别

2025-10-06 14:22:46 406

原创 微服务面试篇

由于网络故障,当我们把数据写入node01时,可以与node02完成数据同步,但是无法同步给node03。Eric Brewer认为任何分布式系统架构方案都不可能同时满足这3个目标,这个结论就叫做 CAP 定理。但由于node03无法完成同步,就会出现数据不一致的情况。不允许用户写,可以读,直到网络恢复,分区消失。:分布式系统在出现故障时,允许损失部分可用性,即保证核心可用。:虽然无法保证强一致性,但是在软状态结束后,最终达到数据一致。在一定时间内,允许出现中间状态,比如临时的不一致状态。

2025-09-10 21:07:53 305

原创 Redis 面试

当一个节点变成另一个节点的从节点时,他们的replid会改变,并且一样,这样就可以通过判断replid是否相同来判断是不是第一次来。Redis并不会在KEY过期时立刻删除KEY,因为要实现这样的效果就必须给每一个过期的KEY设置时钟,并监控这些KEY的过期状态。offset:repl_backlog中写入过的数据长度,写操作越多,offset值越大,主从的offset一致代表数据一致。单节点Redis的并发能力是有上限的,要进一步提高Redis的并发能力,就需要搭建主从集群,实现读写分离。

2025-09-09 21:24:50 1026

原创 Elasticsearch 02

是“先全部排序,再截取中间一段”。(您的比喻极其准确)

2025-09-07 09:15:06 665

原创 Elasticsearch(高性能分布式搜索引擎)01

一、初识Elasticsearch一、初识Elasticsearch1、认识和安装(1)Elasticsearch是由elastic公司开发的一套搜索引擎技术,它是elastic技术栈中的一部分。完整的技术栈包括:Elasticsearch:用于数据存储、计算和搜索Logstash/Beats:用于数据收集Kibana:用于数据可视化整套技术栈被称为ELK,经常用来做日志收集、系统监控和状态分析等等。(2)我们要安装的内容包含2部分:elasticsearch:存储、搜索和运算。

2025-09-03 20:03:51 997

原创 MQ 高级

极端情况就是消费者一直无法执行成功,那么消息requeue就会无限循环,导致mq的消息处理飙升,带来不必要的压力。如果消费者再次执行依然出错,消息会再次requeue到队列,再次投递,直到消息处理成功为止。我们在用户支付成功后会发送MQ消息到交易服务,修改订单状态为已支付,就可能出现消息重复投递的情况。即:当消费者处理消息结束后,应该向RabbitMQ发送一个回执,告知RabbitMQ自己消息处理状态。业务判断就是基于业务本身的逻辑或状态来判断是否是重复的请求或消息,不同的业务场景判断的思路也不一样。

2025-08-30 17:04:15 931

原创 RabbitMQ

但是在实际开发时,队列和交换机是程序员定义的,将来项目上线,又要交给运维去创建。而相关的微服务都可以订阅消息通知,一旦消息到达Broker,则会分发给每一个订阅了的微服务,处理各自的业务。Fanout Exchange会将接收到的消息路由到每一个跟其绑定的queue,所以也叫广播模式。TopicExchange也是基于RoutingKey做消息路由,但是routingKey通常是多个单词的组合,并且以.分割。Direct Exchange 会将接收到的消息根据规则路由到指定的Queue,因此称为定向路由。

2025-08-21 18:02:04 793

原创 服务保护和分布式事务

一、微服务保护一、微服务保护1、雪崩微服务调用链中的某个服务故障,引起整个链路中的所有微服务都不可用,这就是雪崩。2、服务保护方案1)请求限流:限制访问微服务的请求的并发量,避免服务因流量激增出现故障。2)线程隔离:也叫做舱壁模式,模拟船舱隔板的防水原理。通过限定每个业务能使用的线程数量而将故障业务隔离,避免故障扩散。3)服务熔断:由断路器统计请求的异常比例或慢调用比例,如果超出阈值则会熔断该业务,则拦截该接口的请求。熔断期间,所有请求快速失败,全都走fallback逻辑。服务保护技术。

2025-08-14 23:01:39 664

原创 微服务 02

{}是可以通过其他配置文件来指明,这些都是不固定的,不能写死,后面的:是添加一个默认值。要实现动态路由首先要将路由配置保存到Nacos,当Nacos中的路由配置变更时,推送最新配置到网关,实时更新网关中的路由信息。网关就是网络的关口。数据在网络间传输,从一个网络传输到另一网络时就需要经过网关来做数据的路由和转发以及数据安全的校验。1)引入依赖(帮助完成拉取配置的动作, 读取bootstrap文件,创建bootStrap的上下文)①将一些公共的配置进行抽取,放到Nacos->配置列表->新建配置中,

2025-07-31 21:17:53 849

原创 微服务 01

因为任何一个微服务都可以调用别人,也可以被别人调用,即可以是调用者,也可以是提供者。SpringCloud集成了各种微服务功能组件,并基于SpringBoot实现了这些组件的自动装配,从而提供了良好的开箱即用体验。服务提供者通过心跳机制向注册中心报告自己的健康状况,当心跳异常时注册中心会将异常服务剔除,并通知订阅了该服务的消费者。Spring给我们提供了一个RestTemplate的API,可以方便的实现Http请求的发送。确定的大型项目:资金充足,目标明确,可以直接选择微服务架构,避免后续拆分的麻烦。

2025-07-29 19:51:07 1729

原创 Docker

例如,第一步中需要的Linux运行环境,通用性就很强,所以Docker官方就制作了这样的只包含Linux运行环境的镜像。,但是,容器的网络IP其实是一个虚拟的IP,其值并不固定与某一个容器绑定,如果我们在开发时写死某个IP,而在部署时很可能MySQL容器的IP会发生变化,连接会失败。通过一个单独的docker-compose.yml模板文件(YAML格式)来定义一组相关联的应用容器,帮助我们实现多个相互关联Docker容器的快速部署。镜像就是包含了应用程序、程序运行的系统函数库,运行配置文件的文件包。

2025-07-26 11:55:02 783 1

原创 Vue工程化 ElementPlus

main.js 是vue项目中的入口文件 在其中又导入了APP.vue 以及全局css main.css可以注释掉,不使用。.vue是Vue项目的组件文件,在Vue项目中也称为单文件组件,会将JS,HTML,CSS封装在同一个文件里。package.json Vue项目的配置文件,主要配置项目名,项目版本号,依赖的包,包的版本等。create-vue是Vue官方提供的最新的脚手架工具,用于快速生成一个工程化的Vue项目。node_modules 下载的第三方的包资源,如依赖的第三方的JS。

2025-07-24 17:51:16 1706

原创 MyBatisPlus

一、快速入门一、快速入门1、入门案例使用步骤:1)引入依赖(引入MyBatisPlus依赖就不需要再引入MyBatis了,它集成了MyBatis和MyBatisPlus的所有功能)继承时要指定泛型为操作实体类的类型3)调用crud方法1)润物无声:制作增强不做改变,引入他不会对现有工程产生影响,如丝般顺滑。2)效率至上:只需要简单配置,即可快速进行单表CRUD操作,从而节省大量时间。2、常见注解MyBatisPlus通过扫描实体类,并基于反射获取实体类信息作为数据库表信息。

2025-07-24 17:50:33 881

原创 前端基础 JS Vue3 Ajax

在js中引入其他js:import { printLog } from "地址",{ }中间是其他js文件中的函数,这就是模块化JS。<script src = ' ./js/eventDemo.js'></script>引入 (src就是js的地址)注:在自定义对象时尽量不要使用箭头函数,因为箭头函数中的this并不指向当前对象,而是指向当前对象的父级对象。将HTML文件中,所有的元素都封装成了JS对象,采用面向对象的方式来操作页面中的所有的元素。

2025-07-21 21:16:01 765

原创 redis面试问题

注:线程1删除缓存,这时如果线程1还没有修改数据库,而线程2查询了该数据,缓存中没有,就会查询数据库中的数据并写入缓存,此时缓存又出现了原来的数据,之后线程1修改数据库这时就会出现不一致的情况,所以要进行第二次删除。定期删除:每隔一段时间,我们就对一些key进行检查,删除里面过期的key(从一定数量的数据库中取出一定数量的随机key进行检查,并删除其中过期的key)。惰性删除:设置该key过期时间后,我们不去管它,当需要该key时,我们检查其是否过期,如果过期,我们就删掉它,反之返回该key。

2025-07-19 16:38:57 800

原创 苍穹外卖 day12 Apache POI

Apache POI 是一个处理Miscrosoft Office 各种文件格式的开源项目。简单来说就是,我们可以使用POI在Java程序中对Miscrosoft Office 各种文件进行读写操作。设计的Excel模板导入到项目中的resources下的template文件中即可。2)创建类和方法进行代码编写,需要写入,读取时直接调用方法。1)在电脑上创建并设计Excel模板文件。3)将查询到的运营数据写入模板文件。一般情况下,POI都是用于操作Excel文件。2)查询近30天的运营数据。

2025-07-16 18:24:35 180

原创 苍穹外卖 day11 Apache ECharts、Lambda表达式、stream流

一、Apache ECharts一、Apache ECharts1、介绍是一款基于Javascript的数据可视化图表库,提供直观、生动、可交互、可个性化定制的数据可视化图表。1)在选择,点击并保存为echarts.js文件。2)在刚才保存echarts.js的目录新建一个index.html打开这个index.html,你会看到一片空白。但是不要担心,打开控制台确认没有报错信息,就可以进行下一步。在绘图前我们需要为 ECharts 准备一个定义了高宽的 DOM 容器。在刚才的例子。

2025-07-16 11:32:25 757

原创 苍穹外卖 day10 Spring Task、WebSocket

3)导入WebSocket服务器组件WebSocketServer ,用户和客户端通信,就是一个类,新建一个包websocket来存放 与controller类似,都是通过路径来匹配。支付成功之后,会进行支付成功回调(controller->notify->PayNotifyController中的方法),在其中会调用PaySuccess,所以在PaySuccess中写代码就可以了。每个域的含义分别为:秒、分钟、小时、日、月、周、年(可选) 一般日和周几只能出现一个另一个用?

2025-07-15 14:48:00 808

原创 百度地图接入

此处,我在地址类中添加了方法用于拼接地址信息,如果没有方法的可以直接传递拼接的省市详细地址字符串就行。自己写一个名字,把下面的IP白名单配置为0.0.0.0/0(有标明),直接创建即可。登录后点击控制台->应用管理->我的应用->创建应用。写在OrderServiceImpl.java中。

2025-07-14 16:18:22 263

原创 苍穹外卖 day08 一点基础、主键返回、内网穿透

1)在cpolar目录下输入: cpolar.exe authtoken YWU4NzMyNzktNGRlMS00MjgyLWIzMzEtOWUyM2ZjZTkwMDUx (登录官网获取的,只需要配置一次,内网穿透工具配置文件)String.valueOf(Object obj) // 对象 → String(调用对象的 toString() 方法)String.valueOf(char c) // 字符 → String。类提供的工具方法,有多个重载版本,可以处理不同的输入类型。

2025-07-13 11:04:37 528

原创 苍穹外卖 day07 缓存菜品、Spring Cache

3)在方法上添加@CachePut时应该加上(cacheNames = "userCache",key="#user.id")//使用spring Cache缓存数据,key的生成:cacheNames的值::key中的值 如;4)@Cacheable与@CacheEvict注解与上面基本一致,,批量删除的操作userCache数据(cacheNames = "userCache",allEntries = true)如果新增菜品,修改菜品,删除菜品,起售停售则需要删除缓存数据。

2025-07-11 19:43:09 433

原创 苍穹外卖 day06 HttpClient、微信小程序

HttpClient 是阿帕奇下的子项目,可以用来提供高效的、最新的、功能丰富的支持HTTP协议的客户端编程工具包,并且它支持HTTP协议最新的版本和建议。(简单来说就是在java程序中通过HttpClient工具包可以构造http请求,并发送请求)2)完善小程序信息:注册完成后,进行登录,设置小程序信息,设置小程序类目。开放注册范围:个人、企业、政府等,注:个人无法使用支付功能。开发支持:开发文档、开发者工具、设计指南、小程序体验DEMO。步骤:注册、小程序信息完善、开发小程序、提交审核和发布。

2025-07-10 11:37:11 952

原创 苍穹外卖 day05 Redis

包括: Jedis、Lettuce、Spring Data Redis(是spring的一部分,对Jedis、Lettuce进行了高度的封装)1)导入Spring Data Redis 的 maven坐标 (引入依赖)达娃大Redis存储的是key-value结构的数据,其中key是字符串类型,2)配置Redis数据源 (ip,端口,密码等)Redis是一个基于内存的key-value结构数据库。有序集合 sorted set/zset。哈希 hash。1、Redis的java客服端。

2025-07-08 14:54:36 953

原创 苍穹外卖 day03 自定义注解、自定义切面类、AOP、反射、aliyun对象存储

注解 ,如:@Pointcut("execution(* com.sky.mapper.*.*(..)) && @annotation(com.sky.annotation.AutoFill) ") ()中间时切入点方法名。*:单个独立的任意符号,可以通配任意返回值 包名,类名,方法名,任意类型的一个参数也可以通配包,类,方法的一部分(del*)7)方法上添加注解指定通知类型,以及切点表达式 如:@Before("autoFillPointCut()")// 获取所有public方法(包括继承的)

2025-07-03 21:07:29 918

原创 苍穹外卖 day02 对象属性拷贝、全局异常处理器、Message、ThreadLocal、Pagehelper分页插件、动态sql

一、新增员工一、新增员工。

2025-07-03 11:59:14 399

原创 一些用到的注解

3、@Param() 为接口方法形参起名字,原因java文件变为class文件名就消失了,需要起名字系统才知道谁是谁 注!:springboot项目中不需要,因为会保留方法名。4、@RequestParam() 将请求参数注解绑定给方法形参,如果请求参数名与方法形参相同,可以省略注解。2、@PathVariable() 获取路径参数 ,如果参数名称相同,可以省略()1、@RequestBody 将前端json格式的请求参数封装到对象中。

2025-07-02 14:18:43 266

原创 苍穹外卖 day01 JWT、nginx、MD5、Swagger

一、Jwt令牌一、Jwt令牌。

2025-07-02 10:20:33 2183

原创 Git知识点

git 分布式版本控制系统包含远程仓库(用于共享)和本地仓库Git GUI 图形界面工具Git Bash 提供的命令行工具登录官网,傻瓜式安装。安装后必要配置:打开Git Bash :①设置名字:git config --global user.name gengjiahao (名字中有空格需要加双引号)(内容尽量自己打,以防出现问题)。②设置邮箱地址:git config --global user.email gengjiahao@123.com。

2025-06-23 11:32:43 316

原创 遇到的小问题

在编写controller类时,需要固定格式的返回值,所以要先获取查询到的对象,之后作为参数传递给success方法。而Service类只需要获取查询到的参数,所以直接return即可。三层架构中,Service实现类对象放到了IOC容器中,在Controller中注入接口对象时,会找到其实现类,并进行注入,(这是。当在Controller中新写一个方法时,应先在其接口中定义方法,之后在实现类中实现方法。(alt+回车快速生成接口方法,在实现)(可随时更换实现类))

2025-05-25 14:58:38 221

原创 lombok注解失效

解决lombok注解问题

2025-05-24 14:42:32 277

空空如也

空空如也

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

TA关注的人

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