自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

枸杞泡茶的博客

哈罗单车闯天下

  • 博客(222)
  • 资源 (1)
  • 收藏
  • 关注

原创 Docker启动失败 unknown flag: --graph

在修改完配置文件后,你需要重启Docker服务以使更改生效。这可能是因为你的Docker配置文件或系统服务配置文件中使用了这个已经被弃用的标志。标志来指定Docker的存储驱动和根目录,但在后续版本中,这个标志已被弃用,取而代之的是。Docker在较早的版本中使用了。

2024-02-21 13:36:45 977

原创 Iptables 导致nacos无法访问

在nacos正常启动,云服务器安全组端口开启或者是nginx映射等,并且宿主机访问无误的情况下,nacos依然无法访问.如果使用的是iptables的情况下,重启防火墙之后,还需要重启docker,并且不能继续重启防火墙。如果防火墙已开启需要放开8848端口,然后重启防火墙。检查是宿主机的防火墙是否开启。

2023-04-11 16:48:40 422 1

原创 clion undefined reference to `_imp__htonl@4‘

该错误是因为windows下需要链接ws2_32库,在cmakeList中加入一段配置即可。

2023-03-31 23:04:30 935

原创 Docker Can‘t attach to the process: ptrace(PTRACE_ATTACH, ..) failed for 7: Operation not permitted

Docker 自 1.10 版本开始加入的安全特性。jmap 这类 JDK 工具依赖于 Linux 的 PTRACE_ATTACH,而 Docker 自 1.10 版本开始,默认的 seccomp 配置文件中禁用了 ptrace。在docker中使用jmap命令后出现上面的异常问题;解决方案:Docker启动时的命令加上。

2022-09-06 15:49:55 1073

原创 Spring Cloud Eureka: 客户端运行原理及源码阅读

前言Eureka可分为客户端和服务端两个部分,本篇主要介绍的客户端的运行机制和概念.Eureka客户端主要实现的功能分别是服务注册,服务发现,服务续约服务注册:Eureka Client会通过发送REST请求的方式向Eureka Server注册自己的服务,提供自身的元数据,比如ip地址、端口、运行状况指标的url、主页地址等信息。Eureka Server接收到注册请求后,就会把这些元数据信息存储在一个双层的Map中。服务续约:在服务注册后,Eureka Client会维护一个心跳来.

2021-04-04 11:13:23 249

原创 Springboot配置全局时间格式化转换器(包括请求转换和响应转换)

前言之前开发前端的时间字符串想要转换为Date类型,需要使用@JsonFormat注解,类多的时候非常麻烦,并且某些请求响应前端的时候也需要将Date类型转换为时间字符串,所以对这块进行了一些研究,得到一个相对比较好的解决方案解决方案请求转换如果是使用@RequestParam注解获取的数据使用如下代码@Componentpublic class DateConverter implements Converter<String, Date> { pri.

2021-01-25 22:32:04 974 1

原创 集成Redisson后SpringCache出现找不到缓存key的情况

前言使用Springboot集成Redisson后,原本@Cacheable修饰的接口一直出现缓存key无法找到的情况解决办法经过跟踪源码发现集成redisson后,使用的cacheManager是JcacheManager,而没有集成前是默认的缓存管理器.所以需要显式配置缓存管理器@Configuration@EnableCachingpublic class RedisConfig extends CachingConfigurerSupport{ @Bean .

2021-01-21 14:12:11 1158

原创 微服务之间调用部分Feign接口忽略认证授权

前言在SpringSecurity框架基础之上实现微服务之间部分接口忽略认证授权.思路创建忽略授权注解 获取所有被注解的类或者方法 在SpringSecurity框架中忽略授权1. 创建忽略授权注解@Target({ElementType.TYPE,ElementType.METHOD})@Retention(RetentionPolicy.RUNTIME)@Documentedpublic @interface AuthIgnore {}2.获取所有...

2021-01-21 13:58:50 3087 1

原创 spring.jackson.date-format失效原因及解决方案

# Tomcatserver: port: 9010# Springspring: jackson: date-format: yyyy-MM-dd HH:mm:ss time-zone: GMT+8为了能够进行全局的时间格式化,我们可以使用spring mvc 给我们提供的spring.jackson.date-format方法对整个项目进行全局的格式化但如果我们在项目中去继承WebMvcConfigurationSupport这个类的话,那么springbo..

2020-12-17 16:45:49 9538

原创 SpringBoot返回Date类型全局格式化

全局格式化spring: jackson: date-format: yyyy-MM-dd HH:mm:ss time-zone: GMT+8单属性格式化@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")private Date uploadTime;

2020-12-10 11:24:44 508

原创 ERROR: Failed to Setup IP tables: Unable to enable SKIP DNAT rule

重启docker即可service docker restart

2020-12-10 09:42:55 368

原创 org.springframework.http.codec.ServerCodecConfigurer‘ that could not be found

出现该错误是因为Spring Cloud Gateway依赖了spring-boot-starter-web包因为spring cloud gateway是基于webflux的,如果非要web支持的话需要导入spring-boot-starter-webflux而不是spring-boot-start-web。所以我们将spring-boot-starter-web排除即可<exclusion> <groupId>org.springframework.boot&l

2020-12-05 12:55:07 9228

原创 Linux安装node环境

官网复制链接http://nodejs.cn/将链接使用wget下载cd /usr/localwget https://nodejs.org/dist/v10.15.3/node-v10.15.3-linux-x64.tar.xz解压tar -xvf node-v10.15.3-linux-x64.tar.xz进入解压目录的bin中,查看是否输出版本号cdnode-v10.15.3-linux-x64./node -v修改压缩包名称,全局配置node..

2020-12-03 16:58:43 213

原创 如何检验RSA2密钥是否匹配

如何检验RSA2密钥是否匹配注:工具目前暂不支持直接检验密钥证书是否匹配,需获取密钥数据才可匹配,详见如何检验密钥证书是否匹配。检查密钥匹配是为了校验加签使用的应用私钥与商家上传到应用中的应用公钥,详见签名方式的密钥交互原理。1、签名验签工具下载工具下载地址:https://opendocs.alipay.com/open/00uk9e解压缩时,解压缩路径中不要有空格和中文字段,否则会导致工具乱码或者闪退。2、设置密钥数据在工具的“密钥匹配”选项中:商户应用私钥:代码中的

2020-12-03 15:45:53 1035

原创 Docker实时查看日志

docker logs -f --tail 行数 容器名

2020-12-03 09:33:51 930

原创 JVM必知必会 - 方法区概述

什么是方法区?方法区,也称非堆(Non-Heap),是一个被线程共享的内存区域。它用于存储已被虚拟机加载的类信息、常量、静态变量、即时编译器编译后的代码等数据。对于HotSpot虚拟机来说更愿意把方法区称为“永久代”,但是也仅限于HotSpot虚拟机,或者说用永久代来实现方法区而已。这样HotSpot的垃圾收集器可以像管理Java堆一样管理这部分内存,能省去专门为方法区编写内存管理代码的工作。但是从JDK8及以后,永久代这个概念已经被元数据空间所取代了,所以如果使用JDK8的话,是不存在永久代这

2020-12-02 21:25:51 250

原创 Linux下安装Maven环境

1. 下载Maven安装包访问http://maven.apache.org/download.cgi如果需要下载旧版本就下拉网页2. 上传到服务器后解压文件tar -zxvfapache-maven-3.6.1-bin.tar.gz3. 修改环境变量vi /etc/profile4. 配置环境变量export MAVEN_HOME=/usr/local/apache-maven-3.6.1export PATH...

2020-12-02 17:22:54 194

原创 Linux下安装jdk8环境

下载下载jdk的安装包链接:https://pan.baidu.com/s/1TzneIzKr4e0G8PvPU6Uh_g提取码:u4uz安装解压压缩包tar -zxvfjdk-8u141-linux-x64.tar.gz删除压缩包rm -rfjdk-8u141-linux-x64.tar.gz配置jdk环境变量/etc/profile文件的改变会涉及到系统的环境,也就是有关Linux环境变量的东西所以,我们要将jdk配置到/et...

2020-12-02 17:01:01 304

原创 no such file or directory, scandir ‘/node_modules/node-sass/vend

解决办法:npm rebuild node-sass

2020-12-02 10:28:00 226

原创 JVM必知必会 - 堆空间常用的JVM参数

-XX: +PrintFlagsInitial: 查看所有命令参数的默认初始值-XX:+PrintFlagsFinal: 查看所有命令参数的最终值所谓最终值就是被人为修改后的值,比如-Xms默认为物理内存的64分之一,修改为-Xms10m,所以使用此命令最终值为10m-Xms: 初始堆空间内存(默认为物理内存64分之一)-Xmx: 最大堆空间内存(默认为物理内存的四分之一)-XX: NewRatio: 配置新生代与老年代在堆结构的占比比如: -XX:NewRa...

2020-11-29 21:32:03 221

原创 JVM必知必会 - 浅谈Minor GC , Major GC, Full GC

概述JVM在进行GC时,并非每次都对新生代,老年代和元数据空间或者是永久代一起回收,大部分时候回收的都是指新生代.针对HotSpot VM的实现,它里面的GC按照回收区域又分为两个类型: 一种是部分收集(Partial GC),一种是整堆收集(Full GC)部分收集: 不是完成收集整个Java堆的垃圾收集,其中又分为:新生代收集(Minor GC): 只是新生代的垃圾收集 老年代收集(Major GC): 只是老年代的垃圾收集 混合收集(Mixed GC): 收集整个新生代以及部.

2020-11-29 20:38:11 442

原创 JVM必知必会 - 堆内存中对象分配过程概述

前言为新对象分配内存是一件非常严谨和复杂的任务,JVM的设计者们不仅仅需要考虑内存如何分配,在哪里分配等问题,并且由于内存分配算法与内存回收算法密切相关,所以还需要考虑GC执行完内存回收后是否会在内存空间中产生内存碎片等问题.过程正常情况下新对象的创建都会在新生代(年轻代)发生,只有极少数情况下创建的对象足够大则会直接被分配在老年代中.而在新生代中内存结构又分为伊甸园区(eden)和幸存者区0区(survivor0)和幸存者1区(survivor1)我们参照上图,新对象被创建..

2020-11-29 14:11:35 249

原创 JVM必知必会 - 堆概述

前言堆内存是JVM运行时数据区中最核心的一部分,Java程序在运行期间的引用对象包括对象实例,数组,集合等都存储在堆中.什么是堆内存按照官方的说法:“Java 虚拟机具有一个堆(Heap),堆是运行时数据区域,所有类实例和数组的内存均从此处分配。堆是在 Java 虚拟机启动时创建的。”堆的整体结构在JDK1.8之前堆内存在逻辑上被分为年轻代,老年代和永久代,但是在JDK1.8之后,永久代被元数据区所取代,并且在堆内存中实际上只是管理年轻代和老年代,但是在逻辑上永久代和元数..

2020-11-29 12:58:31 149

原创 JVM必知必会 - 虚拟机栈之方法返回地址

目录方法返回地址是什么?方法返回地址详解方法返回地址的指令类型方法返回地址是什么?存放调用该方法的PC寄存器的值方法返回地址详解正常情况下我们的程序方法结束有两种方式方法正常结束 抛出异常无论通过哪种方式退出,在方法退出后都返回到该方法被调用的位置,方法正常退出的时候,调用者的pc计数器的值作为返回地址,即调用该方法的指令的下一条指令的地址,而通过异常退出的,返回地址是要通过异常表来确定的,栈帧中一般不会保存这部分信息.因为在本质上,方法的退出就是当前栈帧出栈。此时.

2020-11-24 17:14:04 524

原创 JVM必知必会 - 方法调用

方法调用是什么方法调用不同于方法执行,调用阶段唯一任务就是确定方法调用者的版本.方法调用的目标方法在class文件的常量池中都是符号引用,然后会在类加载的三个阶段之一的链接阶段的解析步骤中奖部分符号引用转换为直接引用虚方法和非虚方法能在解析阶段就确定直接引用的,那么该方法运行前就必须确定一个可调用的版本,并且这个版本在运行阶段是不可改变的。就是方法“编译期可知,运行期不可变”.这一类在解析阶段就确定了方法引用的方法统一叫做非虚方法而除了非虚方法之外的方法则是虚方法.在JVM中有5条.

2020-11-23 15:36:19 125

原创 JVM必知必会 - 虚拟机栈之操作数栈

目录前言什么是操作数栈特点前言本篇将会讲述虚拟机栈中的另外一个组成部分: 操作数栈什么是操作数栈Java虚拟机的执行引擎被称为"基于栈的执行引擎",这其中的栈指的就是操作数栈,也可以称之为表达式栈,操作栈等和局部变量表一样,操作数栈也是一个数组.但是和前者不同的是,操作数栈并非采用访问索引的方式来进行数据访问的,而是只能通过标准的入栈和出栈操作来完成一次数据访问.比如: 某一个指令将某个值压入到操作数栈中,稍后另外一个指令就可以弹出这个值来进行操作.操作数栈主要用于保存计算过

2020-11-22 18:37:41 543

原创 JVM必知必会 - 虚拟机栈之局部变量表

目录前言概述特点Slot概述slot的重复引用this变量在局部变量表中的特殊地位前言上篇我们对JVM的虚拟机做了一个概述,我们也知道了虚拟机栈是由一个一个的栈帧组成的,而每一个栈帧中又分别是由局部变量表,动态链接,方法返回地址,操作数栈以及一些附加信息组成的.那么今天我们就来重点的对局部变量表进行分析概述局部变量表也被称之为局部变量数组或本地变量表,它是JVM虚拟机栈中栈帧的一个组成部分,主要用于存储方法参数和定义在方法体内的局部变量,这些数据类型包括基本数据类型,

2020-11-20 11:07:42 416

原创 JVM必知必会 - 虚拟机栈概述

目录前言什么是JVM虚拟机栈作用栈中可能出现的异常如何设置栈大小栈运行原理栈帧的内部结构前言本篇文章主要会讲解JVM虚拟机栈的基本信息,背景,作用以及它的一些特性,而栈中具体的内存结构在后面会针对性讲解什么是JVM虚拟机栈Java虚拟机栈,早期也叫Java栈.每个线程在创建的时候都会创建一个虚拟机栈,其内部保存一个个的栈帧,对应一次次的Java方法调用,它是线程独有的.由于Java语言是跨平台的语言,Java的指令都是根据栈来设计的.不同平台CPU..

2020-11-18 16:47:50 180

原创 Idea中Spring5源码编译Spring-oxm报错: 缺少castor和jax

解决办法执行gradle genCastor和gradle genJaxb

2020-11-17 14:17:53 446

原创 Idea中Spring5源码编译spring-core报错: 找不到DefaultNamingPolicy,Objenesis类

报错信息如下Error:(20, 50) java: 程序包org.springframework.objenesis.instantiator不存在Error:(21, 46) java: 程序包org.springframework.objenesis.strategy不存在Error:(22, 46) java: 程序包org.springframework.objenesis.strategy不存在Error:(35, 41) java: 找不到符号 符号: 类 Objenesis

2020-11-17 12:01:46 699

原创 Spring5源码编译: 找不到类 InstrumentationSavingAgent

注释掉optional(project(":spring-instrument"))改为compile(project(":spring-instrument"))

2020-11-17 11:03:48 313

原创 JVM必知必会 - 程序计数器

介绍JVM中的程序计数器(Program Counter Register)中,Register的命名源于CPU的寄存器,寄存器存储指令相关的现场信息.CPU只有把数据装载到寄存器才能够运行这里寄存器是广义上所指的物理寄存器,或许将其翻译为PC计数器会更加贴切,并且也不容易引起一些不必要的误会,JVM的PC寄存器是对物理PC寄存器的一种抽象模拟程序计数器是一块较小的内存空间,它的作用可以看作是当前线程所执行的字节码的行号指示器。在虚拟机的概念模型里字节码解释器工作时就是通过改变这个计数器的值来

2020-11-16 11:38:30 655 1

原创 JVM必知必会 - 双亲委派机制

序言这篇我会为大家介绍一下类加载器的双亲委派机制,不过想要了解双亲委派机制还需要一些前置知识,我们得先去了解一下JVM的类加载器.大家可以看下我上篇文章写的类加载器https://blog.csdn.net/weixin_42214548/article/details/109687121,看完这篇文章后相信大家会对类加载器有一个整体的认识,那么再去学习双亲委派机制就不会一脸懵逼了.介绍Java虚拟机对class文件采用的是按需加载的方式,也就是说当需要使用该类时才会将它的class文件加.

2020-11-14 14:14:40 227

原创 JVM必知必会 - 类加载器分类

序言上篇我们说过了类加载的流程,那么这篇和大家分享一下类加载过程中的一个核心角色类加载器,本篇文章会给大家介绍类加载器的种类和每种类加载器的作用.概述JVM支持两种类型的类加载器,分别是引导类加载器和自定义类加载器引导类加载器: BootStrapClassLoader自定义类加载器: 自定义类加载器有多种说话,从概念上来讲,自定义类加载器一般指的是程序中由开发人员自定义的一类类加载器,但是Java虚拟机规范却没有这么定义,而是将所有派生于抽象类ClassLoader的类加载器都..

2020-11-14 11:11:46 180

原创 JVM必知必会 - 初谈类加载流程

目录序言1. 概述2. 加载3. 链接3.1验证3.2准备3.3 解析4. 初始化序言我们在刚开始学习Java语言的时候,相信很多人都听到过类加载器这个词,都知道类是通过javac前端编译器编译为class文件后,被加载到内存中的.但很多人对于类的加载也就仅限于此了.今天我会给大家介绍一下关于类在加载过程的中的事情.1. 概述class文件到被加载到运行时数据区的过程可以被分为三个部分. 加载 - 链接 - 初始化 .而链接又可以分为验证, 准备...

2020-11-13 16:23:07 116

原创 解决ThreadLocal在线程池中被重复使用的问题

目录前言探索解释解决前言今天测试告诉我一个接口时不时的会报错,然后我去服务器检索了日志信息,发现这个接口偶尔会在SQL语句后面追加LIMIT 进行分页,但是我这个接口只是查询单条数据的,并且也没有设置分页.这个就让人感到一丝丝尴尬了.探索经过不断梳理,发现这个这个接口里面一共有两次数据库交互,第一次是查询单条数据,但是第二次是一个分页查询.并且使用的是PageHelper.startPage进行分页.那么不出意外的话就是第二个查询的分页影响了第一个查...

2020-11-12 17:47:30 1607 3

原创 JVM必知必会 - Java虚拟机概述

目录序言正文JVM的整体结构JVM的历史Java代码执行流程序言JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。引入Java语言虚拟机后,Java语言在不同平台上运行时不需要重新编译。Java语言使用Java虚拟机屏蔽了与具体平台相关的信息,使得Java语言编译程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上.

2020-11-12 10:40:00 2899

原创 Rancher的界面无法打开命令行和查看日志功能

一、前言今天无意中触碰到了一个无比坑爹的问题,今天大早上起来后发现Rancher的界面居然无法打开命令行以及查看日志功能,这个让我非常疑惑,于是我先出门买了早点心想等会试试,因为我使用的是Rancher的2.0版本有时候确实会有这种情况发生.然后我吃完早饭回来发现还是无法打开,有点郁闷了.继续出门和朋友出去玩耍到下午五点钟,结果接着试试,我~~~我也是醉了还是无法打开,这个看来应该不是什么意外事件了,而是出了什么故障,经过一番思考以及百度,得到了下面的解决方案.二、尝试解决rancher-.

2020-11-07 21:06:44 5021

原创 支付宝支付ALIN10146-商户订单参数错误,请重新支付问题解决

报错原因1.请求appid应用未上线或者是应用类型是第三方应用2.签约权限问题3.签名类型使用错误4.请求参数问题5.秘钥匹配问题6.应用类型问题正确请求参数示例如下↓↓↓alipay_sdk=alipay-sdk-php-20161101&app_id=2016072800109035&biz_content=%7B%22out_trade_no%22%3A%2220171229025125...

2020-11-05 11:18:28 16642 1

原创 解决Spring5源码编译各种Gradle报错问题

1. 前言最近希望能够学习一下Spring最新的源码,特意去GitHub上拉取Spring的源码.结果碰到各种Gradle报错问题,因为本人没有学习过Gradle,项目一直以来使用的都是Maven进行依赖管理.所以摸索过程中也是遇到各种问题,今天在这里给大家分享一下如何编译Spring的源码.2. 编译步骤 2.1拉取代码Spring源码托管在GitHub上,所以我们需要到GitHub上进行代码拉取https://github.com/spring-projects/sprin...

2020-11-04 14:48:20 3683 1

docker-compose.yml

在linux下使用的docker容器编排的管理文件,这个文件可以管理一个或者是多个的docker容器服务,是一个规范的示例文件

2020-05-22

空空如也

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

TA关注的人

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