自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 微服务相关问题(2)

xxl-job的路由策略:大概有十种:轮询、随机、第一个(固定找第一个实例执行)、最后一个(固定找最后一个实例执行)、一致性hash(按照hash算法固定选择某一个实例,且所有任务均匀散列在不同实例上)、最不经常使用、最近最久未使用、故障转移(当去执行的实例出现故障,则选择新的健康的实例去执行)、忙碌转移、分片广播。注册中心(nacos、Eureka等)、负载均衡(Ribbon、LoadBalancer)、远程调用(feign)、服务熔断(Sentinel、Hystrix)、网关(Gateway)

2025-07-16 16:07:43 807

原创 springboot使用@Validated不起作用

对于嵌套对象,需要在嵌套对象的属性上添加 @Valid 注解。特别是在嵌套校验是需要使用@Valid进行触发嵌套校验。最后,Spring-Validate拓展。我们一般在全局处理器去捕获并抛出。4、全局异常处理器是否有添加。精确异常类型优先(如。1、检查是否有引依赖。(方法参数校验失败)

2025-07-12 18:33:13 307

原创 java相关框架(Spring、mybatis)的相关基础

AOP面向切面编程:用于将那些与业务无关,但对多个对象产生影响的公共行为和逻辑,抽取并封装为一个可重用的模块,这个模块成为切面(Aspect),减少系统中的重复代码,降低了模块间的耦合度,同时提高了系统的可维护性。一般在spring的bean中都是注入无状态的对象(像,service、dao),没有线程安全问题,如果在bean中定义了可修改的成员变量,是要考虑线程安全问题,可以使用多例或者加锁来解决。在Spring框架中我们可以用注解@Scope来设置bean是否是单例的,如果不设置默认是单例的。

2025-06-16 09:36:05 566

原创 Mysql常见问题

并发事务问题:脏读(一个事务读到另外一个事务未提交的数据)、不可重复读(一个事务先后读取同一条记录,但两次读取的数据不同)、幻读(一个事务按条件查询数据时,没有对应的数据行,但是在插入数据时,又发现这行数据已经存在,好像出现了幻影):主内存中的一个区域,里面可以缓存磁盘上经常操作的真实数据,在执行增删改查操作时,先操作缓冲池中的数据(若缓冲池没有数据,则从磁盘加载并缓存),以一定频率刷新到磁盘,从而减少磁盘IO,加快处理速度。使用Id查询,直接走聚集索引,一次索引扫描,直接返回数据,性能高。

2025-06-11 15:31:27 792

原创 线程基础相关问题

其中,Owner是存储当前获取锁的线程的,只能有一个线程可以获取。还有一个VisualVM工具(故障处理工具,还是在java安装目录下的bin目录下的jvisualvm.exe),也能够监控线程、内存情况,查看方法的CPU时间和内存中的对象,已被GC的对象,反向查看分配的堆栈。一个线程需要同时获取多把锁,这时候就容器产生死锁(例如,在a线程中,你先要获取c锁,再去获取d锁,而这个时候恰好有一个线程是先获取d锁,在获取c锁,这个时候,线程a持c锁等d 锁,而另一个线程持d锁等c锁导致死锁产生)。

2025-06-03 15:00:25 606

原创 java集合框架常见问题

线程一先将a移入新链表,再将b插入到链头,由于另外一个线程的原因,b的next指向了a,所以b->a->b,形成循环。ArrayList底层是用动态数组实现的,ArrayList的初始容量为0,当第一次添加数据的时候才会初始化容量为10,在进行扩容的时候是原来容量的1.5倍,每次扩容都需要拷贝数组。在jdk1.7中HashMap的数据结构是数组+链表,在链表进行扩容时,因为链表是头插法,在进行数据迁移的过程中有可能导致死循环。线程一:读取当前的HashMap数据,数据中一个链表,在准备扩容时,线程二介入。

2025-05-28 17:15:00 1176

原创 Redis分布式锁、集群相关以及其他相关问题

这里介绍一下redisson实现的机制(基于lua脚本完成):线程来了过后就会去加锁,加锁成功后就可以去执行业务,在加锁成功的同时会另开一个线程(看门狗)进行监控,每隔(过期时间/3)的时间做一次续期(例如过期时间是30秒,每隔10秒就会去给锁续期一次)。脑裂问题:在哨兵模式下,因为一些原因(像网络分区)等原因,哨兵检测不到主节点后,会客观认为主节点下线,然后从从节点中选取一个主节点。这个时候就出现了两个主节点问题,当故障恢复后,原先的主节点降为从节点,这时再从新主节点去同步数据,就会导致数据丢失。

2025-05-26 15:21:27 906

原创 微服务保护中的一些问题

如果在相邻的时间跨度中,前一个时间跨度的后一半和后一个时间跨度的前一半(例如时间跨度为1s,阈值为4,前一个时间跨度的最后500ms进来了4个请求。顾名思义令牌桶也是有一个桶,不过这里的桶不再装请求,而是装令牌(这里的令牌是某个程序以固定的速率生成令牌,如果令牌桶满了,停止生成。这里的令牌就类似于门禁卡)请求来的时候先从令牌桶中获取令牌,获取到令牌后才能被处理。Hystix默认是基于线程池实现的线程隔离,每一个被隔离的业务都要创建一个独立的线程,线程过多会带来额外的开销,性能一般,但是隔离性更强。

2025-05-20 10:52:51 665

原创 redis底层问题合集

由于lfu策略是后面引入的,如果使用lfu策略Redis就将这个lru属性的高16位用来记录最近一次访问时间。低8位用来记录逻辑访问次数(注意是逻辑访问次数,不会在每次访问都去计数,这里是通过运算去实现的。在redis里面,通过RedisDB结构体(内部有两张hash表)一张hash表记录的是原始的key、value数据。读操作:缓存命中直接返回,缓存未命中则查询数据库,并写入缓存,设置过期时间。会统计每个key的访问频率,值越小淘汰优先级越高。定期清理:定期抽样部分key,判断是否过期,如果过期则删除。

2025-05-16 14:36:57 527

原创 Redis主从集群部署

内容如下(这里没有网络使用的是host,即直接使用宿主机的网络,这里也没有做端口映射。暴露的端口所以不用映射,直接就是宿主机的端口,所以要特别注意端口占用问题。我们会发现,主节点新增的数据,不管哪个节点都能拿到。1、先在虚拟机中创建一个任意名字文件夹(我使用的是mobaX,所以不用命令),大家没使用的可以使用mkdir命令。5、我们可以使用以下命令在宿主机上找到我们启动的Redis进程,也进一步说明了,yml文件的东西。7.1r3成r1的从节点(建立连接,输入slaveof命令指定主的ip+端口)

2025-05-14 16:26:40 188

原创 Elasticsearch与Kibana的虚拟机部署和在Kibana可视化界面进行对Elasticsearch的基础操作

这里就截个图看看界面,就不一一去运行截图了。大家对这种格式不理解的,还得去学习一下Elasticsearch的json数据格式,倒排索引,以及他的基本数据类型,还有就是mapping规则等,这里就不做说明了。到这里篇幅有限,也就介绍完成了用Kibana去调Elasticsearch的Api的基础用法。没问题,就去访问虚拟机IP+9200端口,出现以下页面代表Elasticsearch部署成功。1、这里部署涉及到docker容器中的通信,所以这里我们首先使用命名创建一个网络,这里我创建的是Es。

2025-05-07 18:57:13 295

原创 利用docker部署的RabbitMQ在关机后再次启动出现Discarding message错误

1、错误信息。

2025-04-30 15:12:28 248

原创 RabbitMQ的部署以及基础使用

这里也是默认名称必填,填完名称后将就可以点击Add,但是这里还是有必要说明一下,type类型可以选择你想要的交换机类型,RabbitMQ有四种类型的交换机,fanout、direct、topic、headers。1、RabbitMQ的部署,这里部署到docker容器内,这里的用户名密码,名字,端口以及RabbitMQ的版本都可以自己指定。在我们增加完后,我们在上面列表找到刚才新增的交换机,点击名称进入如下图。这里创建完队列后,我们再去创建一个交换机,并绑定到刚才创建的队列上。​(如日志分类、动态路由)、

2025-04-28 17:05:00 1089

原创 centos7中ens33没有显示出来,ipv4 ip 没有正确显示的问题。

可以使用ip link show 来查看一下ens33的状态。这里发现是down。但是这次解决了,下次又得重新启动,有没有更好的解决方法呢?最后再用nmcli device status命令进行查看是否被托管。如果还是出现未托管我们再用以下命令:关闭所有网络连接​​,​​重新启用所有网络连接。网络接口最初处于未托管状态,导致 NetworkManager 无法激活连接。我们重启后发现ens33没有消失且IPv4正确分配。再用以下命令进行查看ens33是否被托管。到这里就完了,希望对你有所帮助。

2025-04-23 19:37:05 539

原创 在centos中安装docker

7、到这里已经完成了docker安装。但是,大家可能去拉镜像时有可能会非常慢,这里我们就可以去配置镜像加速。7.2:填写以下格式的内容:(如果镜像源不可用可以百度去搜索最新的)5、在前面都无误的情况下就可以安装docker了。的核心引擎,提供容器运行时和管理功能。7.1:创建一个目录用来放docker配置文件(-p。7.3最后一步,重新加载启动docker。为 Docker 提供存储卷管理和持久化数据支持。:自动确认安装,跳过手动确认步骤。不存在,也会自动创建,但。:自动创建父目录(如果。

2025-04-20 12:14:44 340

原创 ssm基于xml配置的整合

该配置文件用于配置SpringMVC框架运行需要的组件Bean.(前后端分离不用加视图解析器)5、MyBatis框架核心配置文件(mybatis-config.xml)完善一下包结构就OK了。6、修改web.xml。

2025-01-25 23:30:27 235

原创 window.onload没有效果,控制台也没有报错

本来想用这个来展示用户信息,但加了这个没有任何效果,控制台也没有报错,其它也检查了感觉没有错误。这一次就查出来了,发送了这个select请求。在网络那边发送的请求发现根本没有发送请求。

2024-11-23 18:43:48 312

原创 mybatis-plus插件的使用

大家在整合myatis-plus和spring-boot后可能会使用mybatis-plus的代码自动生成器,一般有自己加依赖,然后创建一个代码生成器的类,但这样比较繁琐。这里推荐我自己使用的插件。模块写你的项目名即可,不用写绝对路径,包名自己的包名,下面要生成的勾选即可,点击code gentrator后提示成功即可。点击后可能不会直接弹窗可能在另外页面,我的没有直接可以看到,最小化后才看到,我还一直点,以为不能用。这就是生成的目录,我这里是在空项目里生成的,没有在Maven项目中,所以类的图标是茶杯。

2024-11-20 17:32:37 649

原创 sprng-boot项目启动类报错

错误: 找不到或无法加载主类 com.cg.Application 原因: java.lang.ClassNotFoundException: com.cg.Application。如果发现里面很乱或者自己都不认识的一些在里面,可以使用Maven命令去清除重构一下。你可以去看看target里面的构建目录。然后再此运行启动类。

2024-11-20 16:44:01 162

原创 springboot项目打包

4、启动后cmd利用java -jar 复制jar包名,注意后缀没有.jar的需要加上,启动后后面也会有端口号和启动时间。2、在target目录下会生成一个jar包,右键点击jar包然后打开jar包所在位置。1、使用Maven命令:mvn clean package。3、在jar包目录下利用cmd命令,直接回车。

2024-11-07 07:00:00 365

原创 springboot项目创建

创建springboot项目

2024-11-04 13:32:25 235

原创 jsp跳转servlet处理出现404,描述找不到资源

就是tomcat版本问题,换个tomcat就欧克了。这是利用tomcat10以上的版本运行报错。这是利用tomcat9运行就可以了。

2024-10-16 21:16:03 433 2

空空如也

空空如也

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

TA关注的人

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