自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

姑苏

寒山

  • 博客(83)
  • 资源 (5)
  • 收藏
  • 关注

翻译 Spring-Security(一)整体认证流程及其相关概念

Spring security整体认知。

2023-11-13 17:24:53 130

原创 多个SecurityFilterChain执行顺序问题,/oauth2/authorization报404

大概意思就是说如果有多组SecurityFilterChain,只要有一组chain能匹配到,后面的chain中的filter就不会执行了。第二组的chain拦截路径/**其实已经执行过了,第三组中的filter是不会执行的。正常要请求/oauth2/authorization/{regId}跳转到authorization-uri进行认证的,但是搭建好之后,请求这个地址竟然直接报404了,说明oauth2的相关filter并没有生效,直接打到了dispatchServlet。那到底是哪里的问题呢?

2023-07-04 00:10:23 623

原创 3.5.8 Zookeeper(一)在idea中编译遇到的几个问题和集群启动

zookeeper的研究

2022-10-23 23:00:45 1079 1

原创 Zookeeper和Redis作为分布式锁的对比

Redis,zookeeper分布式锁对比

2022-08-18 22:37:18 692

原创 Redis数据结构分析(二)

redis数据结构

2022-07-27 00:04:42 136

原创 Redis数据结构分析(一)

redis数据结构探索

2022-07-21 20:30:13 439

原创 Redis 主从搭建和哨兵搭建

redis主从搭建,哨兵搭建。

2022-06-30 22:56:39 1082

原创 Redis持久化

redis持久化总结

2022-06-20 21:47:24 127

转载 ZUNIONSTORE记录

ZUNIONSTORE

2022-06-19 08:07:05 215

原创 Ubuntu 编辑安装redis

redis 安装编译

2022-06-16 23:11:00 236

原创 Sentinel(四)限流算法-令牌桶算法

Sentinel中的预热流程

2022-06-10 12:35:32 903

原创 Guava(二)限流算法的使用

Guava限流算法的具体分析

2022-06-08 08:16:27 1027

原创 Guava(一)RateLimter设计分析

Guava限流功能分析

2022-06-08 08:09:46 263

原创 DDD的思考(一)

DDD思考。

2022-06-02 09:31:55 130

原创 Sentinel(三) 限流算法-漏桶算法

漏桶算法的介绍网上一大堆,摘取如下:漏桶算法的伪代码如下:public class LeakyBucket { // 当前桶的容量 当前累计的请求数 private int allWater; // 桶的阈值 private volatile AtomicInteger water; // 出水速率 每秒 rate private Long rate; private volatile long timeMillis.

2022-05-12 07:53:56 916

原创 Sentinel源码分析二 之 流控算法-滑动时间窗口

Sentinel源码分析二 之 流控算法-滑动时间窗口

2022-05-10 22:40:04 516

原创 Sentinel 源码分析一

Sentinel 的整体核心流程-责任链模式的经典应用

2022-05-08 20:01:32 803

原创 Ribbon 原理之 流程跟踪

Ribbon流程跟踪

2022-04-25 20:59:16 177

原创 Ribbon原理分析之NamedContextFactory

在跟踪Ribbon源码的过程中看到了NamedContextFactory,不懂其存在的精髓,特此记录下。在SpringCloud中,微服务之间由于系统的不同,可能对于远程调用来说可能需要不同的配置,比如订单系统 A 和库存系统 B,ribbon请求A,B可能需要的连接超时时间重试次数是不一致的,这个时候怎么做到ribbon请求A,B系统的时候使用不同的配置呢。这就引入了NamedContextFactory。从注释上来看:它可以创建一系列的子容器,允许一系列的Specification..

2022-04-22 22:50:23 1137

原创 Raft协议-流程演示

Raft协议是比paxos协议更容易理解和实现的一种一致性协议。http://thesecretlivesofdata.com/raft/ 这个网址动态演示了Raft协议的整个过程。跟着记录一下:1:Raft是一个可被理解接受的分布式一致性协议。2:什么是分布式一致性协议呢?以一个例子为例3:假设有一个单节点系统4:假设这个节点是个数据库服务器,只存储了一个数据。5:假设存储的数据是 X6: 现在有个客户端可以向这个server发...

2022-04-17 10:29:29 3151

原创 @Configuration(proxyBeanMethods = false) 设置这个为false有啥用

最近看Nacos的源码,发现很多Configuration配置类上@Configuration(proxyBeanMethods = false) 都把proxyBeanMethods设置成了false了。特地研究下。源码中默认是true,对这个属性的解释也可以大概知道。1: 如果为true, 则表示被@Bean标识的方法都会被CGLIB进行代理,而且会走bean的生命周期中的一些行为(比如:@PostConstruct,@Destroy等 spring中提供的生命周期), 如果b...

2021-12-29 00:44:32 4616 1

原创 SFTP上传出错之: com.jcraft.jsch.JSchException: connection is closed by foreign host

默认情况下,SSH连接的数量是 这种配置:MaxStartups 默认设置是 10:30:60 表示的意思是:从第10个连接开始以30%的概率(递增)拒绝新连接,直到连接数达到60为止。所以当连接数变大之后,失败率就会变的很高。1)修改/etc/ssh/sshd_config中的MaxStartups,将其改为MaxStartups 100:30:500重启服务,在centos7中:service sshd restart问题解决!可以支持高并发连接。...

2021-08-04 22:27:00 2838

原创 Spring源码分析(十)AOP源码分析

AOP中的几个概念Advisor 和 AdviceAdvice我们通常都会把他翻译为通知,其实很不好理解,其实他还有另外一个意思,就是“建议”,我觉得把Advice理解为“建议”会更好。就是代理的逻辑。比如,我们已经完成了一个功能,这时客户跟我们说,我建议在这个功能之前可以再增加一些逻辑,再之后再增加一些逻辑。在Spring中,Advice分为:前置Advice:MethodBeforeAdvice 后置Advice:AfterReturningAdvice 环绕Advice:M

2021-07-14 22:06:40 166 1

原创 Spring源码分析(九)循环依赖源码分析

什么是循环依赖?很简单,就是A对象依赖了B对象,B对象依赖了A对象。比如:// A依赖了Bclass A{ public B b;}// B依赖了Aclass B{ public A a;}那么循环依赖是个问题吗?如果不考虑Spring,循环依赖并不是问题,因为对象之间相互依赖是很正常的事情。比如A a = new A();B b = new B();a.b = b;b.a = a;这样,A,B就依赖上了。但是,在Spring中

2021-07-06 22:32:15 139

原创 spring源码分析(六) 销毁方法,初始化之前的方法加载和执行过程分析

先看两个注解:@Componentpublic class People { // bean销毁之前执行,容器关闭的时候执行 @PreDestroy public void predesory(){ System.out.println("predesory 执行了"); } // bean创建之前执行 @PostConstruct public void init(){ System.out.println(

2021-06-06 19:46:05 1110

原创 spring源码分析(五)@Autowire注入补充,@Resource源码分析

自动注入补充的点:1:AutowireMode之前博客中讲到@Autowire,@Value,@Inject自动注入的处理都是在后置处理器AutowiredAnnotationBeanPostProcessor#postProcessProperties中,这个后置处理器的调用是在AbstractAutowireCapableBeanFactory#populateBean 中:但是在这段逻辑上面有一段 AutowireMode的判断,会根据bean对应的BeanDefinition中...

2021-06-03 21:54:10 238

原创 Spring中@Auwowired注入源码跟读

Spring里面到底有几种依赖注入的方式呢?1:手动注入 1)我们在xml文件中定义一个bean的时候,在bean标签下面使用<property name="bird" ref="bird"> 代码中提供set方法,把外部对象注入到bean中的方式就是属于手动注入,因为我们要手动的维护这个属性。 2)也可以在bean标签下面使用构造函数标签,来指定使用那个构造函数来向bean中注入属性。2:自动注入 1)XML里面的自动注入 autowire可以...

2021-05-29 00:40:39 384

原创 Spring源码(二)Qualifier 在spring中的应用

@Qualifier可以用来让程序员明确指定想要指定哪个bean,那有程序员就会想问,它和@Autowired和@Resource的区别是什么?假设有如下bean定义: <bean id="user0" class="com.luban.entity.User"> <property name="name" value="user0000"/> </bean> <bean id="user1" class="c.

2021-05-28 00:02:11 272 4

原创 Spring源码(一)bean的实例化到初始化过程源码主流程分析

getBean的大致总流程如下:下面只记录bean实例化到初始化的过程以及期间spring提供可以扩展的点。从下面getBean开始public static void main(String []args){ AnnotationConfigApplicationContext applicationContext = new AnnotationConfigApplicationContext(BeanConfig.class); System.out.print...

2021-05-13 23:52:49 338 2

原创 JVM重新认识(一)oop-klass模型--HSDB使用验证

一:oop-kclass模型思考:我们平时写的java类编译成.class文件,JVM加载.class文件,那么加载.class文件之后在JVM中就是oop-kclass(C++)模型形式存在的。JVM内部基于oop-klass模型描述一个java类以及其实例(对象),java类元信息用klass描述,对象用oop来描述。oop:ordinary object pointer,也即普通对象指针.oop成员众多这里有个问题,不是说xxxoop吗?怎么类图上怎么就是x...

2021-03-31 23:23:40 707

原创 jdk8新特性

JDK8Lambda表达式// 1. 不需要参数,返回值为 5 {}只有一行代码,可以省略() -> 5 // 2. 接收一个参数(数字类型),返回其2倍的值,()只有一个参数可以省略 x -> 2 * x // 3. 接受2个参数(数字),并返回他们的差值 (x, y) -> x – y // 4. 接收2个int型整数,返回他们的和 (int x, int y) -> x + y // 5. 接受一个 string

2021-03-24 23:34:24 320

原创 Red Hat 系统作为基础镜像 安装支持中文的字符集

公司镜像更新基础镜像用了:openjdk:8-jdk-oraclelinux8 ,这是Red Hat操作系统,虽然在Dockerfile中指定了字符集为:en_US.UTF-8 ,但是在运行起来容器之后使用locale命令查看的时候,报错:而且查看容器里系统安装的字符集:locale -a,发现并没有en_US.UTF-8,原来这个基础镜像默认是不带这个东西了。在Dockerfile中添加:RUN microdnf install glibc-langpack-enRUN microdnf

2021-03-22 10:51:06 567

原创 优先级队列

前言:优先级队列,数据结构是堆,存储元素呢一般用数组存储。前面是逻辑上的数据结构,后面是物理上的数据结构。堆的数据结构是一个完全二叉树,如果二叉树每一层的节点都是满的称为满二叉树,除开最后一层其它层都是满称为完全二叉树。堆中又分为小顶堆和大顶堆,小顶堆就是顶部元素是二叉树节点中最小的,大顶堆就是顶部元素是所有节点中最大的。我们直到满二叉树是个等比数列,虽然堆的数据结构是完全二叉树,但是也是适用等比数列的性质,为了快速定位到某个节点的父节点,index/2就是父节点的索引,在用数组存储数据的时候会

2021-03-20 00:30:43 364

原创 DelayQueue

public class DelayQueue<E extends Delayed> extends AbstractQueue<E> implements BlockingQueue<E> { public interface Delayed extends Comparable<Delayed> { long getDelay(TimeUnit unit);}DelayQueue实现了BlockingQueue,.

2021-03-19 20:43:32 74

原创 ConcurrentLinkedQueue

只实现了Queue接口,并没有实现BlockingQueue接口,所以它不是阻塞队列,也不能用于线程池中,但是它是线程安全的,可用于多线程环境中。无界队列成员变量:private transient volatile Node<E> head;//头结点private transient volatile Node<E> tail;//尾节点,指向最后一个节点或者倒数第二个节点private static final sun.misc.Unsafe UNSAFE;//操

2021-03-18 22:41:51 104

原创 Can‘t connect to local MySQL server through socket ‘/Data/mydata/mysql.sock‘ 解决

在linux服务器上想登录Mysql命令行修改参数,一开始使用如下命令:mysql -uroot -p2021直接报错:ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/Data/mydata/mysql.sock' (2)网上漫游找到修改什么配置重启mysql都没用,最后发现个方式,什么配置都不用改,只是换个登录方式:mysql 支持 socket 和 TCP/IP 连接。那么 mys

2021-03-18 14:30:56 2264 1

原创 Docker 本地镜像 推送到指定仓库

1:在本地登录到远程仓库:docker login --username=[用户名] -p=[密码] 远程ip:端口2:给本地镜像打标签, [远程ip:端口/自定义路径/*]:[版本号] 就是:[标签名:版本号]docker tag [镜像id] [远程ip:端口/自定义路径/*]:[版本号]3:推送docker push [远程ip:端口/自定义路径/*]:[版本号]...

2021-02-07 12:42:36 11116

原创 maven打jar包没有主清单列表

新建的一个maven模块,想单独打成一个可执行的jar,打的包没有main-class:在pom里面加上打包插件:<!--打包--> <build> <plugins> <plugin> <artifactId>maven-assembly-plugin</artifactId> <configuration> <descriptorRefs>

2021-02-02 12:58:09 219

原创 UrlEncodedFormEntity提交的数据中文乱码

1:后台使用的servlet接收的数据,设置了各种编码转换,但是到后台request得到的参数中文还是乱码,最后发现罪魁是客户端最后一步封装上。乱码时候客户端使用的代码:后台接收的代码是:虽然设置request的编码了,输出的中文一直是乱码,一直以为是后台代码的问题,查了半天,最后发现是测试案例的问题。加上第二个参数就行了,默认是ISO8859-1。...

2020-12-25 14:51:38 1271

原创 Spring源码分析(二)BeanFactoryPostProcessor之ConfigurationClassPostProcessor的调用过程

前言:BeanFactoryPostProcessor是Spring中的重要组成接口,容器创建过程中起到解析注解,注册BeanDifinition,改变BeanDefiniton属性(也就是改变bean的属性)等重要的作用。对于注解配置的Spring来说,BeanFactoryPostProcessor至关重要。BeanFactoryPostProcessor接口的方法:这是一个函数式接口,只有一个方法,这个方法的参数可以得到beanFactory,就可以修改beanFactory中的内容。所有的.

2020-11-22 20:53:32 287

oracle数据库dmp文件导入导出.exe文件-10版本和11版本.rar

oracle导入dmp文件的时候,版本号不一致,有时候修改dmp文件版本号不能解决问题,需要把使用的imp.exe文件也要和数据库版本保持一致。

2020-10-13

xpath谷歌插件可用

python爬虫xpath-helper谷歌插件,在页面写xpath语法,扩展程序导入浏览器可直接使用的。

2020-10-10

generatorConfiguration.xml

Mybatis Generator逆向工程最完整配置详解,可以根据的需要添加到自己的工程里面。非要大于50个字吗? 凑一下哈 哈哈哈

2020-02-07

springBoot官方英文文档-2.0.2.RELEASE

springBoot的学习从原生的官方文档入手应该是最全面的了。

2019-01-20

java并发编程

对于从事java开发的人员来说,并发是一个很重要的不可避免要处理的问题,这个书也是公认的学习并发的必读物。

2019-01-20

空空如也

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

TA关注的人

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