- 博客(82)
- 资源 (1)
- 收藏
- 关注
原创 09-设计模式
那当某个方法参数或变量是 List接口类型时,既可以是 ArrayList的实现, 也可以是 LinkedList。对扩展开放和对修改关闭表示 当一个类或一个方法有新需求 或者 需求发生改变时 应该。一个类只负责完成一个职责或者功能。替换的前提是面向对象语言所支持的。对扩展开放,对修改关闭。的实现,这就是替换。
2023-09-21 21:30:38
208
原创 08-分布式
在高并发场景的架构里,幂等性是必须得保证的。比如说提交作业。每次操作,都根据操作和内容生成唯一的id,在执行之前先判断id是否存在,如果不存在,则执行后续操作,并且保存到数据库或者redis等。由于重复点击或者网络重发,或者nginx重发等情况会导致数据被重复提交。前端在数据提交前要向后端服务申请token,如果在token有效时间内,提交后台校验token,同时删除token,生成新的token返回。判断token是否存在redis中,存在表示第一次请求,可以继续执行业务,执行业务完成后,最。
2023-09-12 12:00:17
394
原创 07-Spring Cloud
通过集群的方式:减少响应时间、提高吞吐量 并发用户数等,通过增加服务器性能、 扩展服务实例的方式:程序处理速度考虑。
2023-09-08 17:31:00
426
原创 06-mq
rabbitmq里创建用户,必须要被指派给至少一个vhost,并且只能访问被指派内的队列、交换器和。Vhost必须通过rabbitmq的管理控制工具创建。2版本的需要使用zookeeper,用来存放topic。又可以避免队列和交换器的命名冲突。,就可以完全抛弃zookeeper。新版本的kafka可以不用,对队列中消息的条数进行。
2023-09-06 17:59:06
513
原创 01-Kafka
3、在/opt/kafka_2.12-1.0.2目录中输入kafka-按住tab键,如果能调出其他的指令说明我们配置。:49.234.5.32:2181,后面的 myKafka 是Kafka在Zookeeper中的根节点路径。--replication-factor 创建的副本个数,用来实现高可用。我们创建这个目录/var/niko/kafka/kafka-logs。进入到/opt/zookeeper-3.4.14/bin目录。9、此时Kafka是前台模式启动,要停止,使用Ctrl+C。
2023-09-06 12:11:57
594
原创 05-Redis
定期删除,redis默认每个100ms检查,是否有过期的key,有过期key则删除。需要说明的是,redis。1、Redis服务器可以处理8万到10万 QPS,对于80%的公司来说,单线程的Redis已经足够使用。是,惰性删除派上用场。Redis提供了简单的事务功能,将一组需要一起执行的命令放到multi和exec两个命令之间。不是每个100ms将所有的key检查一次,而是随机抽取进行检查,如果这块区域超过25%过期,会。3、但随着越来越复杂的业务场景,有些公司动不动就上亿的交易量,因此需要更大的QPS。
2023-09-04 09:19:05
693
原创 04-MySQL02
自适应Hash索引(Adatptive Hash Index,内部简称AHI)是InnoDB的三大特性之一,还有两个是 Buffer Pool简称BP、双写缓冲区(Doublewrite Buffer)。1、自适应即我们不需要自己处理,当InnoDB引擎根据查询统计发现某一查询满足hash索引的数据结构特点,就会给其建立一个hash索引;2、hash索引底层的数据结构是散列表(Hash表),其数据特点就是比较适合在内存中使用,自适应Hash索引存在于InnoDB架构中的缓存中。
2023-09-02 09:05:48
300
原创 03-MySQL
页结构整体上可以分为三大部分,分别为通用部分(文件头、文件尾)、存储记录空间、索引部分。最佳左前缀法则:如果创建的是联合索引,就要遵循该法则. 使用索引时,where后面的条件需要从索引的最左前列开始使用,并且不能跳过索引中的列使用。* 场景1: 按照索引字段顺序使用,三个字段都使用了索引,没有问题。* 场景2: 直接跳过user_name使用索引字段,索引无效,未使用到索引。* 场景3: 不按照创建联合索引的顺序,使用索引。
2023-08-31 17:53:20
440
2
原创 02-MyBatis
1、MyBatis框架的初始化操作。系统启动的时候会加载解析全局配置文件和对应映射文件。加载解析的相关信息存储在 Configuration 对象,Configuration是SqlSessionFactory类中的一个属性。2、处理SQL请求的流程。用图表示:SqlSessionFactory: new DefaultSqlSessionFactory 全局配置文件的加载解【Configuration】,映射文件的加载解析【Configuration,MappedStatement】
2023-08-20 18:22:40
238
原创 01-关于new Object()的问题
在使用单例模式的时候有两种方式:方式一:new 一个对象,通过提供的一个方法供外界访问。懒汉式,就是用到的时候,我在去创建对象。在多线程的情况下就会产生问题,需要用到Double Check Lock,判断两次,中间加锁。
2023-08-19 18:57:34
207
原创 29-使用RocketMQ做削峰处理
3、JVM启动参数要添加上nameserver的地址,让dashboard和nameserver关联起来。,以避免生产集群出现大量无效主题,无法管理和回收,造成集群注册压力增大,影响生产集群的稳定性。配置,会自动为发送的消息创建 Topic,但该特性仅推荐在初期测试时使用。如果 Broker没有启动起来,删除~/store目录下的文件。进入到mq的目录,启动nameserver。进入到mq的目录,启动 Broker。下载源码,使用idea打开项目。进入到mq的目录,发送消息。进入到mq的目录,接收消息。
2023-07-22 23:39:43
626
原创 26-分布式锁
将jmeter.properties文件中的sampleresult.default.encoding=UTF-8。将jmeter.properties文件中的language=zh_CN。我们再次发送请求的时候,就可以通过结果树查看Response。用来测试有多少线程发送请求。
2023-07-15 18:35:25
251
原创 25-分布式事务----Seate
Seata 是一款开源的分布式事务解决方案,致力于提供高性能和简单易用的分布式事务服务。Seata 将为用户提供了 AT、TCC、SAGA 和 XA 事务模式,为用户打造一站式的分布式解决方案。
2023-07-12 19:11:31
444
原创 23-MyBatis缓存、本地缓存、分布式Redis缓存、前端缓存
MyBatis一级缓存、> MyBatis二级缓存、> 本地缓存:单节点> 分布式Redis缓存:多节点> 前端sessionStorage缓存:会话缓存> 前端localStorage缓存:前端本地缓存。
2023-07-12 00:08:40
841
原创 21-Nacos配置中心
已经使用过了Spring cloud提供的Geteway、openFeign。相当于通讯录,让应用之间相互认识。用途: 实例的健康检查。 路由转发:为了控制成本,会对机器做动态扩容,此时IP就不固定了。 远程调用。动态修改线上的配置。用途: 开关。 阈值。 枚举项。2.2、 Nacos文档2.3、 Github下载Nacos 2.4、Spring Cloud Alibaba 和 Spring Clo
2023-07-09 21:46:59
386
原创 16-后端实现买票选座的功能(重点重点重点)
对于重要的功能,我们要在接口入口落库,留下痕迹,方便做统计。主键一般跟业务无关,每次重新生成数据,ID都会变;唯一键一般跟业务有关,每次重新生成数据,唯一键数据不会变。
2023-07-04 16:58:46
688
1
原创 13-使用调度框架quartz,为系统增加定时调度功能
在要执行的任务类上添加@DisallowConcurrentExecution禁用并发执行。cron从左到右(用空格隔开):秒 分 小时 月份中的日期 月份 星期中的日期 年份。在com.wei.ticket.batch.config创建配置文件,文件比较固定。并发执行:上一周期还没执行完,下一周期又开始了。修改日志文件输出路径为log/batch。2、没法实时更改定时任务状态和策略。1、适合单体应用,不适合集群。执行的策略:cron表达式。让数据库存储定时任务信息。执行的内容:功能逻辑。
2023-06-27 11:21:34
166
原创 10-前端添加拦截器
1、所有的请求头添加token,token过期、没有token的响应统一添加报错提醒,跳转到登录页面。在ticketweb/src/main.js文件。
2023-06-12 17:14:50
464
原创 09-为Gateway模块设置过滤器校验Token
前端请求带上token,放在header里。后端校验token有效性,在gateway里统一校验。
2023-06-12 15:29:31
545
原创 07-根据Hutool工具的JWT实现单点登录功能
*** 盐值很重要,不能泄漏,且每个项目都应该不一样,可以放到配置文件中*//**** 使用JWT生成Token* @param id 需要再token中保存的用户主键id* @param mobile 需要再token中保存的用户手机号* @return 生成token*/// 当前时间// 设置有效期// 设置token中的Payload 载荷信息// 签发时间// 过期时间// 生效时间// 保存的内容// 生成token 使用key作为salt。
2023-06-10 17:50:34
1457
原创 06-发送短信验证码实现登录功能
3、双向绑定:修改变量值,则元素展现的值也会变化;反过来,用户操作元素,则script里的变量也会发生变化。style 样式进行布局的部分。template 展现页面元素的部分。script 逻辑的部分。vue3两种声明响应式变量:reactive, ref。1、一个vue页面,由三个部分组件,都不是必须的。vue文件即可以是一个页面,也可以是一个组件。
2023-06-08 18:34:56
995
原创 05-使用Vue3 + Vue CLI 实现前端模块的搭建
流程:安装node得到npm,使用npm安装vue cli(脚手架),使用vue cli创建项目。Vue CLI版本和Node版本有关,用Node V12只能下载到Vue CLI V4.X,必须用Node V18才能下载到Vue CLI V5.XIDEA支持配置多个版本的Node,类似配置多个JDK。1、官网下载pkg,傻瓜式安装。2、安装路径3、配置nodejs的环境变量打开Mac 终端,配置全局环境变量4、重新打开终端,输入node,就会进入node环境。
2023-06-08 14:20:26
631
原创 01-SpringBoot加载配置文件、静态资源的优先级
优先级 1:导入的jar包所在目录下的子目录 config 文件夹中下的子目录中优先级 2:导入的jar包所在目录下的子目录 config 文件夹中优先级 3:导入的jar包所在目录同级目录下优先级 4:类路径(resource资源文件或者java目录下)下的子目录 config 文件夹中优先级 5:类路径(resource资源文件或者java目录下)下的配置文件(默认创建的配置文件位置)
2023-06-05 12:37:35
400
原创 04-Springbooot与Spring Cloud Alibaba搭建后端架构
在父工程中创建一个http文件夹,新建文件member-test.http,名字随意,但是一定要以http结尾,settings.xml,配好了阿里镜像。
2023-06-04 16:26:15
1474
原创 18- 弹幕系统设计
WebSocket协议是基于TCP的一种新的网络协议。它实现了浏览器与服务器全双工(Full-Duplex)通信。全双工(Full-Duplex)通信:客户端可以主动发送信息给服务端,服务端也可以主动发送信息给客户端。WebSocket协议优点:报文体积小、支持长连接。
2023-05-30 09:27:42
1316
原创 15-增加收藏视频、取消收藏视频、查询收藏视频的数量
2、实体类3、VideoCollectionController4、VideoCollectionService5、VideoCollectionServiceImpl6、VideoCollectionDao
2023-05-29 10:51:22
121
原创 14-添加视频点赞、取消视频点赞、查询视频点赞数量
2、实体类3、VideoLikeController4、VideoLikeService5、VideoLikeServiceImpl6、VideoLikeDao
2023-05-29 10:28:08
158
RSA加密 非对称加密,有公钥和私钥之分,公钥用于数据加密,私钥用于数据解密 加密结果可逆
2023-05-12
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人