- 博客(39)
- 收藏
- 关注
原创 29juc
线程对象中有一个标识的值(true|false)默认是falsesleep,wait,join方法会时刻监测这个标识的值是不是true,如果一旦发现这个值变为true,那么就抛出Interrupted Exception异常结束阻塞状态,并再把这个值改为false。:打断这个线程,把false改成true:返回“打断标识”值,并对这个值进行清除(true-false)。因为所传参数ClearInterrupted的值为true:返回“打断标识”值,并且不会对这个值进行清除(true-false)。
2025-05-24 09:37:35
788
原创 26RabbitMQ高级
每个RabbitTemplate只能配置一个ReturnCallback,因此需要在项目加载时配置:修改publisher服务,添加一个:(消息到了交换机,路由过程中失败)@Slf4j@Override// 获取RabbitTemplate// 设置ReturnCallback// 投递失败,记录日志log.info("消息发送失败,应答码{},原因{},交换机{},路由键{},消息{}",// 如果有业务需要,可以重发消息});
2025-05-17 13:25:32
807
原创 25分布式缓存
传统的缓存策略一般是请求到达Tomcat后,先查询Redis,如果未命中则查询数据库,如图:存在下面的问题:•请求要经过Tomcat处理,Tomcat的性能成为整个系统的瓶颈•Redis缓存失效时,会对数据库产生冲击浏览器访问静态资源时,优先读取浏览器本地缓存访问非静态资源(ajax查询数据)时,访问服务端请求到达Nginx后,优先读取Nginx本地缓存如果Nginx本地缓存未命中,则去直接查询Redis(不经过Tomcat)如果Redis查询未命中,则查询Tomcat。
2025-05-17 13:07:34
650
原创 23Sentinel微服务保护
什么是雪崩问题?微服务之间相互调用,因为调用链中的一个服务故障,引起整个链路都无法访问的情况。限流是对服务的保护,避免因瞬间高并发流量而导致服务故障,进而避免雪崩。是一种预防措施。超时处理、线程隔离、降级熔断是在部分服务故障时,将故障控制在一定范围,避免雪崩。是一种补救措施。Sentinel是阿里巴巴开源的一款微服务流量控制组件。Sentinel 具有以下特征:•丰富的应用场景。
2025-05-17 12:00:23
696
原创 22elasticsearch
分布式搜索引擎elasticsearch是一款非常强大的开源搜索引擎,具备非常多强大功能,可以帮助我们从海量数据中快速找到需要的内容例如:在GitHub搜索代码,在电商网站搜索商品,在百度搜索答案,在打车软件搜索附近的车elasticsearch结合kibana、Logstash、Beats,也就是elastic stack(ELK)。被广泛应用在日志数据分析、实时监控等领域:数据抓取,比如日志数据而elasticsearch是elastic stack的核心,负责存储、搜索、分析数据。elasticsea
2025-05-17 11:43:19
988
原创 21RabbitMQ
基本消息队列publisher:消息发布者,将消息发送到队列queuequeue:消息队列,负责接受并缓存消息consumer:订阅队列,处理队列中的消息1、消息生产者将消息放入队列2、消息的消费者(consumer) 监听(while) 消息队列,如果队列中有消息,就消费掉,消息被拿走后,自动从队列中删除(隐患 消息可能没有被消费者正确处理,已经从队列中消失了,造成消息的丢失)3、应用场景:聊天(中间有一个过度的服务器;p端,c端)建立connection创建channel。
2025-05-17 10:39:37
962
原创 20Docker
例如一个项目中,部署时需要依赖于node.js、Redis、RabbitMQ、MySQL等,这些服务部署时所需要的函数库、依赖项各不相同,甚至会有冲突。给部署带来了极大的困难。Docker为了解决依赖的兼容问题的,采用了两个手段:将应用的Libs(函数库)、Deps(依赖)、配置与应用一起打包将每个应用放到一个隔离去运行,避免互相干扰Docker解决不同系统环境的问题。
2025-05-17 10:32:18
969
原创 19Gateway
过滤器的作用是什么?① 对路由的请求或响应做加工处理,比如添加请求头② 配置在路由下的过滤器只对当前路由的请求生效defaultFilters的作用是什么?① 对所有路由都生效的过滤器需求:定义全局过滤器,拦截请求,判断请求的参数是否满足下面条件:参数中是否有authorization,authorization参数值是否为admin如果同时满足则放行,否则拦截实现:@Order(-1)@Component@Override// 1.获取请求参数。
2025-05-17 10:01:15
617
原创 18Feign
使用Feign的步骤:① 引入依赖② 添加@EnableFeignClients注解③ 编写FeignClient接口④ 使用FeignClient中定义的方法代替RestTemplate类型作用说明修改日志级别包含四种不同的级别:NONE、BASIC、HEADERS、FULL响应结果的解析器http远程调用的结果做解析,例如解析json字符串为java对象请求参数编码将请求参数编码,便于通过http请求发送支持的注解格式默认是SpringMVC的注解失败重试机制。
2025-05-17 09:41:20
556
原创 17Nacos
一个服务有多个实例。同一机房的多个服务的多个实例,形成集群Nacos就将同一机房内的实例 划分为一个集群。也就是说,user-service是服务,一个服务可以包含多个集群,如杭州、上海,每个集群下可以有多个实例,形成分级模型3个nacos节点,然后一个负载均衡器nginx代理3个Nacos。
2025-05-17 09:36:55
935
原创 16Eureka
Eureka注册中心在Eureka架构中,微服务角色有两类:搭建1、创建eureka-server服务项目2、引入eureka依赖引入SpringCloud为eureka提供的starter依赖:3、编写启动类给eureka-server服务编写一个启动类,一定要添加一个@EnableEurekaServer注解,开启eureka的注册中心功能:4、编写配置文件编写一个application.yml文件,内容如下:5、启动服务启动微服务,然后在浏览器访问:http://127.0.0.1:1008
2025-05-17 09:19:26
674
原创 15Nginx
使用Swagger你只需要按照它的规范去定义接口及接口相关的信息,再通过Swagger衍生出来的一系列项目和工具,就可以做到生成各种格式的接口文档,以及在线接口调试页面等等。官网: https:/ /swagger.io/knife4j是为Java MVC框架集成Swagger生成Api文档的增强解决方案。
2025-05-17 09:19:08
753
原创 14Redis
Redis的Java客户端很多,官方推荐的有三种:JedisLettuceRedissonSpring对Redis客户端进行了整合,提供了Spring Data Redis在Spring Boot项目中还提供了对应的Starter,即spring-boot-starter-data-redisSpring Cache是一个框架,实现了基于注解的缓存功能,只需要简单地加一个注解,就能实现缓存功能。Spring Cache提供了一层抽象,底层可以切换不同的cache实现。
2025-05-16 17:15:11
842
原创 13SpringBoot
SpringBoot的自动配置就是当Spring容器启动后,一些配置类、bean对象就自动存入到了IOC容器中,不需要我们手动去声明,从而简化了开发,省去了繁琐的配置操作。
2025-05-16 16:54:56
946
原创 12MyBatis
1、创建数据库test,使用数据库2、执行sql语句3、IDEA中创建maven项目,file->new->project->maven;4、项目结构如图5、pom.xml加入依赖,以及资源过滤6、resourse文件夹中,编写mybatis-config.xml文件,useSSL=false,之前是true,会报错7、maven项目中,连接一下数据库,不确定是否必要,需要设置时区,可以设成Asia/Shanghai8、pojo层编写User类9、dao层的UserMapper.xml和Us
2025-05-16 16:36:41
560
原创 11Spring
控制反转IOC:java对象的创建交给spring容器。对象创建过程中,需要的属性,也由spring容器来负责创建或赋值,这就是依赖注入DI。AOP(Aspect Oriented Programming)意为:面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。自己定义一个类,里面写普通方法,然后xml文件中注册类。之前AOP中,是这样配置advice-ref写注册的增强类,pointcut-ref就是写切入点现在aop的配置aop:config。
2025-05-16 16:19:21
610
原创 10MySQL
MySQL主从复制是一个异步的复制过程,底层是基于Aysql数据库自带的二进制日志功能。就是一台或多台MysQL数据库(slave,即从库)从另一台AySQL数据(master,即主库)进行日志的复制然后再解析日志并应用到自身,最终实现从库的数据和主库的数据保持一致。MySQL主从复制是MNySQL数据库自带功能,无需借助第三方工具。MySQL复制过程分成三步:master将改变记录到二进制日志(binary log)
2025-05-16 15:49:51
800
原创 09java
集合类型主要有三种:Set(集)、List(列表)和Map(映射)。集合是可变长度的,而数组是固定长度的集合只能存储引用数据类型,而数组既可以存储基本数据类型,也可以存储引用数据类型。集合存储的对象可以是不同数据类型,而数组存储的元素必须是同一个数据类型List是一个有序容器,元素可以重复,可以插入多个null元素,元素都有索引。随机访问时,ArrayList的效率比较高;插入、删除数据时,LinkedList的效率比较高。
2025-05-16 15:39:44
562
原创 08vue3
vue2是vue-clivue3是create-vue,底层是 vite (vue2是用webpack)创建后,可执行插件,禁用vue2的vetur,vue3用volar(改名为vue-official)
2025-05-16 11:57:13
614
原创 07vue2
inserted 钩子函数:当指令所绑定的元素被添加到页面时会自动调用全局注册 - 语法,在main.js中注册Vue.directive(‘指令名’, {// 可以对 el 标签,扩展额外功能el.focus()})局部注册 – 语法,在相应的vue文件中注册“指令名”: {// 可以对 el 标签,扩展额外功能el.focus()使用:<input v-指令名 type=“text”>?2、选Manually select features 自定义创建?
2025-05-16 11:48:47
1014
原创 06webpack
静态模块打包工具静态模块:指的是编写代码过程中的,html,css,js,图片等固定内容的文件打包:把静态模块内容,压缩,整合,转译等(前端工程化)✓ 把 less / sass 转成 css 代码✓ 把 ES6+ 降级成 ES5✓ 支持多种模块标准语法。
2025-05-16 11:32:39
836
原创 05Node.Js
Node.js是一个免费、开源、跨平台的 JavaScript 运行时环境, 它让开发人员能够创建服务器 Web 应用、命令行工具和脚本。作用:使用 Node.js 编写服务器端程序✓ 编写数据接口,提供网页资源浏览功能等等✓ 前端工程化:为后续学习 Vue 和 React 等框架做铺垫注意:Node.js 环境没有 DOM 和 BOM 等。
2025-05-16 11:28:01
769
原创 28jvm面试
JVM 指的是Java虚拟机( Java Virtual Machine )。JVM 本质上是一个运行在计算机上的程序,他的职责是运行Java字节码文件,Java虚拟机上可以运行Java、Kotlin、Scala、Groovy等语言。1、JVM 指的是Java虚拟机,本质上是一个运行在计算机上的程序,他的职责是运行Java字节码文件,作用是为了支持跨平台特性。2、JVM的功能有三项:第一是解释执行字节码指令;第二是管理内存中对象的分配,完成自动的垃圾回收;第三是优化热点代码提升执行效率。
2025-05-14 19:49:27
860
原创 27jvm基础
类加载器(ClassLoader)是Java虚拟机提供给应用程序去实现获取类和接口字节码数据的技术,类加载器只参与加载过程中的字节码获取并加载到内存这一部分。类加载器会通过二进制流的方式获取到字节码文件的内容,接下来将获取到的数据交给Java虚拟机,虚拟机会在方法区和堆上生成对应的对象保存字节码信息。一个Tomcat程序中是可以运行多个Web应用的,如果这两个应用中出现了相同限定名的类,比如Servlet类,Tomcat要保证这两个类都能加载并且它们应该是不同的类。
2025-05-14 08:55:24
591
原创 Mybatis项目报错“1 字节的 UTF-8 序列的字节 1 无效。”
Mybatis项目报错“1 字节的 UTF-8 序列的字节 1 无效。”具体报错信息org.apache.ibatis.exceptions.PersistenceException: ### Error building SqlSession.### Cause: org.apache.ibatis.builder.BuilderException: Error creating document instance. Cause: com.sun.org.apache.xerces.intern
2024-11-17 21:36:54
390
原创 哔哩哔哩视频3倍速播放的方法
log里输入 document.querySelector('video').playbackRate = 3不行就输入document.querySelector('bwp-video').playbackRate = 3
2022-03-19 13:11:57
2692
3
原创 JDK下载安装与环境变量的配置
1、下载JDK现在一般使用的是JDK8,我们下载这个版本官网路径https://www.oracle.com/java/technologies/downloads/#java8-windows下载需要同意那个条约,然后还要登录账户。(至于选其他的版本的和一些条件的我也不懂,反正选JDK8的Windows64位就差不多不会有啥问题吧)。2、安装JDK下载后得到.exe的文件直接双击安装(路径可以更改一下,不能有中文,最好也不要有空格,就默认路径也行)最后得到Java目录下的JDK和JRE
2022-02-23 14:03:48
3265
原创 重装Windows10后调节亮度无效,一直是最亮
我的解决方法由于驱动不兼容导致的下载驱动精灵,更新一些驱动,应该是与显卡有关的驱动下载网址: http://www.drivergenius.com/更新完后卸载
2022-02-20 15:07:22
1464
2
转载 重装系统“Windows无法安装到这个磁盘中,选中的磁盘具有MBR分区表”
对我的情况来说错误的方法原因可能是电脑比较老。解决方法:删除U盘里的efi文件夹和bootmgr.efi文件,再重装系统。对我的情况来说正确的方法1.shift+f10 调出CMD窗口2.输入diskpart3.输入list disk,可以看到本机电脑的磁盘列表4.输入select disk 0,选择磁盘05.输入clean,清除磁盘06.输入convert gpt,将磁盘0转换为gpt分区格式,如果要转换成MBR格式就输入convert mbr即可7.转换成功之后,输入两次exit,退
2022-02-19 20:42:24
17315
2
转载 U盘重装系统时提示找不到任何设备驱动程序
U盘重装系统时提示找不到任何设备驱动程序打开命令控制行,输入setup.exe后回车, 就可以继续安装了。
2022-02-19 20:35:06
9809
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人