自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

半斤米粉闯天下的博客

做一个有情怀有理想的码农

  • 博客(74)
  • 资源 (2)
  • 收藏
  • 关注

原创 SpringGateway配置使用WebClient编写全局拦截器鉴权

SpringGateway配置使用WebClient基于WebFlux编写全局拦截器进行鉴权转发

2024-01-02 16:18:26 717 4

原创 基于注解切换、Hikari实现的SpringBoot动态数据源(支持JNDI)

基于Hikari实现的动态数据源切换

2023-06-13 17:16:44 1756

原创 nginx 200请求正常,403 500请求报跨域问题的处理

nginx添加跨域头,200请求正常,403、500请求报跨域失败问题的处理

2022-11-29 17:25:00 1455 1

原创 SpringSecurity自定义多Provider时提示No AuthenticationProvider found for问题的解决方案与原理(四)

SpringSecurity 5.6.X 自定义多Provider时No AuthenticationProvider found for问题的排查与修复

2022-08-29 17:40:28 3925 44

原创 SpringSecurity自定义多Provider时提示No AuthenticationProvider found for问题的解决方案与原理(三)

SpringSecurity 5.6.X 自定义多Provider时No AuthenticationProvider found for问题的排查与修复

2022-08-29 16:42:20 5028 5

原创 SpringSecurity自定义多Provider时提示No AuthenticationProvider found for问题的解决方案与原理(二)

SpringSecurity 5.6.X 自定义多Provider时No AuthenticationProvider found for问题的排查与修复

2022-08-29 11:04:44 4880

原创 SpringSecurity自定义多Provider时提示No AuthenticationProvider found for问题的解决方案与原理(一)

SpringSecurity 5.6.X 自定义多Provider时No AuthenticationProvider found for问题的排查与修复

2022-08-27 16:34:05 9032 18

原创 SpringBoot 异步线程池配置

SpringBoot 异步线程池配置

2022-06-30 17:26:32 903

原创 双重检查单例模式的的HttpClient线程池实现

单例模式(双重检查)的HttpClient线程池实现

2022-05-19 10:59:27 1202 2

原创 SpringCloud 2021 与 Nacos 配置中心集成排雷记录:bootstrap.yml

解决springcloud2021 2020无法识别bootstrap.yml的问题

2022-05-07 18:06:25 3906 7

原创 关于UUID的重复性

UUID会重复吗有的人说一定不会重复,也有的人说很小几率会重复,其实都有可能,取决于代码中使用的是哪种UUID生成方式,或者说,使用的是哪种UUID算法。UUID Version 1:基于时间的UUID基于时间的UUID通过计算当前时间戳、随机数和机器MAC地址得到。由于在算法中使用了MAC地址,这个版本的UUID可以保证在全球范围的唯一性。但与此同时,使用MAC地址会带来安全性问题,这就是这个版本UUID受到批评的地方。如果应用只是在局域网中使用,也可以使用退化的算法,以IP地址来代替MAC地址(

2022-01-04 15:53:59 50655 2

原创 JVM学习记录(三) 双亲委派机制

其实这个翻译就很容易引起歧义,英文原名叫Parents Delegation Model,个人感觉叫官僚模型或啃老模型更合适一些,因为整个流程里面并没有体现到“双亲”在哪里。概述JVM采用按需加载类的模式,当需要加载某一类时,会将请求交由父类加载器处理,直至最顶层引导类加载器结束。类加载器收到加载请求,将请求转发给父级类加载器如果父类加载器还存在父加载器,那么继续向上转发,直至最顶层若引导类加载器可以完成类加载,那么成功并返回;如果无法完成则反向交由下级加载器进行加载,直至加载成功例子

2021-05-06 17:26:47 137

原创 JVM学习记录(二) 类加载器

引导类加载器(启动类加载器)C/C++编写的用于加载核心类库,例如jdk1.8.0_281\jre\lib\rt.jar等,String类即在此时加载加载自定义类加载器,包括扩展类加载器和系统类加载器出于安全考虑此阶段只加载包名为java,javax,sun等开头的类没有父加载器自定义类加载器用java编写的JVM规范中,除了引导类加载器,剩下统称为自定义类加载器均派生于java.lang.ClassLoader,可以通过getClassLoader()方法获取父加载器扩展类加载

2021-05-06 15:02:27 106

原创 JVM学习记录(一) 类加载子系统

加载(Loading)读取class文件获取二进制流将类的静态存储结构转换为方法区的运行时数据结构(1.7及之前叫永久代,之后叫元空间)在内存中生成一个该类的java.lang.Class对象链接(Linking)验证(Verification)文件格式验证、元数据验证、字节码验证、符号引用验证十六进制文件头一定是 CA FE BA BE准备(Preparation)为类的成员变量在堆空间中分配内存并设置零值(boolen为false,int为0等等)被final修饰的sta.

2021-04-30 14:47:43 115 1

原创 使用Jsch通过SFTP下载ZIP文件并解压

ZIP模块用的并不是java.util下的,而是apache的commons-compress,用apache的库可以避免很多因为操作系统问题造成的编码异常。大概流程是这样的:本地通过sftp访问服务器上的某个目录,然后获取到其中的zip文件并分别提取文件流。package com.ludan.rddatamid.qilubankguarproject.service;import com.central.common.feign.FileService;import com.central.co

2021-04-14 17:30:16 1867

原创 mongodb查询多个字段组合重复的数据

假设文档如下{a}db.getCollection('enterprise_lib_recommend').aggregate([{ '$group': { '_id': { 'news_id': '$news_id', 'enterprise_name': '$enterprise_name' }, 'uniqueIds': {

2021-01-18 16:59:42 1428

原创 mongodb分片集群报couldn`t find valid index for shard key

环境:mongodb 4.4.1,三副本三shard的分片集群问题:对一个已存在的集合(>2000w数据)进行分片,创建分片索引之后执行sh.shardCollection("data_platform.mongo_api_user_info",{client_id:"hashed"})报错,分片不成功,提示couldn't find valid index for shard key这里能看到几个比较关键的点分片键已经创建索引,索引类型是hashed,分片模式也是hashed该索引

2020-11-23 15:49:02 662

原创 centos8下nginx-gridfs安装及踩坑纪录

nginx-gridfs是一个可以通过http请求直接访问mongodb里gridfs存储的文件的一个插件,在使用过程中踩了不少版本的坑,记录下来,需要注意的点会用黄色打底标注。先说一下能正常使用的最新环境:操作系统采用的是Centos8,nginx-1.18.0,mongodb 4.0.20。安装前置环境yum install pcre pcre-devel zlib zlib-devel openssl openssl-devel gcc-c++ make下载nginx-gridfs(用mas

2020-09-25 13:01:13 280

原创 自己实现的一个redis锁注解

@Slf4j@Aspect@Componentpublic class SynchronizeLockAspect { private static final String KEY = "thread_lock"; private final ThreadLocal<String> threadLocal = new ThreadLocal<>(); private final StringRedisTemplate stringRedisTemp

2020-09-14 09:41:03 197

原创 springboot切面不生效踩坑纪录

今天想写个同步锁的功能,第一反应自然是切面,但写出来之后怎么调试切面都不执行,折腾一下午最后无意中发现了问题所在。在new文件的时候,注意这个Aspect的选项,当时我想都没想就选了他通过他建立的文件是不一样的,后缀名是.aj而不是.java,但坑爹的是语法和java完全一样,编译运行也都没有任何异常,就是不执行!!手动把文件后缀改成.java之后一切正常。这个小问题折腾了整整一下午,要不是打算临时提交git根本注意不到这个小后缀名的区别,太坑了。另外多查了一下AspectJ的文件需要单独的编译

2020-09-09 17:54:22 8311 6

原创 LVM建立逻辑卷

先记录一下lvm常用的命令功能PVVGLVscanpvscanvgscanlv scancreatepvcreatevgcreatelvcreatedisplaypvdisplayvgdisplaylvdisplayremovepvremovevgremovelvremovereducevgreducelvreduce...

2020-03-23 11:14:10 129

原创 Hive分区操作及遇到的问题

添加分区 alter table user_bhv add if not exists partition (month="2020-03");删除分区 alter table user_bhv drop partition (month='2020-03');修复分区 msck repair table user_bhv;查看所有分区 show partitions user_bhv;查...

2020-03-05 15:58:21 2743

原创 HBase Unable to load native-hadoop library for your platform警告解决方案

在启动hbase shell时出现了这样的警告:2020-03-02 18:46:49,380 WARN [main] util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable其实这个警告并不影响执行命令...

2020-03-02 21:19:41 5966 3

原创 hadoop 3.2.1 Yarn集群HA搭建及踩坑记录

接上篇,hdfs集群启动后仅仅是一个分布式文件系统而已,并不具备计算的能力,因此引出yarn,记录一下yarn HA的搭建过程。首先需要注意一点,Yarn与HDFS属于两个不同的集群,一个负责文件存储,一个负责作业调度,二者之间没有必然关系,也不一定说Yarn的某些节点必须必须要放在datanaode上。通常会把nodemanager和datanode放在一起是因为要“计算向数据移动”,尽可能...

2020-02-27 18:55:27 3007 2

原创 hadoop 3.x常用端口

分类应用端口namenoderpc-address8020namenodehttp-address9870namenodehttps-address9871datanodeaddress9866datanodehttp-address9864datanodehttps-address9865

2020-02-20 22:05:54 2721

原创 flume与hdfs集成排雷指南

先说一下环境,flume 1.9.0,hadoop 3.2.1,兼容没有问题,官方文档没什么好说的,足够详细,每一项后面都附带有例子,好评。但是在配置sink to hdfs的时候足足趟了不少雷,记录下来希望可以帮到更多的人。错误最常见的还是java.lang.NoClassDefFoundError异常,出现这个提示100%是因为flume缺少相应的组件包,下面分别说一下缺少的内容,找到对应...

2020-02-20 21:50:46 1329 2

原创 hadoop 3.2.1集群高可用(HA)搭建

规划共三台机器,目标是搭建一套配置了HA的双副本hadoop集群,关于zkfc,journalnode的详细原理不再赘述,集群详细规划如下:namenodedatanodejournalnodeZKFCmaster***slave1****slave1***出于简单方便,我个人并没有使用zookeeper集群,而是在docke...

2020-02-19 23:16:54 3578 1

原创 mysql配置主从库全流程纪录

业务需要,正好自己从来没有接触过mysql运维相关,把步骤记录下来。主库创建同步角色查看已有用户SELECT DISTINCT CONCAT('User: ''',user,'''@''',host,''';') AS query FROM mysql.user;创建新用户并限定访问ipcreate user 'slave'@'172.24.7.109' identified by '...

2019-12-23 21:59:38 292

原创 一次docker环境下spring错误读取配置文件问题的排查纪录

起因是发现docker环境上部署的spring配置文件读取错误,jar的目录下配置文件指向test环境但是实际应用启动后却读取到Jar包内的dev配置文件。先记录一下最终结论:当执行java -jar命令启动spring应用时,spring会在执行命令的目录下寻找是否存在application.properties,而不是在jar文件所在的目录做个实验来验证一下。jar同级目录下放置了两个...

2019-11-26 17:27:30 772

原创 Docker常用命令

构建容器 docker build --tag xxxx .–tag: 镜像的名字及标签-f: Dockerfile的路径

2019-10-18 11:06:31 124

原创 gradle 5.0以后与lombok的兼容问题

一直用的是gradle 4.x版本,与lombok一直相安无事。今天新拉一个工程把gradle更新到5.6.2之后就出问题了,现象是这样的:如果代码中使用到了bulider或toString等由lombok注解提供的功能,比如这样:在编译的时候gradle就会报错,而且报错信息是乱码:中间绕了多少弯路就不说了,又是改编码又是调IDE的,全都是无用功。gradle 5.0以后lombok的...

2019-09-18 15:45:49 2177 5

原创 ElasticSearch初步使用

spring来管理 RestHighLevelClient@Configurationpublic class ElasticRestClientConf { @Value("${elasticsearch.ip}") private String ip; @Value("${elasticsearch.port}") private Integer port...

2019-07-31 09:14:04 167

原创 JavaCV最小依赖

JavaCV如果使用默认的 compile group: 'org.bytedeco', name: 'javacv-platform', version: '1.5' 作为依赖的话会把所有平台的编译后库文件或dll文件全都下载下来,生成的jar多达400M+,并不适合生产使用。摸索了一下对依赖项进行了精简,只保留了windows及linux-x86平台所需,jar体积缩小到了80M左右。com...

2019-07-11 14:08:24 7285 3

原创 JavaCV入门示例及UnsatisfiedLinkError异常踩坑记录

JavaCV可以认为是OpenCV的Java版,其本质上是一个Java Interface,是一个联结Java与OpenCV的桥梁,所以它本质上是依赖OpenCV的。关于这东西能查到的文档和资料实在是太少了,这个过程中着实踩了不少坑,记录一下以便帮助以后的人。先说第一个坑,从JavaCV 0.8版本开始,OpenCV被完整地集成进了JavaCV的依赖中,也就是说从这个版本以后不需要在环境中配置...

2019-07-10 12:23:55 5193 9

原创 JPA字段为null时不保存/更新

实体类中某些字段为null时,默认状态下执行save操作也会将null值存入,如果数据表中字段的类型不是char一类的字符类型就会出现各种稀奇古怪的报错,解决很简单,在对应的实体类加上@DynamicInsert注解就可以了。同理,对于更新操作也有@DynamicUpdate注解。...

2019-06-25 10:26:53 9583 10

原创 使用PowerMockito对私有private方法及异常进行测试

注意不是mock私有方法假如对下面的代码进行测试:public class Service { private int getBackupSize(String backupId, String keycloakToken) { //some code...... try { backup = os.blockStorage().backups()...

2019-06-10 17:30:59 14012

原创 关于Mockito处理 List (? extends A) 的解决方案

最近在写单元测试的时候遇到一个问题,把解决过程记录下来。业务代码如下:volume.getAttachments().get(0).getServerId()其中getAttachments()方法定义如下:List<? extends VolumeAttachment> getAttachments();VolumeAttachment定义如下:package org...

2019-06-05 15:16:13 5790

原创 Mockito快速上手

关于单元测试与集成测试单元测试:针对代码中最小可测试单元进行测试,通常就是一个方法块。单元测试只关注方法本身的业务逻辑,不关心其余任何与外部交互的方法或接口。集成测试:在单元测试的基础上将所有模块按照系统设计或业务规则组装为子系统或系统。集成测试主要目的是验证各个模块之间能否顺利交互,比如第三方API能否调通。Mockito单元测试的基本流程:模拟并替换测试代码中所有的外部依赖...

2019-05-30 20:33:30 487

原创 解决单元测试Mockito模拟方法内new对象的问题

对于正常通过构造或者注入方式依赖的对象,Mockito还是很好解决依赖关系的,但是如果遇到被测方法内出现 new 依赖的对象,就变得麻烦一些了。这里举一个比较特殊的例子,new了一个线程对象,实际上该解决方案针对所有通过 new 得到的对象均适用(如 RestTemplate ):public class A { public String someMethod() { //some c...

2019-05-30 19:35:22 30492 10

原创 Mockito编写Service层单元测试

上一篇记录了针对Controller层的单元测试,这一篇看一下针对Service层的测试,以及踩过的坑。由于业务层代码跟公司实际业务紧密相关,不方便贴代码,如有需要的地方会简短的写几行帮助理解,总的来说有以下几个要点:Mockito框架不支持static以及非public的方法或成员变量的mock,如有需要可使用PowerMockito框架注意大多数工具类也是static的推荐使用Bas...

2019-05-28 17:40:28 9785

mariadb-10.5.11-linux-mips64 适配龙芯 MIPS

mariadb 10.5.11 适配龙芯 MIPS版本,兼容mysql 8

2021-11-12

mariadb-10.5.11-linux-aarch64 适配ARM

mariadb 10.5.11版本 linux ARM64 兼容mysql 8

2021-11-12

空空如也

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

TA关注的人

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