- 博客(19)
- 收藏
- 关注
原创 递归三要素
写完了递归算法, 运行的时候,经常会遇到栈溢出的错误,就是没写终止条件或者终止条件写的不对,操作系统也是用一个栈的结构来保存每一层递归的信息,如果递归没有终止,操作系统的内存栈必然就会溢出。确定哪些参数是递归的过程中需要处理的,那么就在递归函数里加上这个参数, 并且还要明确每次递归的返回值是什么进而确定递归函数的返回类型。确定每一层递归需要处理的信息。在这里也就会重复调用自己来实现递归的过程。
2024-08-05 15:46:46
259
1
原创 记录:Spring IOC 源码部分知识点
第一个执行的是 invokeAwareMethods(beanName, bean) ,由名称就能知道,该方法会调用 实现了Aware 相关接口的bean,来执行实现的 一些 **Aware方法。从该方法作为入口,会一直找到一个 doCreateBean() 方法,在该方法内有三个 方法十分重要,这三个方法,即对应了 bean 的三个生命周期。重点是 refresh() 方法。我们知道,在 bean 的生命周期中 bean 的初始化非常复杂,有各种方法的回调,那么这些方法的执行顺序我们怎么确定呢?
2024-05-03 16:15:26
843
原创 Seata学习总结
Seata主要是为了解决微服务产生的分布式事务问题。,就是指不是在单个服务或单个数据库架构下,产生的事务。无法利用数据库的事务机制进行控制.。
2024-05-02 18:23:59
736
1
原创 Redis简单使用
有序集合(sorted set / zset):集合中每个元素关联一个分数(score),根据分数升序排序,没有重复元素。Spring Data Redis 是 Spring 的一部分,对 Redis 底层开发包进行了高度封装。列表(list):按照插入顺序排序,可以有重复元素,类似于Java。类型元素的集合,且不允许有重复成员。集合(set):无序集合,没有重复元素,类似于Java。HashOperations:hash类型的数据操作。ZSetOperations:zset类型数据操作。
2024-05-02 17:38:38
41
2
原创 Sentinel学习总结
流控模式有哪些?•直接:对当前资源限流•关联:高优先级资源触发阈值,对低优先级资源限流。•链路:阈值统计时,只统计从指定资源进入当前资源的请求,是对请求来源的限流Sentinel支持的雪崩解决方案:线程隔离(仓壁模式)降级熔断Feign整合Sentinel的步骤:在application.yml中配置:feign.sentienl.enable=true给FeignClient编写FallbackFactory并注册为Bean将FallbackFactory配置到FeignClient。
2024-04-28 17:57:26
570
原创 SpringAMQP结合RabbitMQ简单使用
MQ,中文是消息队列(MessageQueue),字面来看就是存放消息的队列。比较常见的MQ实现:ActiveMQ,RabbitMQ,RocketMQ,Kafka。RabbitMQ中的一些角色:publisher:生产者consumer:消费者exchange个:交换机,负责消息路由queue:队列,存储消息virtualHost:虚拟主机,隔离不同租户的exchange、queue、消息的隔离。
2024-04-27 18:58:29
929
原创 ElasticSearch自动补全实现
默认的拼音分词器会将每个汉字单独分为拼音,而我们希望的是每个词条形成一组拼音,需要对拼音分词器做个性化定制,形成自定义分词器。elasticsearch中分词器(analyzer)的组成包含三部分:character filters:在tokenizer之前对文本进行处理。例如删除字符、替换字符tokenizer:将文本按照一定的规则切割成词条(term)。例如keyword,就是不分词;还有ik_smarttokenizer filter:将tokenizer输出的词条做进一步处理。
2024-04-27 18:38:56
471
原创 微服务的熔断降级处理
微服务的雪崩效应表现在服务与服务之间调用,当其中一个服务无法提供服务可能导致其它服务也死掉,比如:服务B调用服务A,由于A服务异常导致B服务响应缓慢,最后B、C等服务都不可用,像这样由一个服务所引起的一连串的多个服务无法提供服务即是微服务的雪崩效应。当下游服务异常触发熔断后,上游服务就不再去调用异常的微服务而是执行了降级处理逻辑,这个降级处理逻辑可以是本地一个单独的方法。两者都是为了保护系统,熔断是当下游服务异常时一种保护系统的手段,降级是熔断后上游服务处理熔断的方法。可以采用熔断、降级的方法去解决。
2024-04-27 15:54:39
280
原创 开发人员应掌握的Docker知识
数据卷(volume)是一个虚拟目录,指向宿主机文件系统中的某个目录。一旦完成数据卷挂载,对容器的一切操作都会作用在数据卷对应的宿主机目录了。这样,我们操作宿主机的/var/lib/docker/volumes/html目录,就等于操作容器内的/usr/share/nginx/html目录了常见的镜像在DockerHub就能找到,但是我们自己写的项目就必须自己构建镜像了。而要自定义镜像,就必须先了解镜像的结构才行。
2024-04-25 17:48:50
609
1
原创 SprinpCloud学习总结
通过定义IRule实现可以修改负载均衡规则,有两种方式:@BeanB: # 给某个微服务配置负载均衡规则,这里是B服务ribbon:NFLoadBalancerRuleClassName: com.netflix.loadbalancer.RandomRule # 负载均衡规则使用Feign的步骤:① 引入依赖② 添加@EnableFeignClients注解③ 编写FeignClient接口④ 使用FeignClient中定义的方法代替RestTemplate类型作用说明。
2024-04-24 17:13:55
852
1
原创 LeetCode环形链表二解法
给定一个链表的头节点head,返回链表开始入环的第一个节点。如果链表无环,则返回null。如果链表中有某个节点,可以通过连续跟踪next指针再次到达,则链表中存在环。为了表示给定链表中的环,评测系统内部使用整数pos来表示链表尾连接到链表中的位置(如果pos是-1,则在该链表中没有环。pos,仅仅是为了标识链表的实际情况。链表。
2024-03-30 11:23:22
205
2
原创 重复的子字符串为什么可以用移动匹配
相信大家在刷重复的子字符串这个算法时,发现了移动匹配这个解法,但很多人应该很好奇。为什么字符串s+s拼接之后,如果包含新的s就是重复的子字符串了。接下来我们用数学来证明一下。
2024-03-28 14:40:46
164
原创 KMP算法
KMP算法的名称来自它的创作者,是Knuth,Morris和Pratt这三位大牛的名称组成,它在解决字符串是否包含另一个字符串方面的性能非常好,时间复杂度只有m*n。比暴力解法优化了很多。
2024-03-28 11:18:43
244
原创 ElasticSearch快速学习指南
elasticsearch中分词器(analyzer)的组成包含三部分:character filters:在tokenizer之前对文本进行处理。例如删除字符、替换字符tokenizer:将文本按照一定的规则切割成词条(term)。例如keyword,就是不分词;还有ik_smarttokenizer filter:将tokenizer输出的词条做进一步处理。例如大小写转换、同义词处理、拼音处理等文档分词时会依次由这三部分来处理文档:PUT /test。
2024-03-13 17:27:46
1079
原创 Javabean的标准书写和快捷生成
1.ins + alt 或者 ins + alt + fn生成 2 和 3。2.构造器要有无参构造和含有全部属性的构造。3.所有的属性都要有set方法和get方法。1.所有类的属性用private修饰。
2023-05-09 09:23:45
92
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人