- 博客(614)
- 资源 (5)
- 收藏
- 关注
原创 Java8 --- Gradle7.4整合IDEA
第一步创建一个普通的gradle的Java工程。指令:groovy -v 查看安装是否成功。第二步修改bulid.gradle文件内容。需要导入junit4的依赖。
2024-06-23 22:49:19
1263
原创 Java8 --- Gradle安装及测试使用
2012年Google推出的基于Groovy语言的全新项目构建工具,集合Ant和Maven的优势。优点:集Ant脚本的灵活性和Maven约定大于配置的项目目录优势,支持多种远程仓库和插件,侧重于大项目的构建。缺点:学习成本高,资料少,脚本灵活,版本兼容性差。
2024-06-20 17:41:12
1341
原创 Java --- 面试题
死信队列:当一个消息在队列中变为死信之后,它能被重新发送到另外一个交换机中,这个交换机就是DLX,绑定到DLX的队列就是死信队列。死信队列本身也是普通队列,通过创建队列时设置一些参数将其设置为死信队列。原因:①、消息被拒绝接收。②、消息TTL过期。③、队列达到最大长度。延迟队列是用来存放延迟消息的队列。延迟消息即消息发送到队列后,需要到指定时间后,消费者才能拿到消息。实现方法①、使用TTl消息过期+死信队列来实现。
2024-06-20 12:29:26
782
原创 Java17 --- redis7缓存双写一致性
读写缓存:①、同步直写策略:写数据库后也同步写redis缓存,缓存和数据库中的数据一致,对于读写缓存来说,要想保证缓存和数据库中的数据一致,就要采用同步直写策略。①、在业务程序运行的时候,统计下线程读数据和写缓存的操作时间,评估出项目的读数据业务逻辑的耗时,以此为基础,然后写数据的休眠时间则在读数据业务的耗时上加百毫秒就行。就是如果数据库写入成功,缓存更新失败,那么只要到达过期时间,则后面的读请求自然会从数据库中读取新值然后回填缓存,达到一致性,要以mysql的数据库写入库为准。4、业务cache刷新。
2024-06-18 13:24:54
1300
原创 Java17 --- SpringSecurity之自定义配置
<title>登录</title><input type="text" name="name" placeholder="用户名"/>
2024-06-16 12:09:04
380
原创 Java17 --- RabbitMQ搭建集群
server rabbit1 172.31.0.110:5673 check inter 5000 rise 2 fall 2 #rabbitmq后端访问界面。server rabbit_admin1 172.31.0.110:15673 #自己的rabbitmq前端访问界面。bind 0.0.0.0:5666 #对外提供的端口,访问这个端口就会根据配置的规则对集群下的节点进行相应的负载均衡。listen rabbitmq_admin#rabbit的监控页面。#监控界面的访问的IP和端口。
2024-06-15 11:48:21
1505
原创 Java17 --- RabbitMQ之常规使用
publisher-confirm-type: correlated #交换机确认。acknowledge-mode: manual #手动确认。acknowledge-mode: manual #手动确认。publisher-returns: true #队列确认。prefetch: 1 #设置每次从队列中读取消息数。下载的插件放入source后的目录。队列正常创建,无需参数设置。将原交换机与备份交换机绑定。在Java配置类进行设置。创建常规队列注意事项。
2024-06-07 14:17:48
1351
原创 Java17 --- SpringCloud之Sentinel
return "按资源名称SentinelResource限流测试OK";return "服务不可用@SentinelResource启动"+"\t"+"o(╥﹏╥)o";测试访问:throw new RuntimeException("p1等于零直接异常");log.error("sentinel配置自定义限流了:{}", e);return "sentinel配置自定义限流了";log.error("程序逻辑异常了:{}", e);
2024-05-18 23:43:46
1455
1
原创 Java17 --- SpringCloud之Nacos
运行并测试访问:startup.cmd -m standalone。创建配置文件application.yml。修改application.yml配置文件。导入相关pom依赖并创建配置yml文件。导入相关pom依赖并创建配置yml文件。创建配置文件bootstrap.yml。只需要创建不同 Data id配置即可。修改bootstrap.yml文件。选择自己创建的命名空间进行创建配置。测试读取测试文件内容。
2024-05-06 17:14:15
1058
1
原创 Java17 --- SpringCloud之Gateway
测试代码@Component//断言规则@Validated//重写支持短格式@Override@Override@Override//检查request的参数里面,userType是否为指定的值,符合配置就通过//如果说参数存在,就和config的数据进行比较配置yml文件gateway:routes:- id: pay_routh1 #pay_routh1 #路由的ID(类似mysql主键ID),没有固定规则但要求唯一,建议配合服务名。
2024-05-05 20:03:15
1078
1
原创 Java17---SpringCloud之Resilience4j实现服务熔断和降级
滑动窗口算法是把固定时间片进行划分并且随着时间移动,移动方式为开始时间点变为时间列表中的第2个时间点,结束时间点增加一个时间点,一个固定容量的漏桶,按照设定常量固定速率流出水滴,类似医院打吊针,不管你源头流量多大,我设定匀速流出。),在各自的时间间隔内,这些请求都是正常的。- 滑动:需要定义在窗口中滑动的大小,但理论上讲滑动的大小不能超过窗口大小。feign80端添加pom依赖及修改yml内容。8001端添加controller层代码。添加controller层代码。添加openfeign接口。
2024-04-09 17:57:02
1125
1
原创 Java17 --- springCloud之LoadBalancer
【代码】Java --- springCloud之LoadBalancer。
2024-03-09 18:36:24
670
原创 Java17 --- SpringCloud之Consul
Consul 遵循CAP原理中的CP原则,保证了强一致性和分区容错性,且使用的是Raft算法,比zookeeper使用的Paxos算法更加简单。虽然保证了强一致性,但是可用性就相应下降了,例如服务注册的时间会稍长一些,因为 Consul 的 raft 协议要求必须过半数的节点都写入成功才认为注册成功;当数据出现不一致时,虽然A, B上的注册信息不完全相同,但每个Eureka节点依然能够正常对外提供服务,这会出现查询服务信息时如果请求A查不到,但请求B就能查到。application.yml文件。
2024-03-09 00:16:05
1503
原创 Java17 --- SpringCloud初始项目创建
service接口及实现类。swagger配置类。controller层。mapper映射文件。
2024-03-08 18:24:50
1006
1
原创 Java --- JVM之垃圾回收相关知识概念
3、在JDK 1.2版之后,Java对引用的概念进行了扩充,将引用分为强引用(Strong Reference)、软引用(Soft Reference)、弱引用(Weak Reference)和虚引用( Phantom Reference)4种,这4种引用强度依次逐渐减弱。1、软引用是用来描述一些还有用,但非必需的对象。4、对于一个普通的对象,如果没有其他的引用关系,只要超过了引用的作用域或者显式地将相应(强)引用赋值为null,就是可以当做垃圾被收集了,当然具体回收时机还是要看垃圾收集策略。
2023-11-21 22:37:18
677
原创 Java --- JVM之垃圾回收相关算法
这里的清除并不是置空,而是把需要清除的对象地址保存在空闲的地址列表里。下次需要新对象需要加载时,判断垃圾的位置空间是否足够,如果够,就存放。
2023-11-19 22:17:07
484
原创 Java --- JVM之垃圾回收概述
1、垃圾收集,不是Java语言的伴生产物。早在1960年,第一门开始使用内存动态分配和垃圾收集技术的Lisp语言诞生。2、垃圾收集机制是Java语言的招牌能力,极大地提高了开发效率。如今,垃圾收集几乎成为现代语言的标配,即使经过如此长时间的发展,Java的垃圾收集机制仍然在不断演进中。垃圾是指在运行程序中没有任何指针指向的对象,这个对象就是需要被回收的垃圾。
2023-11-15 17:57:42
492
原创 Java --- JVM之StringTable
总结:在jdk6中,如果串池中有,就返回已有的串池中的对象的地址,如果没有,就是将这个对象复制一份,放入串池,并返回这个对象的地址。从jdk7起,如果串池中有,就返回已有的串池中的对象的地址,如果没有,就是将这个对象的引用地址复制一份,放入串池,并返回串池中的引用地址。③、在jdk6中的StringTable的是固定的,就是1009的长度,所以如果常量池中的字符串过多就会导致效率下降很快。4、如果拼接的结果调用intern()方法,则主动将常量池中还没有的字符串对象放入池中,并返回此对象地址。
2023-11-15 16:26:41
275
原创 Java --- JVM的执行引擎
1、执行引擎是Java虚拟机核心的组成部分之一。2、“虚拟机”是一个相对于“物理机”的概念,这两种机器都有代码执行能力,其区别是物理机的执行引擎是直接建立在处理器、缓存、指令集和操作系统层面上的,而虚拟机的执行引擎则是由软件自行实现的,因此可以不受物理条件制约地定制指令集与执行引擎的结构体系,能够执行那些不被硬件直接支持的指令集格式。
2023-11-12 23:50:36
851
原创 Java --- 直接内存
②、Java的NIO库允许Java程序使用直接内存,用于数据缓冲区。2、由于直接内存在Java堆外,因此它的大小不会直接受限于-Xmx指定的最大堆大小,但是系统内存是有限的,Java堆和直接内存的总和依然受限于操作系统能给出的最大内存。使用NIO时,操作系统划出的直接缓存区可以被java代码直接访问,只有一份,NIO适合对大文件的读写操作。1、不是虚拟机运行时数据区的一部分,也不是《Java虚拟机规范》中定义的内存区域。2、直接内存是在Java堆外的,直接向系统申请的内存区间。
2023-11-12 18:14:27
365
原创 Java --- MySQL8之索引优化与查询优化
索引是高效找到行的一个方法,但是一般数据库也能使用索引找到一个列的数据,因此它 不必读取整个行。毕竟索引叶子节点存储了它们索引的数据;当能通过读取索引就可以得到想要的数 据,那就不需要读取行了。一个索引包含了满足查询结果的数据就叫做覆盖索引。非聚簇复合索引的一种形式,它包括在查询里的SELECT、JOIN和WHERE子句用到的所有列 (即建索引的字段正好是覆盖查询条件中所涉及的字段)。简单说就是,索引列+主键 包含 SELECT 到 FROM之间查询的列。#创建索引= 20;= 20;示例2。
2023-09-25 23:22:49
502
原创 Java --- MySQL8数据库优化性能查看工具
1. 主机相关:以host_summary开头,主要汇总了IO延迟的信息。以innodb开头,汇总了innodb buffer信息和事务等待innodb锁的信息。以io开头,汇总了等待I/O、I/O使用量情况。以memory开头,从主机、线程、事件等角度展示内存的使用情况processlist和session相关视图,总结了会话相关信息。以schema_table开头的视图,展示了表的统计信息。统计了索引的使用情况,包含冗余索引和未使用的索引情况。
2023-09-21 17:13:14
721
原创 Java --- MySQL8之索引的创建与设计原则
目录一、索引的分类1.1、普通索引1.2、唯一索引 1.3、主键索引1.4、单列索引1.5、多列(联合)索引1.6、全文索引二、创建索引2.1、使用 CREATE TABLE创建2.1.1、创建普通索引 2.1.2、创建唯一索引 2.1.3、创建主键索引2.1.4、创建单列索引2.1.5、创建联合索引 2.1.6、创建全文索引2.2、给已存在的表创建索引 三、查看索引 四、删除索引五、MySQL8索引新特性5.1、支持降序索引 5.2、隐藏索引5.2.1、创建隐藏索引5.2.2、修改索引的可见性 六、创建索
2023-09-13 09:02:48
163
原创 Java8-17 --- idea2022
自定义后缀补全模板:自定义 Live Templates第一步:第一步:配置安装的tomcat第二步:创建一个普通的Java工程并选择配置第三步:配置tomcat服务解决tomcat日志乱码第一步:打开在文档中输入 -Dfile.encoding=UTF-8第二步:在tomcat服务中同样进行 配置 -Dfile.encoding=UTF-8。
2023-09-11 17:15:53
885
原创 Java --- 泛型
T t;this.t = t;return t;this.t = t;@Test//默认泛型是Object//泛型参数不能是基本数据类,但可以是对应的包装类order1.setName("小王");① 我们在声明完自定义泛型类以后,可以在类的内部(比如:属性、方法、构造器中)使用类的泛型。② 我们在创建自定义泛型类的对象时,可以指明泛型参数类型。一旦指明,内部凡是使用类的泛型参数的位置,都具体化为指定的类的泛型类型。
2023-08-30 22:35:41
378
原创 Java --- 异常处理
指的是程序在执行过程中,出现的非正常情况,如果不处理最终会导致JVM的非正常停止。异常指的并不是语法错误和逻辑错误。语法错了,编译不通过,不会产生字节码文件,根本不能运行。代码逻辑错误,只是没有得到想要的结果。
2023-08-28 05:07:38
446
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人