<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[doublepg13的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/doublepg13</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; doublepg13]]></copyright><item><title><![CDATA[执行docker login 时报错Error saving credentials: error storing credentials]]></title><link>https://blog.youkuaiyun.com/doublepg13/article/details/134831916</link><guid>https://blog.youkuaiyun.com/doublepg13/article/details/134831916</guid><author>doublepg13</author><pubDate>Wed, 06 Dec 2023 15:01:48 +0800</pubDate><description><![CDATA[【代码】执行docker login 时报错Error saving credentials: error storing credentials。]]></description><category></category></item><item><title><![CDATA[从零开始构造一个Operator（保姆级教程）]]></title><link>https://blog.youkuaiyun.com/doublepg13/article/details/134704624</link><guid>https://blog.youkuaiyun.com/doublepg13/article/details/134704624</guid><author>doublepg13</author><pubDate>Thu, 30 Nov 2023 09:47:30 +0800</pubDate><description><![CDATA[项目地址：https://github.com/kosmos-io/simple-controller。]]></description><category></category></item><item><title><![CDATA[kubeadm 重新生成证书]]></title><link>https://blog.youkuaiyun.com/doublepg13/article/details/134537788</link><guid>https://blog.youkuaiyun.com/doublepg13/article/details/134537788</guid><author>doublepg13</author><pubDate>Tue, 21 Nov 2023 17:59:27 +0800</pubDate><description><![CDATA[路径下，kubeadm 生成的证书默认有效为 1 年，因此需要定时更新证书，否则证书到期会导致整个集群不可用。完成证书和配置文件的更新后，需要进行一系列后续操作保证更新生效，主要包括重启 kubelet、api-server、schedule等更新管理配置。Kubenetes 在升级控制面板相关组件时会主动更新证书，因此如果保证 Kubernetes 能够定期（一年以内）升级的话，证书会自动更新。将新生成的 admin.conf 文件拷贝，替换 ~/.kube 目录下的 config 文件。]]></description><category></category></item><item><title><![CDATA[Unable to connect to the server: x509: certificate is valid for问题解决]]></title><link>https://blog.youkuaiyun.com/doublepg13/article/details/134001276</link><guid>https://blog.youkuaiyun.com/doublepg13/article/details/134001276</guid><author>doublepg13</author><pubDate>Mon, 23 Oct 2023 23:10:20 +0800</pubDate><description><![CDATA[我们的kubernetes的apiserver-advertise-address是一个内网IP，默认情况下，kubernetes自建的CA会为apiserver签发一个证书，证书的默认可访问的是内网IP、kubernetes、kubernetes.default kubernetes.default.svc、kubernetes.default.svc.cluster.local，不包含设备的外网IP。通过如下命令查看kubernetes的admin.conf中的证书的有效期，看是否有效。]]></description><category></category></item><item><title><![CDATA[WARNING: undefined behavior - version of Delve is too old for Go version]]></title><link>https://blog.youkuaiyun.com/doublepg13/article/details/132345096</link><guid>https://blog.youkuaiyun.com/doublepg13/article/details/132345096</guid><author>doublepg13</author><pubDate>Thu, 17 Aug 2023 17:49:28 +0800</pubDate><description><![CDATA[如果忘记了 GOPATH 是什么，输入 go env GOPATH 即可。在更新了 go 版本后，使用 goland 进行调试会报错。这是因为 go 的版本升级后，相对 dlv 的版本就低了。在 GOPATH 对应目录下安装最新版的 dlv。打开 Goland 菜单栏 Help 下的。所以解决办法就是升级对应的 dlv 版本。进入到 GOPATH 中。安装完毕后，其被安装在。，会自动打开一个文件。]]></description><category></category></item><item><title><![CDATA[创建好的VMware虚拟机如何连接上外网？MobaX和XShell如何连接虚拟机]]></title><link>https://blog.youkuaiyun.com/doublepg13/article/details/132203663</link><guid>https://blog.youkuaiyun.com/doublepg13/article/details/132203663</guid><author>doublepg13</author><pubDate>Thu, 10 Aug 2023 10:33:49 +0800</pubDate><description><![CDATA[remote host设置为你刚刚的IPADDR。首先点击VMware菜单栏，，并记住子网IP之后有用。]]></description><category></category></item><item><title><![CDATA[YAML文件语法]]></title><link>https://blog.youkuaiyun.com/doublepg13/article/details/131973746</link><guid>https://blog.youkuaiyun.com/doublepg13/article/details/131973746</guid><author>doublepg13</author><pubDate>Fri, 28 Jul 2023 09:49:56 +0800</pubDate><description><![CDATA[yaml是一种简洁的非标记语言,YAML以数据为中心，使用空白，缩进，分行组织数据，从而使得表示更加简洁易读。— 为可选的分隔符 ，当在一个文件中定义多个结构时需要。因为工作需要学习K8s，故得学习一下yaml语法。如果要把多个kind写于一个文件需要用到。在k8s的yaml中比较少见。以上就是yaml的语法。]]></description><category></category></item><item><title><![CDATA[Docker安装与完全卸载(这一篇绝对够用)]]></title><link>https://blog.youkuaiyun.com/doublepg13/article/details/131781150</link><guid>https://blog.youkuaiyun.com/doublepg13/article/details/131781150</guid><author>doublepg13</author><pubDate>Tue, 18 Jul 2023 10:48:36 +0800</pubDate><description><![CDATA[这个命令会停止所有容器，包括正在运行的容器和已经停止的容器。]]></description><category></category></item><item><title><![CDATA[Xshell连接不上虚拟机的解决办法（给他最后一次机会）]]></title><link>https://blog.youkuaiyun.com/doublepg13/article/details/131590608</link><guid>https://blog.youkuaiyun.com/doublepg13/article/details/131590608</guid><author>doublepg13</author><pubDate>Fri, 07 Jul 2023 09:55:31 +0800</pubDate><description><![CDATA[如果你之前的操作都没问题的话Xshell还是连接不上我们的虚拟机，可以试试这个方法。点VM中的 编辑–>虚拟网络编辑器–还原默认设置**(这个方法也特别有效)**]]></description><category></category></item><item><title><![CDATA[Druid（德鲁伊）数据库连接池]]></title><link>https://blog.youkuaiyun.com/doublepg13/article/details/128849335</link><guid>https://blog.youkuaiyun.com/doublepg13/article/details/128849335</guid><author>doublepg13</author><pubDate>Thu, 02 Feb 2023 14:43:14 +0800</pubDate><description><![CDATA[存在内存泄漏问题：每次连接都需要断开连接，如果不断开，程序运行结束，会有创建的连接对象存在内存中一直无法关闭，就会导致java内存泄漏的问题。是阿里提供的数据库连接池，据说是集DBCP 、C3P0 和Proxool 优点于一身的数据库连接池，它是目前国内用到最多的数据库连接池技术。事先在内存中建立一个缓冲池，用来存放一定数量的连接对象，需要时在里面调用，结束时放回缓冲池。Druid：阿里提供的连接池，速度快（不及BoneCP），稳定性好，有监控连接池的功能。连接池中的对象需要时取出，不需要被连接池回收。]]></description><category></category></item><item><title><![CDATA[fastjson：对象转化成json出现$ref]]></title><link>https://blog.youkuaiyun.com/doublepg13/article/details/128642082</link><guid>https://blog.youkuaiyun.com/doublepg13/article/details/128642082</guid><author>doublepg13</author><pubDate>Wed, 11 Jan 2023 11:46:31 +0800</pubDate><description><![CDATA[我们可以将List中的对象使用BeanUtil这样的工具，拷贝为新的对象。（BeanUtil创建出来的对象跟原来的对象不是同一个对象）但是因为全局配置是在我们项目的基础jar包中配置的，改动基础jar包会有风险，会对前面所有的依赖项目产生影响。所以也不采用这种方式。：即A对象引用B对象，B对象又引用A对象，这种情况是要极力避免的，因为会导致堆栈溢出（StackOverflowError）；如果循环引用的数据，前端用不到，那可以在实体类对应的字段加注解禁止序列化，这样前端就不会接收到这个字段的引用数据了。]]></description><category></category></item><item><title><![CDATA[讲透JAVA Stream的collect用法与原理]]></title><link>https://blog.youkuaiyun.com/doublepg13/article/details/128582800</link><guid>https://blog.youkuaiyun.com/doublepg13/article/details/128582800</guid><author>doublepg13</author><pubDate>Mon, 09 Jan 2023 11:30:47 +0800</pubDate><description><![CDATA[前面我们演示了很多Collectors工具类中提供的收集器的用法，上一节中列出来的Collectors提供的常用收集器，也可以覆盖大部分场景的开发诉求了。但也许在项目中，我们会遇到一些定制化的场景，现有的收集器无法满足我们的诉求，这个时候，我们也可以自己来实现定制化的收集器。我们知道，所谓的收集器，其实就是一个Collector接口的具体实现类。所以如果想要定制自己的收集器，首先要先了解Collector接口到底有哪些方法需要我们去实现，以及各个方法的作用与用途。接口名称功能含义说明。]]></description><category></category></item><item><title><![CDATA[吃透JAVA的Stream流操作]]></title><link>https://blog.youkuaiyun.com/doublepg13/article/details/128577400</link><guid>https://blog.youkuaiyun.com/doublepg13/article/details/128577400</guid><author>doublepg13</author><pubDate>Fri, 06 Jan 2023 14:17:20 +0800</pubDate><description><![CDATA[如果纯粹是个String字符串拼接的诉求，确实没有必要使用Stream来实现，毕竟杀鸡焉用牛刀嘛~ 但是可以看看下面给出的这个示例，便可以感受出使用Stream进行字符串拼接的真正魅力所在。因为Stream主要用于对集合数据的处理场景，所以除了上面几种获取简单结果的终止方法之外，更多的场景是获取一个集合类的结果对象，比如List、Set或者HashMap等。并行流类似于多线程在并行处理，所以与多线程场景相关的一些问题同样会存在，比如死锁等问题，所以在并行流终止执行的函数逻辑，必须要保证线程安全。]]></description><category></category></item><item><title><![CDATA[ConfigurationProperties注解详解]]></title><link>https://blog.youkuaiyun.com/doublepg13/article/details/128563455</link><guid>https://blog.youkuaiyun.com/doublepg13/article/details/128563455</guid><author>doublepg13</author><pubDate>Thu, 05 Jan 2023 15:09:15 +0800</pubDate><description><![CDATA[根据以上总结看到@ConfigurationProperties的几种使用方式@Configuration //可以换成@Component @ConfigurationProperties(prefix = "mail") public class ConfigProperties {} }注：未指定@Configuration注解，需要在启动类加@EnableConfigurationProperties注解} }]]></description><category></category></item><item><title><![CDATA[RSA加密算法原理]]></title><link>https://blog.youkuaiyun.com/doublepg13/article/details/128386141</link><guid>https://blog.youkuaiyun.com/doublepg13/article/details/128386141</guid><author>doublepg13</author><pubDate>Tue, 20 Dec 2022 15:57:27 +0800</pubDate><description><![CDATA[【代码】RSA加密算法原理。]]></description><category></category></item><item><title><![CDATA[Base64编码剖析]]></title><link>https://blog.youkuaiyun.com/doublepg13/article/details/128383734</link><guid>https://blog.youkuaiyun.com/doublepg13/article/details/128383734</guid><author>doublepg13</author><pubDate>Tue, 20 Dec 2022 14:30:00 +0800</pubDate><description><![CDATA[百度百科中对Base64有一个很好的解释：“Base64是网络上最常见的用于传输8Bit字节码的编码方式之一，Base64就是一种基于64个可打印字符来表示二进制数据的方法”。它实际上是一种“二进制转换到文本”的编码方式。什么是“可打印字符”呢？为什么要用它来传输8Bit字节码呢？在回答这两个问题之前我们有必要来思考一下什么情况下需要使用到Base64？Base64一般用于在HTTP协议下传输二进制数据，由于HTTP协议是文本协议，所以在HTTP协议下传输二进制数据需要将二进制数据转换为字符数据。]]></description><category></category></item><item><title><![CDATA[Bean实例化（Instantiation）多种方式]]></title><link>https://blog.youkuaiyun.com/doublepg13/article/details/128330115</link><guid>https://blog.youkuaiyun.com/doublepg13/article/details/128330115</guid><author>doublepg13</author><pubDate>Thu, 15 Dec 2022 15:18:02 +0800</pubDate><description><![CDATA[ServiceLoaderFactoryBean使用的是ServiceLoader，ServiceLoader默认读取的是/META-INF/services/下的文件，而value="org.example.factory.UserFactory"刚好就是文件名，从而serviceType获取到的是文件内存储的UserFactory的所有实现类全路径，通过ServiceLoader.load(getServiceType(), this.beanClassLoader)方法加载得到了bean对象。]]></description><category></category></item><item><title><![CDATA[java Logger.error打印错误异常的详细堆栈信息]]></title><link>https://blog.youkuaiyun.com/doublepg13/article/details/128328160</link><guid>https://blog.youkuaiyun.com/doublepg13/article/details/128328160</guid><author>doublepg13</author><pubDate>Thu, 15 Dec 2022 13:46:16 +0800</pubDate><description><![CDATA[使用Logger.error(e)、Logger.error(e.getMessage())、Logger.error(“some msg” + e)、Logger.error(“some msg” + e.getMessage()) 都是调用的error(Object message)，这个方法都会将入参当作Object输出，不会打印堆栈信息。根据方法重载特性，当只输入一个参数时，此对象会被当做Object进行打印输出，如果是Exception e的话，这里直接就toString()。]]></description><category></category></item><item><title><![CDATA[Java Timer(定时器)]]></title><link>https://blog.youkuaiyun.com/doublepg13/article/details/128317159</link><guid>https://blog.youkuaiyun.com/doublepg13/article/details/128317159</guid><author>doublepg13</author><pubDate>Wed, 14 Dec 2022 16:53:56 +0800</pubDate><description><![CDATA[schedule(TimerTask task , Date time) // 安排在 "指定的时间" 执行 指定的任务。]]></description><category></category></item><item><title><![CDATA[mysql的日期时间类型及精度问题]]></title><link>https://blog.youkuaiyun.com/doublepg13/article/details/128301235</link><guid>https://blog.youkuaiyun.com/doublepg13/article/details/128301235</guid><author>doublepg13</author><pubDate>Tue, 13 Dec 2022 14:33:33 +0800</pubDate><description><![CDATA[本文主要整理mysql提供的五种日期时间类型time、date、datetime、timestamp和year的区别，及日期时间类型的精度问题一次线上bug, mysql数据类型为timestamp，日志中打印的时间为2021-02-23 10:16:55.781 但是最后数据库中存储的是2021-02-23 10:16:56，由此引发了本文对timestamp精度问题的研究。]]></description><category></category></item></channel></rss>