- 博客(88)
- 收藏
- 关注
原创 SpringCloudConfig(配置中心)
在微服务架构中,每一个微服务都有自己的配置文件,如果每个服务自行配置,就会面临以下问题:1.维护成本高:每次配置修改,都需要重新部署服务。2.版本问题:同一个应用的不同实例,需要使用同一个版本,逐一部署,可能会导致版本不一致的问题。3.安全问题:一些敏感的配置(如数据库密码)可能会泄露,缺乏安全的管理手段。......所有就有了配置中心,对我们项目中的配置进行统一的管理。
2025-12-14 21:24:10
871
1
原创 SpringCloud面试题总结
服务注册:服务提供者需要把自己的信息注册到eureka,由eureka来保存这些信息,比如服务名称、ip、端口等等。服务发现:消费者向eureka拉取服务列表信息,如果服务提供者有集群,则消费者会利用负载均衡算法,选择一个发起调用。服务监控:服务提供者会每隔30秒向eureka发送心跳,报告健康状态,如果eureka服务90秒没接收到心跳,从eureka中剔除。可以创建类实现IRule接口,然后通过配置类或者配置文件配置即可。
2025-12-01 23:40:44
806
1
原创 JVM详解
JVM 是 Java Virtual Machine 的简称,意为 Java虚拟机。虚拟机是指通过软件模拟的具有完整硬件功能的、运⾏在⼀个完全隔离的环境中的完整计算机系统。
2025-11-29 10:30:14
1025
原创 spring-cloud服务远程调用(Eureka、Nacos、OpenFeign)
REST:表现层资源状态转移1.资源:网络上所有的事务都可以抽象为资源,每一个资源都有一个唯一的资源标识符(URL)2.表现层:资源的表现形式,比如文本作为资源,可以用txt格式表现,也可以通过HTML,XML,JSON等格式表现,甚至以二进制的格式表现。3.状态转移:访问url,也就是客户端和服务器的交互过程,客户端用到的手段,只能是HTTP协议,这个过程中,可能会涉及到数据状态变化,比如对数据的增删改查,都是状态的转移。REST是一种设计风格,指资源在网络中以某种表现形式进行状态转移。
2025-11-22 16:51:02
1568
原创 自旋锁和synchronized加锁过程详解
CAS:全程Compare and swap,字面意思:“比较并交换”。在操作执行前从主内存中读取数据作为预期值,执行完业务逻辑操作之后,写回主内存中的时候,就会进行判断,如果当前主内存中的值与我的预期值不一样,我就认为在我执行的过程中,这个值被修改了,就重新执行CAS操作,如果一样,就把现在计算出来的值,写回主内存。
2025-11-16 11:18:59
855
原创 单例模式&阻塞队列详解
由于1执行之后就可以执行3,所以指令重排序可能是:1 3 2,但此时类没有初始化,就可能出现一些问题。阻塞队列是一种特殊的队列,也遵循先进先出的原则。阻塞队列也是一种线程安全的数据结构。3.把对象在内存中的首地址赋给对象的引用。这种双重检查的操作叫做DCL。出队三个元素之后也进入了阻塞。1.在内存中申请一片空间。添加三个元素之后进行阻塞。2.初始化对象的属性。
2025-11-13 00:23:31
581
原创 多线程详解
首先我们知道多个进程可以充分利用CPU资源去处理一些复杂业务,从而提高效率但是对于创建一个进程,需要:创建进程——申请资源——加入PCB链表——销毁进程——释放资源——把PCB从链表中删除但是在这个过程中申请资源和释放资源都是对系统性能影响比较大的,涉及到内存的文件资源。那么可不可以处理一件事,只申请一份资源呢?基于这样的思想引出了线程的概念,。线程也可以叫做轻量级的进程。当创建一个进程的时候,每个进程中都会包含一个线程,这个线程叫做主线程。线程的优势:1.线程的创建速度比进程快。
2025-11-10 17:36:50
1171
原创 测试——bug
如:软件中数据保存后数据库中显⽰错误,⽤⼾所要求的功能缺失,程序接⼝错误,数值计算统计错误等(该等级问题出现在不影响其他功能测试的情况下可以继续该版本测试)。如:错别字、界⾯格 式不规范,⻚⾯显⽰重叠、不该显⽰的要隐藏,描述不清楚,提⽰语丢失,⽂字 排列不整⻬,光标位置不正确,⽤⼾体验感受不好,可以优化性能的⽅案等(此类问题在测试初期较多,优先程度较低;: 133.0.6943.127(正式版本)(64位)(若是web系统,版本就是浏览器的版本,若是APP,版本就是软件的版本)4.BUG的生命周期。
2025-11-04 22:23:43
319
原创 测试——概念
软件测试就是执行和运行软件的过程,其目的是为了发现软件功能和需求不相符的地方,或者寻找实际输出和预期输出之间的差异。需求一般分为两部分,用户需求和软件需求。
2025-11-04 00:05:24
1086
原创 并查集详解及代码实现
比如:将10个人编号为0-9,[0,6,7,8]是亲戚,0是领导,[1,4,9]是亲戚,1是领导,[2,3,5]是亲戚,2是领导。这三个集合用树可以表示为:用数组进行表示,数组如果是领导就是负的集合个数,如果不是就是领导的下标如果此时1和0认识了,那么这两个集合就都互为亲戚通过上面这个例子,我们可以总结出并查集的作用:1.查询元素属于哪个集合沿着数组表示的树形关系一直找到根2.查看两个元素是否属于同一个集合沿着数组表示的树形关系一直找到根,判断两个根是否相同,相同则说明在同一个集合。
2025-10-17 11:18:08
284
原创 位图、布隆过滤器详解和代码实现,以及海量数据面试题详解
面试题:给40亿个不重复的无符号整数,没排过序,给定一个无符号整数,如何快速判断一个数是否在这40亿个数中?1.遍历,时间复杂度O(N)2.排序(O(logN)),利用二分查找:logN3.位图解决数据是否在给定的整数中存在,结果是存在或不存在,只有两种状态,就可以使用一个二进制比特位来存储这个状态,比如1表示存在,0表示不存在10亿字节大约1G,10亿比特位大约128M)
2025-10-16 20:15:46
730
原创 AVL树详解及代码实现
1.它的左右子树都是AVL树2.左右子树高度之差(简称平衡因子)的绝对值不超过1(-1/0/1)AVL树的高度可以保持在O(logN),搜索时间复杂度O(logN)
2025-10-12 14:34:05
652
原创 Redis命令使用
用来查询redis中匹配的key?匹配任意一个字符*匹配任意个字符[ae] 只能匹配a或者e[^a]排除a的字符,但固定会匹配一个[a-c] 匹配a到c闭区间内所有的字符例如: keys * 匹配所有字符。
2025-10-12 11:45:27
575
原创 Redis作为分布式锁
因为在一个分布式系统中,存在多个进程,多个进程之间也存在访问同一个公共资源的情况,多个进程之间的执行顺序是随机性的,此时就需要通过“锁”来达到互斥控制。比如买票的时候:此时我们就可以引入redis作为分布式锁。
2025-10-11 00:49:10
614
原创 Redis作为缓存的使用问题
产生原因:1.业务设计不合理,比如缺少必要的参数校验环节,导致非法的key也被进行查询了(典型)2.开发、运维误操作,不小心把部分数据从数据库中误删了,误删操作不一定能及时发现3.黑客恶意攻击如何解决?通过改进业务、加强监控报警(亡羊补牢,不靠谱)
2025-10-07 11:55:29
937
原创 Redis集群模式
广义的集群,有多台机器构成分布式系统,就可以称之为一个集群哨兵模式提高了系统的可用性,但本质上还是一个主节点、从节点存储完整的数据“全集”。
2025-10-05 18:16:56
610
原创 Redis哨兵机制
对于前面的主从复制结构来说,只有主节点可以进行修改操作,但是主节点只有一个,一旦主节点挂了,服务器就无法对外提供修改操作。而通过人工的模式对主节点进行监控,很明显是不靠谱的,对于大量的主从节点来说,是非常麻烦的,于是redis从2.8开始,就提供了Redis Sentinel(哨兵)来解决这个问题。
2025-10-02 13:53:09
662
原创 Redis主从复制
1.可用性问题,如果这个机器挂了,意味着服务就中断了2.性能/支持的并发量也是比较有限的在分布式系统中,使用多个服务器进行部署redis服务,从而构成一个redis集群。此时就可以让这个集群给整个分布式系统提供更稳定/更高效的数据存储功能。
2025-09-29 22:55:22
1000
原创 Redis的事务
1.原子性:把多个操作打包成一个整体2.一致性:事务执行之前、之后,数据都不能离谱3.持久性:事务做出的修改都会保存在硬盘4.隔离性:解决事务并发操作的隔离级别。
2025-09-25 10:46:45
334
原创 rabbitmq面试题总结
类似问题:RabbitMQ的死信队列以及应⽤场景1.死信队列的概念因为种种原因,无法被正常消费的消息,在消息队列系统中,如RabbiotMQ,死信队列用于存储这些死信.消息2.死信队列的来源1)消息过期:消息在消费队列中存活的时间超过了设定的TTL2)消息被拒绝:消费者在处理消息时,可能因为消息内容错误,处理逻辑等原因拒绝处理该消息,如果拒绝时指定不重新入队(requeue=false),消息也会成为死信。3)队列满了:当队列达到最大长度,无法再容纳新的消息时,新来的消息会被处理为死信。
2025-09-16 13:08:23
642
原创 力扣2311:小于等于K的最长二进制子序列
从前往后递增的时候,0和1进行对比,肯定是选0,因为选0即使产生总值的增加效果也只是和1一样,但是0可能会存在前置0,可能不会产生影响。所以我们一定要选更多的0,将所有的0选出来之后,再从地位到高位增加1的个数。
2025-06-26 23:48:13
216
原创 力扣2040两个有序数组的第K小乘积
在第一个二分的时候,不可以count=k的时候就直接跳出循环,因为假设满足条件的结果为x,而k+1大的数为y,count=k的时候,只是满足了mid在[x,y)的区间内,并非是最终的结果,最终结果是要不断往左边进行逼近,所以满足count>=k时,right往左边逼近,而left不变,最终left就正好是结果,而right就在left的左边一位。有数据范围可知,答案在-1e10到1e10之间,两个数组都是有序的,直接进行相乘是会超时的,所以我们可以通过二分进行查找答案,但这里细节很多,要注意。
2025-06-25 23:48:34
296
原创 Mybatis-Plus的使用
Test//插入数据@Test//根据id或者id集合进行查询@Test//根据id进行更新@Test//根据id进行删除@TableName(识别实体类对应的表)@TableField(表明属性对应字段名)@TableId(指定对应的主键)@Data@TableName("user_info")//指定表名//设置主键为自增类型的,这样才能按照自增设置主键的值@TableField("delete_flag")//指定字段名。
2025-04-17 00:19:49
1106
原创 SpringBoot 配置⽂件
Sping Boot配置文件有以下三种yml和yaml是一样的,都是缩写当一个文件中properties和yml都存在的时候,properties的优先级更高。
2025-03-30 23:11:45
402
原创 Spring IOC&DI
1.五大注解:1)如果前两位均为大写,BeanName为类名2)其他,BeanName为类名的小驼峰写法2@Bean 注解(需要搭配五大注解使用,通常使用@Component或者@Configuration)BeanName为方法名。
2025-03-30 10:40:14
374
原创 HTML学习
href表示要跳转的地址,#表示空链接,不进行跳转,target表示跳转行为,比如blank表示空白页进行跳转,默认为本页面。html中换行和空格都会失效变成一个空格。form表示表单域,提交时会提交的数据。一级到六级标题,数字越大,文字越小。div独占一行,span不独占一行。title鼠标点中显示的标题。alt表示找不到时显示什么。
2025-03-17 16:06:25
221
原创 JAVA网络传输编程2
一般用在数据不太重要的场景,指的是可以有一个丢失率,丢失数据不会对业务造成影响jdk中使用不同的类来表示网络通讯的服务器端与客户端描述IP和端口号:示例:回显服务器(用户发出什么,接受什么)。
2025-03-08 13:35:01
261
原创 JAVA网络协议1
a.组成规模不同,局域小,广域大,大小是相对的b.功能:传统的广域网可以通过网络访问世界上任何一台计算,局域网内部可以实现相互访问。
2025-03-03 23:58:23
414
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅