自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Redis

单节点Redis的并发能力有上限(上万),要进一步提高Redis的并发能力,就要搭建主从集群,实现读写分离。主节点会把数据同步给从节点,让每个从节点的数据和主节点一样。在从节点:查看节点状态成功后,进入主节点,输入可以看到两个slave,并且在主节点写入后,在从节点可以读取到。

2025-02-13 08:37:59 1220

原创 【搜索文章】:搜索(es)+ 搜索记录(mongodb)+ 搜索联想词

用户输入关键字时,可以检索出结果,并且可以查看历史搜索情况,还可以进行联想词展示。

2025-02-05 19:52:38 1880 3

原创 Sentinel服务保护 + Seata分布式事务

雪崩问题】微服务调用链路中某个服务,引起整个链路中所有微服务都不可用。原因解决方案】:请求限流、线程隔离、服务熔断服务保护技术。

2025-01-09 18:44:53 1125

原创 网关 + Nacos配置管理

GatewayFilter:路由过滤器,作用于任意指定的路由,默认不生效,要陪知道路由后生效。GlobalFilter(常用):全局过滤器,作用范围是所有路由;声明后自动生效。@Component@Override// 获取请求// 过滤器业务处理(登录校验逻辑...)if(...) {// 拦截// 放行// 控制过滤器执行顺序@Overridereturn 0;// 值越小,优先级越高。

2025-01-08 20:34:05 1503

原创 nacos注册中心 + OpenFeign远程调用

声明一个类型为Logger.Level的Bean,在其中定义日志级别:@Bean此时这个Bean并未生效如果想配置某个FeignClient的日志级别,可以在@FeignClient注解中声明如果想要全局配置,让所有的FeignClient都按照这个日志级别配置,需要在@EnableFeignClients注解中声明。

2025-01-08 11:37:49 1078

原创 【黑马点评】优惠券秒杀

问题解决。

2025-04-06 16:02:55 417

原创 【黑马点评】商户查询缓存

缓存:数据交换的缓冲区,存储数据的临时地方,读写性能高。

2025-04-04 14:42:31 291

原创 【黑马点评】Redis解决集群的session共享问题

由于不同的tomcat服务器之间的session是不共享的,当请求如果在不同tomcat服务器之间切换就会导致数据丢失的问题。使用redis可以解决session数据共享的问题redis是tomcat以外的存储,存在redis中的数据,任何一台tomcat都能看得见,且redis是基于内存存储,又是k、v结构的存储方式。

2025-03-29 20:32:28 536

原创 【Netty】- NIO

selector就是配合一个线程来管理多个channel,可以管理多个channel,获取这些channel上发生的事件,channel工作在非阻塞模式下,不会让线程吊死在一个channel上。Buffer类似内存缓冲区,暂存从Channel读取的数据,可以从。通过reset()将position重置到mark()做标记的位置。当写了a、b、c、d数据后,position指针也会往后移动。当切换为读模式,position指针回到最开始的状态。,也可以将Buffer的数据写入Channel。

2025-03-10 17:59:59 635

原创 【复习】Redis

QPS集中在特定的key带宽使用率集中在特定的KeyCPU使用时间占比集中在特定的Key将对应的热ky进行复制并迁移到其他的数据分片,来解决单个数据分片的热key压力如果热key的产生来自读请求,可以使用读写分离架构来降低每个数据分片的读请求,也可以不断增加从节点。

2025-02-24 22:45:34 1414

原创 【复习】操作系统

虚拟内存:操作系统给每个运行中的程序的一段地址空间,每个内存在运行时认为自己拥有的内存就是虚拟内存,虚拟内存将程序的地址空间划分成固定大小的页,并将这些页映射到物理内存中的不同位置。物理内存:计算机实际存在的内存。分页是把虚拟内存和物理内存空间切成一段段固定尺寸的大小,虚拟内存和物理内存是通过页表来进行映射的。页表存储在内存里。内存管理单元(MMU):将虚拟内存地址转化为物理内存地址当进程访问的虚拟地址在页表中不存在,就会产生缺页异常,操作系统会进行调页处理。

2025-02-23 16:00:41 806

原创 【复习】Java基础

JVM不同平台有不同的版本。我们编写的Java源码,编译后会生成.class文件(字节码文件)。虚拟机就是将字节码文件翻译成指定平台下的机器码运行的。只要在不同平台上安装对应的JVM,就可以运行字节码文件。编译的结果不是生成机器码,而是生成字节码,字节码不能直接运行,需要通过JVM翻译成机器码才能运行,不同平台下的机器码不同,但是字节码却是一样的。在运行过程中,任意一个类,都能够知道这个类的所有属性和方法,任意一个对象,都能调用它的任意一个方法和属性。允许在运行时获取类的完整结构信息。

2025-02-23 12:33:26 971

原创 【复习】计算机网络

客户端向服务器发送FIN报文,如果发送的FIN报文丢失,客户端收不到服务器的ACK确认,就会触发超时重传机制,重传FIN报文,如果达到最大重传次数,客户端就会直接进入CLOSE状态,而服务器还是established状态。客户端想和服务器建立连接,向服务器发送SYN报文,如果客户端一直收不到服务器的响应,就会触发超时重传机制,重传SYN报文(重传的seq序列号是一样的)如果达到最大重传次数,客户端就不再发送SYN报文,随后断开TCP连接。同时如果客户端校验CA证书后,证书验证失败,也会中断连接。

2025-02-22 16:24:00 1396

原创 【复习】Spring

在程序运行的状态下,任何一个类,都可以获取这个类的所有属性和方法;任何一个对象,都可以调用它的任意属性和方法。反射允许在运行时获取类的信息并动态操作对象。反射允许程序在运行时获取类的完整结构信息通过反射API动态的创建对象实例在运行时动态地调用对象的方法允许运行时访问和修改对象的字段值依赖注入:开发者通过xml配置文件或注解的方式声明组件之间的依赖关系,程序启动时,spring容器会扫描这些配置或注解,利用反射来实例化Bean。

2025-02-21 20:03:07 1190

原创 【复习】Java集合

数组是固定长度;集合是动态长度的数据结构,需要动态增加或删除元素数组可以包含基本数据类型和对象;集合只能包含对象数组可以直接访问元素;集合需要通过迭代器访问元素。

2025-02-21 19:54:18 1115

原创 二分查找!!!!

转化成:找到第一个 ≥ x 的左边那个数。转化成:找到第一个 ≥ x + 1的数。转化成:找到第一个>x的左边那个数。

2025-02-20 22:49:55 335

原创 Mysql事务

MyISAM不能完整支撑ACID特性。

2025-02-17 15:34:05 565

原创 Java动态代理

代理模式的主要目的是在客户端和目标对象之间添加一个中间层,以便在访问目标对象时执行额外的操作。在方法执行前后记录日志信息,记录方法的执行时间、参数、返回值等。

2025-02-17 09:31:10 626

原创 124. 二叉树中的最大路径和

【代码】124. 二叉树中的最大路径和。

2025-02-15 21:23:39 470

原创 236. 二叉树的最近公共祖先

这也说明了:如果返回的是nullptr,说明p、q不在这棵树中。

2025-02-15 20:49:29 340

原创 114. 二叉树展开为链表

能不能先序遍历,先处理当前节点(把当前遍历到的节点插入到单链表中),但是这样存在一个问题,此时当前节点的右孩子还没有被遍历到,这样会出现孩子丢失的情况。但是如果是后序遍历的话,结点的顺序应该怎么处理呢?目前节点的顺序是和题目所求的节点顺序相反,因此可以考虑。这样就不会出现孩子丢失的问题,因为当去更新当前的右指针时,已经遍历过他的右节点了。这题要将一个二叉树转成单链表,且展开后的单链表应该和二叉树的先序遍历相同。:题目要求先序遍历(根左右)的结果,那能不能用。

2025-02-12 11:42:12 233

原创 108. 将有序数组转换为二叉搜索树

所以可以将数组最中间的数作为根节点,依次把根左边的数组和根右边的数组作为左右节点即可。注意,[l, r)是左闭右开的情况,所以在后边划分区间的时候,也要始终保持左闭右开。二叉搜索树的特征:左 < 根 < 右。

2025-02-12 11:08:09 232

原创 Java Virtual Machine(JVM)

应用A中有个com.xiaolin.Hello.class应用B中也有个com.xiaolin.Hello.class虽然都叫Hello.class,但是这两个类的方法、属性可能不一样如果AppClassLoader先加载了应用A中的Hello.class文件,那么应用B就不能被加载了,因为这两个类的名字一样所以就需要针对应用A、B设置单独的类加载器,也就是WebAppClassLoader,这样两个应用中的Hello.class都会被各自的类加载器加载到,不会产生冲突。

2025-02-11 16:19:35 1009

原创 102. 二叉树的层序遍历

这题的难点在于,题目要求是要返回一个二维数组,那怎么去记录每一层的节点呢?在每一次循环的时候,当前队列中的节点就是这一层的节点,因此可以用一个tempVec来存储当前队列中的数据,在每一轮的循环结束时,把tempVec插入结果数组中。

2025-02-11 11:39:31 287

原创 543. 二叉树的直径

这题要求树的最大直径,其实也就是求树中某一个节点的左右子树的深度之和最大。那么就可以把这个问题拆解成一个个相同子问题:求某一个节点的最大深度。

2025-02-11 10:59:33 263

原创 142. 环形链表 II

极端情况:fast进入环时,fast = slow + 1,此时fast以相对速度1远离slow,fast需要走(环长 - 1)步才能与slow相遇,所以慢指针移动的距离 < 环长。如图所示,如果有环,fast 和 slow必会相遇,此时fast走n圈,slow走一圈。为什么slow无法走两圈?

2025-02-10 13:29:41 356

原创 146. LRU 缓存

把最下边的数据淘汰掉,再把刚访问的数据放到上边(换页)本质:让不经常访问的数据往下排,经常访问的数据往上排。LRU:最近最少未使用,很少被请求的数据才会被淘汰掉。这样会导致:冷门数据在最下边,热门数据在最上边。hashMap的查询时间复杂度是O(1),可以用。访问的数据缓存中没有。

2025-02-10 12:44:17 499

原创 25. K 个一组翻转链表

分类讨论:退出循环有两种情况,

2025-02-09 17:28:18 394

原创 24. 两两交换链表中的节点

如图,题目要求前后节点交换,1、2往往容易想到,但是3容易忘记。在(a、b)交换后,此时和前一个节点(c)断开连接了,需要把节点c也接上。直接存储滑动窗口内的字符串,这样虽然方便,但是时间复杂度和k相关,如果k = n,此时会达到O(n^2)的复杂度。

2025-02-09 17:20:38 393

原创 160. 相交链表

这题可以将headA遍历完后遍历headB,把headB遍历完后遍历headA,这样就相当于走了同样的距离。不管什么情况,都会退出循环,且都只会遍历(a+b)次,不会有死循环的情况。

2025-02-08 19:29:58 219

原创 安装Jenkins

解决:通过修改 Jenkins 的启动参数来禁用签名验证,Jenkins 将跳过签名验证,从而解决证书过期或验证失败的问题。

2025-02-08 10:04:41 796

原创 【热点文章-实时计算】kafkaStream

定时计算是争对首页推荐文章更新。

2025-02-07 21:24:57 664

原创 【热点文章-定时计算】分布式任务调度框架xxl-job

在分布式架构下,一个服务会部署多个实例来运行业务;如果在这种分布式系统环境下运行任务调度,称为分布式任务调度。分布式任务调度框架:xxl-job仓库源码:xxl-jobdocker安装xxl-job项目集成xxl-job导入xxl-job依赖添加配置任务代码任务详解任务绑定的执行器,任务触发调度时,会自动发现注册成功的执行器,实现任务自动发现功能。执行器也可以方便的进行任务分组,每个任务必须绑定一个执行器。任务调度失败时邮件通知的邮箱地址一般选用CRON表达式 FI

2025-02-07 14:49:20 964

原创 OpenFeign远程调用返回的是List<T>类型的数据

Feign 默认支持 JSON 序列化/反序列化,如果服务端返回的是 List的JSON格式数据,可以直接在 Feign 接口中定义返回类型为 List。

2025-02-07 14:11:12 674

原创 Kafka

偏移量(Offset) 是消费者消费消息的核心机制之一,它记录了消费者在分区(Partition)中的消费进度,没有这个kafka不知道消费到哪里,也是在同一个分区下消息的消费会有顺序的原因。每一个分区都是一个顺序的、不可变的消息队列, 并且可以持续的添加。自媒体微服务是生产者,文章微服务是消费者,自媒体微服务向kafka发送修改文章状态的任务,文章微服务从kafka里取出任务后消费。方案2:选择第一个活过来的副本,不一定是ISR中的,选为Leader,这样可以最快速度恢复可用性,但不一定数据完整。

2025-02-05 12:06:11 1265

原创 redis实现延迟任务

定时任务:有固定周期,有明确的触发时间延迟任务:没有固定的开始时间,由一个事件触发,在这个事件触发之后的一段时间内触发另一个事件,任务可以立即执行,也可以延迟执行。场景1:订单下单30分钟后,如果用户没有付钱,则系统自动取消订单;如果期间下单成功,任务取消。场景2:接口对接接口出现网络问题,1分钟后重试,如果失败,2分钟后重试,直到出现阈值终止。实现方式。

2025-02-03 20:43:56 961

原创 【项目】黑马头条 - 自媒体端

配置使自定义拦截器生效。

2025-02-03 13:01:02 1171

原创 48. 旋转图像

这题如果直接以行为单位进行旋转,有一部分值会被覆盖。所以我们应该一次旋转一个数字,找到这些数字的关系。

2025-02-03 10:00:00 234

原创 54. 螺旋矩阵

这题主要是要抓住循环不变量,每次一圈循环都应该遵循左闭右开的原则。由于题目不一定是个正方形,所以最后要考虑。

2025-02-02 14:00:00 290

原创 238. 除自身以外数组的乘积

所以使用前后缀分解,用两个数组分别求nums[i]所有左边数的乘积 和 nums[i]所有右边数的乘积,求结果的时候,res[i] = 当前数字的左边数乘积 * 当前数字的右边数乘积。先用res[i]来存放nums[i]所有左边数的乘积,再用一个常数right来存储nums[i]所有右边数的乘积,一边更新right的值,一边更新到res[i]中。方法1. 前后缀分解 + 两个数组存放前后缀的乘积。方法2. 前后缀分解 + O(1)的空间复杂度。这题的难点在于,不能用乘法。

2025-02-02 09:55:10 224

seata运行时所需要的配置文件

seata运行时所需要的配置文件

2025-01-09

空空如也

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

TA关注的人

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