- 博客(30)
- 收藏
- 关注
原创 SpringCloudGateway限流-RedisRateLimiter问题记录
引入RedisRateLimiter1.类路径:org.springframework.cloud.gateway.filter.ratelimit.RedisRateLimit在这里插入代码片erspring.cloud.gateway.redis-rate-limiter2.内部类路径:org.springframework.cloud.gateway.filter.ratelimit.RedisRateLimiter.Configspring.cloud.gateway.redis-r.
2022-01-18 16:40:57
2064
原创 JAVA(3)- 线程上下文类加载器
JAVA(3)- 线程上下文类加载器前言概念1、为什么需要线程上下文类加载器2、数据库驱动初始化源码分析3、总结前言线程上下文类加载器扩展:概念SPI:Service Provider Interface 、由JDK定义的一套标准接口,方便扩展各个厂商的不同实现1、为什么需要线程上下文类加载器JDK核心库中提供了很多SPI(Service Provider Interface),常见的SPI包括JDBC、JCE、JNDI、JAXP、和JBI等、JDK只规定了这些接口之间的逻辑关系,但
2021-03-09 18:29:37
228
原创 多线程(8)- 深入volatile关键字
多线程(8)- 深入volatile关键字前言概念1、并发编程1.1原子性前言volatile关键字扩展:概念1、并发编程1.1原子性在一次的操作或者多次操作中,要么所有操作全部都起到执行,要么所有操作都不执行。...
2021-03-09 18:26:35
272
原创 多线程(7)- volatile关键字
多线程(7)- volatile关键字前言概念1、初识volatile2、CPU Cache模型CPU Cache交互2、CPU缓存一致性问题4、Java内存模型JMM(Java Memory Mode)前言volatile关键字扩展:概念1、初识volatilevolatile关键字只能修饰类变量和实例变量、对于方法参数、局部变量、以及实例常量、类常量都不能进行修饰。一段代码public class VolatileFoo { private static f
2021-03-09 18:26:11
137
原创 JAVA(2)- JVM类加载器
JAVA(2)- JVM类加载器前言概念1、JVM内置三大类加载器1.1根类加载器介绍1.2扩展类夹杂器1.3系统类加载器2、自定义类加载器3、双亲委托机制概念4、破坏双亲委托机制5、类加载器5.1类加载器命名空间5.2类加载器运行时包5.3初始化类加载器5.4类的卸载6、总结前言JVM类加载器扩展:概念JVM: Java虚拟机。1、JVM内置三大类加载器1.1根类加载器介绍Bootstarp类加载器:C++编写,负责虚拟机核心类库的加载,有加载整个java.lang包可通
2021-03-07 14:07:40
114
原创 JAVA(1) - 类的加载过程
JAVA - 类加载前言概念1、类加载简介加载连接初始化类的主动使用与被动使用主动使用被动使用2、加载阶段3、连接阶段3.1验证3.2准备3.3解析在常量池中寻找类、接口、字段、和方法的符号引用(助记符),并将这些符号引用转换为直接引用的过程。4、类的初始化阶段4.1 `()`方法5、输出前言类加载流程扩展:概念符号/直接引用:能否直接使用#https://www.zhihu.com/question/30300585/answer/51335493带有类型(tag) / 结构(符
2021-03-06 22:07:42
123
原创 SpringBoot(3)-启动流程
SpringBoot(3)-Tomcat前言概念Tomcat前言Tomcat 扩展:概念TomcatTomcat是怎么加载的1、ServletWebServerFactoryAutoConfiguration2、ServerProperties1.1//对Tomcat进行初始化@ConditionalOnClass(name = "org.apache.catalina.startup.Tomcat")public TomcatServletWebServerFac
2021-03-04 09:31:31
250
原创 SpringBoot(2)-组件
SpringBoot(2)-核心组件前言概念1、监控信息-actuator2、自定义Starter前言SpringBoot核心组件,actuator扩展:概念1、监控信息-actuator加入监控依赖包<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId
2021-03-04 09:30:57
169
原创 多线程(6)- Hook线程与线程异常捕获
多线程(6)- 线程异常前言概念1、UncaughtExceptionHandlerAPIdispatchUncaughtException-异常回调2、获取线程运行时异常3、异常捕获机制Thread捕获机制ThreadGroup异常捕获机制异常出现uncaught调用流程:Thread -> ThreadGroup -> MainGroup -> SystemGroup ->System.err4、注入钩子线程防止程序重复启动前言线程异常扩展:概念Uncau
2021-03-01 10:45:57
438
2
原创 多线程(5)- 线程组
多线程(5)- 线程组前言概念1、线程组的创建2、线程与线程组的复制3、线程组API4、interrupt5、destory6、守护ThreadGroup前言线程组扩展:概念线程组: 是一个管理线程的组织,提供多个API对线程组操作。1、线程组的创建构造//指定名称创建线程组public ThreadGroup(String name) { this(Thread.currentThread().getThreadGroup(), name); }
2021-03-01 10:45:42
139
1
原创 多线程(4)- 线程间通信
多线程(4)- 线程间通信前言概念1、同步阻塞与异步非阻塞2、单线程间通信2.1 Object.wait2.2 Object.notify2.3 wait、notify注意事项2.4 wait sleep区别3、多线程间通信4、自定义显示锁多个线程竞争锁锁中断能力获取锁超时前言同步阻塞与异步非阻塞、单线程通信,多线程通信扩展:概念JVM: Java虚拟机。1、同步阻塞与异步非阻塞同步阻塞:每个请求Event过来同步调用方法,执行一系列业务操作,最后返回结果。客户等待时间长系
2021-03-01 10:45:26
150
原创 多线程(3)- 线程同步
多线程(3)- 线程同步前言概念1、数据不一致问题2、synchronizedmonitor使用synchronized注意事项死锁原因,如何诊断前言Another-Redis-DesktopManager主要包括线程API方法使用及说明扩展:概念共享资源:多个线程对用一个资源进行访问(读写操作),这个资源就是共享资源。数据/资源同步:如何保证多个线程访问的共享资源数据是一致的。1、数据不一致问题public class InconsistentDataProblem {
2021-03-01 10:45:12
161
3
原创 多线程(2)- 线程API
多线程(2)- 线程API前言概念1、API1.1、sleep1.2、yield1.3、setPriority1.4、interrupt1.5、join1.6、线程正常结束前言Another-Redis-DesktopManager主要包括线程API方法使用及说明扩展:概念进程: 计算机的一个任务就是一个进程。线程:进程的最下执行单元,每个进程至少要有一个线程是在运行中。1、API1.1、sleep不会放弃monitor锁的所有权TimeUnit.sleep 代替 Thre
2021-03-01 10:44:30
108
原创 多线程(1)- 认识线程
多线程(1)- 认识线程前言概念1、线程的创建1.1 Thread类1.2 实现Runnable1.3 使用Callable2、认识线程的5种状态3、前言Another-Redis-DesktopManager主要包括线程概念,线程状态扩展:概念进程: 计算机的一个任务就是一个进程。线程:进程的最下执行单元,每个进程至少要有一个线程是在运行中。程序计数器:指向正在执行的指令指针局部变量表:维护传递过来的变量信息线程各自的生命周期当启动了一个Java虚拟机(JVM)时,从操作系
2021-03-01 10:44:14
89
原创 Redis(6)- Redis集群
Redis(6)- Redis集群前言概念原因一、Redis分布式集群安装1、Ruby环境搭建安装Ruby环境安装redis工具包二、配置集群环境1、配置redis.conf、启动集群2、集群测试获取集群节点信息集群添加数据集群添加节点重新分配槽值集群减缩节点3、一主多从配置三、集群说明集群节点间通信-Gossip协议集群节点间通信-消息解析流程集群节点间通信-PING PONG消息交换RedisCluster下线流程集群间节点通信-节点路由RedisCluster集群-故障转移主观下线RedisClust
2021-02-26 10:12:52
571
原创 Redis(5)- Redis哨兵机制
Redis(5)- Redis集群哨兵机制前言一、Redis持久化1、RDB方式2、AOF方式二.Redis主从1 Redis主从配置2 主从复制主从复制原理三、Redis主从拓扑前言主要包括Redis持久化机制,Redis主从搭建配置,Redis同步说明,多种拓扑方式说明一、Redis持久化1、RDB方式1.手动触发save:阻塞当前Redis,一直到Redis持久化完成,如果内存实例太大,造成长时间阻塞,线上不建议使用bgsave:redis进程执行fork操作创建子线程,由子线程
2021-02-26 10:12:33
239
原创 Redis(4)- Redis持久化与主从
Redis(4)- Redis持久化与哨兵机制前言一、Redis持久化RDBAOF二.Redis集群1 Redis集群2 LUA在Redis上的应用-使用脚本文件三、Redis哨兵消息发布与订阅总结前言主要包括Redis持久化机制,Redis集群搭建,Redis哨兵机制一、Redis持久化RDB1.手动触发save:阻塞当前Redis,一直到Redis持久化完成,如果内存实例太大,造成长时间阻塞,线上不建议使用bgsave:redis进程执行fork操作创建子线程,由子线程完成
2021-02-26 10:12:16
198
原创 Redis(3)- Redis协议相关
Redis(2)- RedisAPI与LUA使用前言一、Redis协议RESP二.Redis伪服务端1 Redis伪服务端2 LUA在Redis上的应用-使用脚本文件三、Pipeline四、事务消息发布与订阅总结前言主要包括Redis协议,Redis集群搭建,Redis哨兵机制一、Redis协议RESPmget str:1*2 #多少组$4 #这组的字符长度mget$5str:1Redis测试redis-cli判断访问的redis服务是否通 ping 命令[root@
2021-01-28 23:30:13
133
原创 Redis(2)- RedisAPI与LUA使用
Redis(2)- RedisAPI与LUA使用前言一、Redis基本数据类型及API1.基本数据类型2.API操作二.Redis使用LUA脚本1 LUA在Redis上的应用-硬编码2 LUA在Redis上的应用-使用脚本文件三、Redis配置文件使用总结前言主要包括Redis基本数据类型API,Redis结合Lua脚本使用,Redis一些属性配置一、Redis基本数据类型及API1.基本数据类型stringString类型 存储key valuehashlists
2021-01-28 23:28:29
517
原创 Linux安装jdk1.8
卸载JDK检查是否已安装命令:java -version:查看JDK安装版本查询已安装JDK命令:rpm -qa | grep java :命令的意思是搜索java,查看安装包文件。卸载已安装JDK卸载命令:rpm -e --nodeps 名称 或者 yum remove openjdk确认是否卸载干净之后再次输入命令 查看卸载情况:rpm -qa | grep java 或者 java -version安装JDK下载jdk 使用的是1
2021-01-28 00:36:06
133
1
原创 Redis(1)- 安装及配置
Redis(1)- 安装及配置前言一、Redis是什么?二、Redis安装配置1.Linux系统安装工具2.安装并配置Redis前言主要处理Redis在Linux上的安装,启动,停用一、Redis是什么?Redis(Remote Dictionary Server ),即远程字典服务,是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。Redis是现在最主流的NoSQL数据库之一。NoSQL(Not Only S
2021-01-10 22:26:11
107
原创 Windows下使用VMware安装虚拟机
Windows下使用VMware安装虚拟机本地安装虚拟机1、下载安装VMware软件2、下载Linux系统镜像ISO , 使用的Centos7.5版本3、安装Linux虚拟机配置NAT模式上网1、设置网络适配器与虚拟机的默认网关2、配置虚拟机的IP及虚拟网卡安装Linux常用工具本地安装虚拟机1、下载安装VMware软件省略……2、下载Linux系统镜像ISO , 使用的Centos7.5版本省略……3、安装Linux虚拟机点击新建虚拟机这里使用的是典型安装稍后安装系统根据自身需求安
2021-01-10 21:26:27
629
原创 Spring学习-SimpleAliasRegistry
/**别名处理流程**/org.springframework.core.SimpleAliasRegistry#registerAlias/** Map from alias to canonical name */ 别名到实例名的映射 private final Map<String, String> aliasMap = new ConcurrentHashMap<>(16);@Override public void registerAlias(String
2020-11-04 15:51:05
177
原创 Spring学习-BeanDefinitionRegistry
org.springframework.beans.factory.support.BeanDefinitionRegistry// 它继承自 AliasRegistry public interface BeanDefinitionRegistry extends AliasRegistry { // 关键 -> 往注册表中注册一个新的 BeanDefinition 实例 void registerBeanDefinition(String beanName, BeanDefinitio
2020-11-04 15:50:45
310
原创 ElasticSearch(6.8.6)-es重建索引
ES重建索引一、重建索引流程1、老索引添加别名2、创建新索引3、copy老索引数据到新索引4、替换别名5、删除旧索引二、扩展操作建立新索引,索引名称为老索引名称将现在的索引数据迁移到新建索引中需求说明:在业务中遇到创建索引属性类型存在问题,导致查询异常,现在就是要更改现有索引属性类型,同时保留现有数据,因此了解到重建索引,并记录下来。一、重建索引流程文中所有请求都是使用postman{{es_url}} 为postman全局配置:es服务地址:端口、如果有身份验证请加上用户密码tips:本人非线上
2020-10-13 10:14:37
1969
原创 Postgresql使用函数初始化所有索引初始值
Postgresql使用函数初始化所有索引初始值注意:仅适合从其他库导出结构并需要序列初始化时使用 select * from 序列值名称(Exp:user_id_seq); ALTER SEQUENCE user_id_seq restart with 4;实际修改的是last_value值CREATE OR REPLACE FUNCTION "public"."initseq"...
2019-02-16 14:45:35
983
原创 MySQL删除主键、添加主键约束
需求:将原自增长主键值整体+1000 、 起始值1000 、 最大ID5000执行更新语句报错、主键重复 UPDATE table_name SET id= id+1000;解决方法设置为不自动增长:alter table table_name modify id int(11);或者alter table table_name change id id int;具有更改字段名...
2018-09-21 11:43:28
17729
3
原创 MySQL获取时间戳、毫秒数
current_timestamp(3)2018-09-20 17:56:39.916unix_timestamp(current_timestamp(3))1537437399.934select REPLACE(unix_timestamp(current_timestamp(3)),'.','');1537437399953
2018-09-20 17:58:26
38727
原创 跨域,通过Apache本地服务器调试运行
mui.ajax(URL,{ dataType:'json', type:'get', success:function(data){ if(data.Success){ } }, error:function(xhr,type,errorThrown){
2016-12-20 16:02:41
1381
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人