<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>小豆丁技术栈</title><description>MyDlq Blog</description><link>http://www.mydlq.club/</link><item><title>SpringBoot 结合 Redis 实现滑动时间窗口限流</title><link>http://www.mydlq.club/article/144/</link><guid isPermaLink="true">http://www.mydlq.club/article/144/</guid><description>为应对高并发场景下的流量冲击和潜在的恶意攻击，本文提出了一套基于 Spring Boot 和 Redis 的滑动窗口限流解决方案。文章将对基于滑动窗口限流进行详细介绍，并提供了一套完整的 Spring AOP + Redis 实现滑动窗口限流的示例，旨在帮助开发者构建稳定、可靠的后端服务，有效防止因流量过载导致的系统崩溃。</description><pubDate>Mon, 30 Jun 2025 00:00:00 GMT</pubDate><category>java</category></item><item><title>SpringBoot 遇上状态机:简化复杂业务逻辑的利器</title><link>http://www.mydlq.club/article/143/</link><guid isPermaLink="true">http://www.mydlq.club/article/143/</guid><description>在 Spring Boot 开发里，复杂业务流程常让代码因大量 if/else 或 switch 语句而难以维护与扩展，不过状态机能有效解决这一难题。本篇博客将深入探讨如何在 Spring Boot 应用中引入状态机管理复杂业务流程，借助状态机的设计与实现，能清晰定义业务状态及状态间的转换规则，这不仅能提高代码的可维护性和可扩展性，还能让开发人员更易理解和调试复杂业务逻辑。此外，文中会详细介绍状态机的基本概念、在 Spring Boot 中的配置方法，还会通过一个详细案例演示如何使用状态机框架（Cola - Statemachine）实现状态转换。</description><pubDate>Thu, 10 Apr 2025 00:00:00 GMT</pubDate><category>java</category></item><item><title>SpringBoot 使用 AOP 方式高效的记录操作日志</title><link>http://www.mydlq.club/article/142/</link><guid isPermaLink="true">http://www.mydlq.club/article/142/</guid><description>随着软件系统复杂度的提升，操作日志的关键作用愈发凸显，但传统日志记录方式存在耦合度高、维护困难等弊端。为解决这些问题，本文将探讨如何在 Spring Boot 项目中运用 AOP 技术，构建高效且易于维护的操作日志记录机制，从而增强系统的可维护性和可扩展性。</description><pubDate>Sat, 15 Mar 2025 00:00:00 GMT</pubDate><category>java</category></item><item><title>深入浅出 JAVA 之集合 - ConcurrentHashMap</title><link>http://www.mydlq.club/article/141/</link><guid isPermaLink="true">http://www.mydlq.club/article/141/</guid><description>ConcurrentHashMap 和 HashMap 一样，是一个实现了 Map 接口，用于存储键值对数据的集合。不过 ConcurrentHashMap 在多线程环境下具备更好的线程安全性和并发性能，提供了额外的并发操作方法和迭代器一致性保证，是多线程场景中最常用的集合之一，掌握其原理和使用非常必要。而本篇文章就是要对其进行详细介绍。</description><pubDate>Wed, 12 Feb 2025 00:00:00 GMT</pubDate><category>java</category></item><item><title>深入浅出 JAVA 集合 - HashMap</title><link>http://www.mydlq.club/article/140/</link><guid isPermaLink="true">http://www.mydlq.club/article/140/</guid><description>HashMap 是 Java 中最常用的集合，基于哈希表结构，可以存储键值对数据。掌握 HashMap 集合中的方法源码及内部结构等，会使我们更加了解如何合理使用 HashMap 集合进行业务逻辑。</description><pubDate>Sun, 12 Jan 2025 00:00:00 GMT</pubDate><category>java</category></item><item><title>深入浅出 JVM 之垃圾回收-垃圾回收器</title><link>http://www.mydlq.club/article/138/</link><guid isPermaLink="true">http://www.mydlq.club/article/138/</guid><description>垃圾回收器 (即 GC) 是一种自动内存管理机制，是 JVM 中自动回收垃圾对象清理内存空间的工具，而且 GC 也是 JVM 调优中的重点调优点，所以了解不同类型的回收器后，才能知道什么样的回收器适用于什么场景。本篇文章就不同类型的垃圾回收器进行介绍，尽可能的对其进行描述。</description><pubDate>Thu, 26 Sep 2024 00:00:00 GMT</pubDate><category>java</category></item><item><title>深入浅出 JVM 之垃圾回收-垃圾回收概述与算法</title><link>http://www.mydlq.club/article/137/</link><guid isPermaLink="true">http://www.mydlq.club/article/137/</guid><description>现在的编程语言中，大多都包括了垃圾回收机制，而 Java 就是其代性的语言。垃圾回收机制是一种自动的内存管理机制，当计算机内存中的一个对象不再需要被使用时，就会让出这块内存空间给其它对象使用。所以从本篇文章就开始介绍垃圾回收相关内容，而本篇主要介绍的是垃圾回收相关的概念和算法。</description><pubDate>Thu, 29 Aug 2024 00:00:00 GMT</pubDate><category>java</category></item><item><title>深入浅出 JVM 之运行时数据区-程序计数器</title><link>http://www.mydlq.club/article/139/</link><guid isPermaLink="true">http://www.mydlq.club/article/139/</guid><description>在 Java 虚拟机的运行时数据区中，除了堆和方法区这两个线程共享区域外，还存在虚拟机栈、本地方法栈和程序计数器这三个线程私有区域。而本篇文章将聚焦于程序计数器，因为字节码解释器通过改变程序计数器的值来选择下一条需要执行的字节码指令，所以深入了解程序计数器对于理解字节码指令的执行过程至关重要。</description><pubDate>Mon, 22 Jul 2024 00:00:00 GMT</pubDate><category>java</category></item><item><title>深入浅出 JVM 之运行时数据区-虚拟机栈</title><link>http://www.mydlq.club/article/136/</link><guid isPermaLink="true">http://www.mydlq.club/article/136/</guid><description>在 Java 虚拟机的运行时数据区中，除了堆和方法区这俩个线程共享区域外，还有虚拟机栈、本地方法栈和程序计数器三个线程私有区域。而本篇文章将聚焦于虚拟机栈，由于大多数局部变量都存储在虚拟机栈中，因此深入理解虚拟机栈对于掌握线程如何执行方法至关重要。</description><pubDate>Tue, 25 Jun 2024 00:00:00 GMT</pubDate><category>java</category></item><item><title>SpringBoot 结合 Spring Event 实现事件发布与监听</title><link>http://www.mydlq.club/article/135/</link><guid isPermaLink="true">http://www.mydlq.club/article/135/</guid><description>在现代软件开发中，事件驱动编程是一种强大的模式，它允许组件之间通过事件进行通信，从而提高系统的灵活性和可维护性。Spring 框架提供了一个轻量级的事件机制，即 Spring Event，它允许开发者轻松地实现事件驱动的设计。本文将深入探讨 Spring Event 相关概念以及使用场景。</description><pubDate>Thu, 30 May 2024 00:00:00 GMT</pubDate><category>java</category></item><item><title>深入浅出 JVM 之运行时数据区-方法区</title><link>http://www.mydlq.club/article/134/</link><guid isPermaLink="true">http://www.mydlq.club/article/134/</guid><description>深入了解 Java 虚拟机运行时数据区的关键组成部分——方法区，这一至关重要的线程共享区域承载着所有已加载类的结构信息，是 Java 类生命周期与运行时类型信息的基石。鉴于方法区在存储类定义、常量、静态变量以及即时编译代码等方面扮演的核心角色，所以了解堆空间有助于我们为优化应用程序的性能奠定基础。</description><pubDate>Thu, 25 Apr 2024 00:00:00 GMT</pubDate><category>java</category></item><item><title>深入浅出 JVM 之运行时数据区-堆</title><link>http://www.mydlq.club/article/133/</link><guid isPermaLink="true">http://www.mydlq.club/article/133/</guid><description>深入了解 Java 虚拟机运行时数据区的核心——堆空间，这一关键的线程共享区域不仅孕育了 Java 中绝大多数对象的诞生，更是对象生命周期管理与垃圾回收机制的灵魂所在。鉴于堆空间在 Java 对象创建与回收过程中的核心地位，所以了解堆空间有助于我们为优化应用程序的性能奠定基础。</description><pubDate>Tue, 02 Apr 2024 00:00:00 GMT</pubDate><category>java</category></item><item><title>深入浅出 JVM 之运行时数据区</title><link>http://www.mydlq.club/article/132/</link><guid isPermaLink="true">http://www.mydlq.club/article/132/</guid><description>Java 虚拟机在执行 Java 应用时，会把它所管理的内存空间划分为若干个不同的区域，这些区域有各自的用途，有的区域随着虚拟机进程的启动而一直存在，有些区域则是依赖用户线程的启动和结束而建立和销毁，这就是运行时数据区。而本篇文章的目的就是简单介绍下，什么是运行时数据区。</description><pubDate>Thu, 21 Mar 2024 00:00:00 GMT</pubDate><category>java</category></item><item><title>深入浅出 JVM 之类加载-类加载器</title><link>http://www.mydlq.club/article/131/</link><guid isPermaLink="true">http://www.mydlq.club/article/131/</guid><description>在 Java 中执类初始化时，需要执行加载、链接 (验证、准备、解析) 和初始化几个阶段，其中在加载阶段时会使用到类加载器来加载字节码文件，不过类加载器也是分为很多种，如引导类加载器、扩展类加载器，以及应用类加载器等。本篇文章就 Java 虚拟机中不同的类加载器分别进行介绍。</description><pubDate>Sun, 10 Mar 2024 00:00:00 GMT</pubDate><category>java</category></item><item><title>深入浅出 JVM 之类加载-类加载流程</title><link>http://www.mydlq.club/article/130/</link><guid isPermaLink="true">http://www.mydlq.club/article/130/</guid><description>在介绍过字节码文件格式和字节码指令集后，我们再继续介绍类的加载流程，从而了解字节码文件是如何一步步被 JVM 加载和使用的。</description><pubDate>Thu, 01 Feb 2024 00:00:00 GMT</pubDate><category>java</category></item><item><title>深入浅出 JVM 之字节码-指令集简介</title><link>http://www.mydlq.club/article/129/</link><guid isPermaLink="true">http://www.mydlq.club/article/129/</guid><description>Java 语言在经过编译后会转换为 Class 字节码文件，在字节码文件中存储了我们编写的执行的各种逻辑流程，这里 Java 虚拟机的做法是创建了很多指令，在执行到不同逻辑时使用不同字节码指令，所以这篇文件就简单介绍下常用的一些字节码指令。</description><pubDate>Thu, 11 Jan 2024 00:00:00 GMT</pubDate><category>java</category></item><item><title>深入浅出 JVM 之字节码-常量池常量分析</title><link>http://www.mydlq.club/article/128/</link><guid isPermaLink="true">http://www.mydlq.club/article/128/</guid><description>在之前文章中介绍了字节码文件结构，其中讲了常量池相关概念，不过却没有给出示例具体分析，所以这篇文章将详细的介绍下如何分析常量池中都包含哪些常量，这里记录下这个分析过程。</description><pubDate>Wed, 15 Nov 2023 00:00:00 GMT</pubDate><category>java</category></item><item><title>深入浅出 JVM 之字节码-字节码文件格式</title><link>http://www.mydlq.club/article/127/</link><guid isPermaLink="true">http://www.mydlq.club/article/127/</guid><description>作为 Java 开发者，日常我们编写的 Java 程序需要在 JVM 中运行，不过 JVM 并不支持直接运行 Java 文件，而是需要将 Java 文件编译后转换为 class 字节码文件后才能在 JVM 中正常运行。那么什么是字节码文件呢? 字节码文件又有什么用呢? 字节码文件又是怎样组成的?针对这些问题， 这篇文章将和你唠一唠这个字节码文件。</description><pubDate>Wed, 01 Feb 2023 00:00:00 GMT</pubDate><category>java</category></item><item><title>AlertManager 配置邮箱告警</title><link>http://www.mydlq.club/article/126/</link><guid isPermaLink="true">http://www.mydlq.club/article/126/</guid><description>在之前的博文中介绍过 Kubernetes 集群中部署 AlertManager，部署完 AlertManager 后我们会经常配置一些告警方式，比如通过邮箱告警、通过企业微信告警，触发 WebHook 执行告警等，而本篇文章要介绍的就是，如何通过 AlertManager 配置邮箱告警发送告警邮件，这里记录下这个配置过程。</description><pubDate>Fri, 02 Dec 2022 00:00:00 GMT</pubDate><category>k8s</category></item><item><title>深入浅出 JVM 之 Java 虚拟机</title><link>http://www.mydlq.club/article/125/</link><guid isPermaLink="true">http://www.mydlq.club/article/125/</guid><description>Java 虚拟机简称 JVM，它是支撑 Java 语言的基石，是运行 Java 应用程序的关键，同时也是实现 Java 语言平台无关性的核心组成部分。并且，对我们 Java 开发者来说，学习并了解 Java 虚拟机是非常有必要的。这里通过博文的形式记录下本人对 Java 虚拟机的了解。</description><pubDate>Fri, 11 Nov 2022 00:00:00 GMT</pubDate><category>java</category></item><item><title>Java 中的异步编程工具 CompletableFuture</title><link>http://www.mydlq.club/article/124/</link><guid isPermaLink="true">http://www.mydlq.club/article/124/</guid><description>在 JDK8 版本中新增了很多功能与工具，其中 CompletableFuture 就是其中一种用于构建异步编程的工具，该工具主要是对 Future 进行优化，使开发者可以很方便的创建串行或者并行任务，以及实现任务的 OR 或者 AND 这种组合方式，极大程度上简化异步编程中开发的代码量。这里介绍下如何如何使用 CompletableFuture 工具创建异步任务。</description><pubDate>Tue, 09 Aug 2022 00:00:00 GMT</pubDate><category>java</category></item><item><title>Kubernetes 部署告警工具 AlertManager</title><link>http://www.mydlq.club/article/123/</link><guid isPermaLink="true">http://www.mydlq.club/article/123/</guid><description>AlertManager 是一个专门用于实现告警的工具，可以实现接收告警信息，并且对这些信息进行分组、去重以及静音等操作，然后通过路由的方式，根据不同的告警信息，采用不同的告警策略，其可以方便与 Prometheus 进行配合，在 Prometheus 中配置告警规则，而 AlertManager 负责发送告警信息。这里记录下 Kubernetes 部署 AlertManager 的流程。</description><pubDate>Sun, 29 May 2022 00:00:00 GMT</pubDate><category>k8s</category></item><item><title>SpringBoot 结合 Mybatis 实现创建数据库表</title><link>http://www.mydlq.club/article/122/</link><guid isPermaLink="true">http://www.mydlq.club/article/122/</guid><description>最近在写项目时，由于需要分库分表，而且每次手动创建很多表，可能是自己闲麻烦，于是乎就找了一些通过应用自动创建表的解决方案，其中本人比较熟悉使用 MyBatis，所以通过博文的形式记录一下，如何在 SpringBoot 环境中，使用 Mybatis 动态的创建数据库中的表的功能。</description><pubDate>Thu, 06 Jan 2022 00:00:00 GMT</pubDate><category>java</category></item><item><title>解决 SpringBoot 使用 log4j2 不能引入 SpringBoot 参数问题</title><link>http://www.mydlq.club/article/121/</link><guid isPermaLink="true">http://www.mydlq.club/article/121/</guid><description>由于 Log4j2 性能突出，现在已经有很多公司在使用 SpringBoot 框架时，使用 Log4j2 替换默认的 Logback 了，虽然说最近 Log4j2 因为漏洞事件闹的沸沸扬扬的，但是其性能突出是公认的事实，所以本人也开始研究了 SpringBoot 中使用 Log4j2 替换 Logback 日志框架，并且使用过程中发现了 Log4j2 居然不能直接引入 SpringBoot 配置文件中的参数，于是乎在网上一顿搜索，寻找到的解决方案真的是五花八门，并且太多的答案都是复制/粘贴，一毛一样，而且大部分方案还没啥用，最终无奈就去看官方文档，解决了问题，这里记录一下。</description><pubDate>Wed, 22 Dec 2021 00:00:00 GMT</pubDate><category>java</category></item><item><title>Prometheus Exporter 黑盒监控 Kubernetes 服务</title><link>http://www.mydlq.club/article/120/</link><guid isPermaLink="true">http://www.mydlq.club/article/120/</guid><description>Prometheus 监控服务之前已经介绍过了，不过之前所说的都是白盒监控，而这篇文章要介绍的就是和白盒不一样的黑盒监控，之前介绍的白盒监控则偏向于主动的和提前预判，预测可能发生的故障，而黑盒监控以实际发生的故障为主导，当被监控的服务发生故障时，能快速进行预警。</description><pubDate>Tue, 30 Nov 2021 00:00:00 GMT</pubDate><category>k8s</category></item><item><title>SpringBoot 使用策略+工厂模式解决大量 If Else 问题</title><link>http://www.mydlq.club/article/119/</link><guid isPermaLink="true">http://www.mydlq.club/article/119/</guid><description>在日常开发中，我们的代码里面使用的最多的就是 IF ELSE 了，写起来简单明了，能够快速实现逻辑判断。不过呢，如果代码逻辑简单，业务量小，使用 IF ELSE 进行判断是很简单明了，但是如果代码逻辑复杂，并且业务量大，这时候过多的 IF ELSE 的代码，密密麻麻的让开发者一眼看上去就无理由的难受，尤其是本人在写 Spring Controller 时，遇到产品过多需要写大量的代码时，是非常不情愿的，在网上经过一番搜索，找到了使用工厂模式+策略模式解决大量 IF ELSE 问题的方案，这里记录一下。</description><pubDate>Thu, 18 Nov 2021 00:00:00 GMT</pubDate><category>java</category></item><item><title>修改 Kubeadm 源码中的 Kubernetes 证书过期时间为100年</title><link>http://www.mydlq.club/article/118/</link><guid isPermaLink="true">http://www.mydlq.club/article/118/</guid><description>现在使用 Kubeadm 安装 Kubernetes 集群非常方便，也是一种安装与维护 Kubernetes 集群的一种很好的官方组件，使用它能让我们在短时间内搭建好一个 Kubernetes 集群，不过这种安装方法证书默认有效期只有一年，我们部署的 Kubernetes 集群如果在使用中没有问题，是不会经常执行更新操作的，所以 Kubernetes 集群证书过期就成了安全隐患。现在流程修改 Kubeadm 源码中的证书过期时间，然后重新编译，使用编译后的 Kubeadm 初始化 Kubernetes 集群，这里对该方案进行了尝试，发现效果还是可以的，这里记录这个过程。</description><pubDate>Thu, 16 Sep 2021 00:00:00 GMT</pubDate><category>k8s</category></item><item><title>Prometheus 监控 Kubernetes ETCD 集群</title><link>http://www.mydlq.club/article/117/</link><guid isPermaLink="true">http://www.mydlq.club/article/117/</guid><description>ETCD 是 Kubernetes 中的核心组件，如果该组件出现问题将导致 Kubernetes 整个集群不可用，所以对 ETCD 集群进行监控是非常有必要的，这里记录如何配置 Prometheus 监控 ETCD 并使用 Grafana 进行展示的过程。</description><pubDate>Sat, 11 Sep 2021 00:00:00 GMT</pubDate><category>k8s</category></item><item><title>Prometheus 监听指定标签 Kubernetes 服务</title><link>http://www.mydlq.club/article/116/</link><guid isPermaLink="true">http://www.mydlq.club/article/116/</guid><description>在使用 Prometheus 采集 Kubernetes 中指定服务的指标数据时，需要配置一堆服务采集参数，过程比较繁琐。而实际上，使用 Prometheus 服务发现机制可以自动监听部署在 Kubernetes 中的服务，只需要在 Prometheus 中添加一些自动服务发现机制的参数，再将 Kubernetes 中添加对应的 annotations 注解，就可将对应的服务纳入 Prometheus 采集列表中，这里记录下这个过程。</description><pubDate>Fri, 20 Aug 2021 00:00:00 GMT</pubDate><category>k8s</category></item><item><title>解决 Kubernetes 中节点经常性 DiskPressure(磁盘压力) 的问题</title><link>http://www.mydlq.club/article/115/</link><guid isPermaLink="true">http://www.mydlq.club/article/115/</guid><description>在 Kubernetes 环境中，节点经常发生 DiskPressure 告警，并且 Kubernetes 发生该告警不久后，对应产生压力的节点就会发生节点不可用、镜像被清理等状况。所以，探究一下如何 DiskPressure 警告如何发生的，并且如何解决这个问题。</description><pubDate>Mon, 21 Jun 2021 00:00:00 GMT</pubDate><category>k8s</category></item><item><title>解决 Docker 多阶段构建 layer does not exist 错误</title><link>http://www.mydlq.club/article/114/</link><guid isPermaLink="true">http://www.mydlq.club/article/114/</guid><description>最近在 Jenkins 中执行 Docker 多阶段构建镜像时，发现在构建镜像阶段经常弹出 layer does not exist 错误，这里对该问题进行分析并解决，并记录下这个过程。</description><pubDate>Tue, 08 Jun 2021 00:00:00 GMT</pubDate><category>docker</category></item><item><title>Prometheus 结合 StateMetrics+cAdvisor 监控 Kubernetes 集群服务</title><link>http://www.mydlq.club/article/113/</link><guid isPermaLink="true">http://www.mydlq.club/article/113/</guid><description>cAdvisor 是 Google 推出的容器监控工具，专门用于收集容器的运行信息。而 KubeStateMetrics 则是用于监听 Kubernetes 服务资源的工具，用于关注集群内部各种资源对象的运行状态。俩个组件结合使用来监控 Kubernetes 集群，能达到很好的监控效果。这里将演示如何使用这俩个工具来监控 Kubernetes 集群服务，并记录这个过程。</description><pubDate>Tue, 18 May 2021 00:00:00 GMT</pubDate><category>k8s</category></item><item><title>Prometheus 结合 Node Exporter 监控 Kubernetes 集群节点</title><link>http://www.mydlq.club/article/112/</link><guid isPermaLink="true">http://www.mydlq.club/article/112/</guid><description>Node Exporter 是 Prometheus 官方提供的一个节点资源采集组件，可以用于收集服务器节点的数据，如 CPU 频率信息、磁盘 IO 统计、剩余可用内存等等。Prometheus 可以从 Node Exporter 对这些指标进行收集与存储，并且可以根据这些数据的实时变化进行服务器节点资源监控，这里介绍下如何在 Kubernetes 环境中部署 Node Exporter 组件与 Prometheus 结合监控 Kubernetes 集群中的全部节点。</description><pubDate>Fri, 23 Apr 2021 00:00:00 GMT</pubDate><category>k8s</category></item><item><title>Kubernetes 部署图表工具 Grafana</title><link>http://www.mydlq.club/article/111/</link><guid isPermaLink="true">http://www.mydlq.club/article/111/</guid><description>Grafana 是一个开源的度量分析与可视化工具。该工具提供查询、可视化、报警和指标展示等功能，能灵活创建图表、仪表盘等可视化界面。我们在监控系统中会经常部署该工具，将采集到的监控到的数据指标转换为图形形式进行展示。所以，这里记录一下 Kubernetes 下部署 Grafana 的过程。</description><pubDate>Wed, 21 Apr 2021 00:00:00 GMT</pubDate><category>k8s</category></item><item><title>Kubernetes 部署监控工具 Prometheus</title><link>http://www.mydlq.club/article/110/</link><guid isPermaLink="true">http://www.mydlq.club/article/110/</guid><description>Prometheus 是一个业界流行的监控与告警系统，且也是 CNCF 基金会的毕业项目，在云原生的模式下使用 Prometheus 作为监控工具是非常方便与高效的，这里我们在 Kubernetes 下部署一下这个应用。</description><pubDate>Wed, 07 Apr 2021 00:00:00 GMT</pubDate><category>k8s</category></item><item><title>Kubernetes 中部署 NFS-Subdir-External-Provisioner 为 NFS 提供动态分配卷</title><link>http://www.mydlq.club/article/109/</link><guid isPermaLink="true">http://www.mydlq.club/article/109/</guid><description>NFS Provisioner 已经停止维护，现在新的 NFS 动态分配器已经切换为 NFS Subdir External Provisioner，该组件也是一个自动配置卷程序，它使用现有的和已配置的 NFS 服务器来支持通过持久卷声明动态配置 Kubernetes 持久卷，这里记录这个部署这个组件的过程。</description><pubDate>Mon, 29 Mar 2021 00:00:00 GMT</pubDate><category>k8s</category></item><item><title>SpringBoot 使用 Springfox Swagger 3.0 调试接口</title><link>http://www.mydlq.club/article/108/</link><guid isPermaLink="true">http://www.mydlq.club/article/108/</guid><description>由于 SpringBoot 能够快速开发、便捷部署等特性，所以 SpringBoot 在 Java 开发中非常流行，且利用 SpringBoot 开发的项目 API 大多数都是 RestFul 风格，信息间交互一般都是 Json 交互，所以调试接口必须用这种专用的 Http 客户端工具如 PostMan 等。不过上面所说的工具在开发过程中使用感觉还是麻烦，Json 信息得填、还得设置返回信息格式等非常繁琐，所以业界现在流行利用 Springfox Swagger 来对接口进行调试与文档聚合。这里将对介绍下 SpringBoot 项目中如何使用 Springfox Swagger 工具对接口进行调试。</description><pubDate>Sat, 27 Mar 2021 00:00:00 GMT</pubDate><category>java</category></item><item><title>Kubernetes 部署 Ingress 控制器 Traefik v2.4</title><link>http://www.mydlq.club/article/107/</link><guid isPermaLink="true">http://www.mydlq.club/article/107/</guid><description>Traefik 最新推出了 v2.4 版本，其中增加了适配 Kubernetes Gateway API 的功能，这里将 Traefik 升级到最新版本，简单的介绍了下如何在 Kubernetes 环境下安装并配置 Traefik v2.4，并且演示以 Traefik CRD、Ingress 以及 Kubernetes Gateway API 三种方式配置 Traefik 路由规则。</description><pubDate>Thu, 18 Feb 2021 00:00:00 GMT</pubDate><category>k8s</category></item><item><title>通过 Docker 部署 Mysql 8.0 主从模式</title><link>http://www.mydlq.club/article/106/</link><guid isPermaLink="true">http://www.mydlq.club/article/106/</guid><description>日常中 Mysql 主从模式是使用最多的模式，该模式下既能做数据的热备，也能实现读写分离增加 Mysql 集群的整体性能。本人也尝试使用 Docker 部署下基于 GTID 方式的 Mysql 主从。GTID 模式下的 Mysql 主从比传统的寻找日志点方式要方便的多，当主从断开重新连接后能够自动寻找同步点，所以这种方式已经成为现在部署 Mysql 主从比较推荐部署方式了。好了，话不多说，我们开始记录这个部署过程。</description><pubDate>Sun, 14 Feb 2021 00:00:00 GMT</pubDate><category>docker</category></item><item><title>SpringBoot 结合 Mybatis 实现对多源数据库操作</title><link>http://www.mydlq.club/article/105/</link><guid isPermaLink="true">http://www.mydlq.club/article/105/</guid><description>日常开发一个项目时会经常遇见一个项目中使用多个数据库读取数据，并且还可能是两个不同类型的数据库。针对这种场景，这里总结了 SpringBoot 与 Mybatis 框架中是如何实现对多源数据库中数据进行操作的。</description><pubDate>Sun, 24 Jan 2021 00:00:00 GMT</pubDate><category>java</category></item><item><title>Kubernetes 部署 Nacos 1.4 集群</title><link>http://www.mydlq.club/article/104/</link><guid isPermaLink="true">http://www.mydlq.club/article/104/</guid><description>Nacos 是阿里开源的服务注册中心与配置中心组件，能够帮助开发人员快速实现动态服务发现、服务配置、服务元数据及流量管理。同时能够与 SpringCloud、Kubernetes、Dubbo 等开源生态无缝集成。尤其是在 Netflix Eureka 不维护后，Nacos 的出现更新让人关注。所以，这里部署一下 Nacos 集群，并且进行记录部署过程。</description><pubDate>Thu, 21 Jan 2021 00:00:00 GMT</pubDate><category>k8s</category></item><item><title>Kubernetes 使用 CronJob 进行定时任务</title><link>http://www.mydlq.club/article/103/</link><guid isPermaLink="true">http://www.mydlq.club/article/103/</guid><description>CronJob 控制器用于管理 Job 控制器资源的运行时间，每隔一定的周期都会创建一个 Job 去执行任务。在日常中我们会经常使用该资源进行数据备份、数据拉取与推送等等的定时任务。这里简单介绍下如何使用该 CronJob 去做这些事情。</description><pubDate>Sun, 03 Jan 2021 00:00:00 GMT</pubDate><category>k8s</category></item><item><title>解决 Kubernetes 部署 Metrics Server 无法访问 Apiserver 问题</title><link>http://www.mydlq.club/article/102/</link><guid isPermaLink="true">http://www.mydlq.club/article/102/</guid><description>在二进制方式部署的 Kubernetes 中，部署 Metrics Server 时，报 missing content for CA bundle &apos;client-ca::kube-system::extension-apiserver-authentication::requestheader-client-ca-file&apos; 这个错误，经过分析发生这个问题的原因是 kube-apiserver 没有开启 API 聚合功能，这里记录下这个问题的解决过程。</description><pubDate>Fri, 01 Jan 2021 00:00:00 GMT</pubDate><category>k8s</category></item><item><title>Kubernetes 部署代码仓库 Gitlab</title><link>http://www.mydlq.club/article/101/</link><guid isPermaLink="true">http://www.mydlq.club/article/101/</guid><description>我们日常开发中都会将代码提交带 Git 或者 SVN 中，不过由于 Git 管理代码的高效便捷，已经成为现在开发界的主要代码仓库，SVN 逐渐被淘汰。而今天要部署的 Gitlab 就是基于 Git 的一款工具，能够提供 web 界面化方式管理代码仓库中的资源，使用非常方便。这里记录下部署它的过程。</description><pubDate>Mon, 28 Dec 2020 00:00:00 GMT</pubDate><category>k8s</category></item><item><title>Kubernetes 部署 Ingress 控制器 Traefik v2.3</title><link>http://www.mydlq.club/article/100/</link><guid isPermaLink="true">http://www.mydlq.club/article/100/</guid><description>Traefik 最新推出了 v2.3 版本，这里将 Traefik 升级到最新版本，简单的介绍了下如何在 Kubernetes 环境下安装 Traefik v2.3，下面将介绍如何在 Kubernetes 环境下部署并配置 Traefik v2.3 并且演示以 CRD 和 Ingress 两种方式配置 Traefik 路由规则。</description><pubDate>Sun, 27 Dec 2020 00:00:00 GMT</pubDate><category>k8s</category></item><item><title>Kubernetes 部署 Kubernetes-Dashboard v2.1.0 尝鲜</title><link>http://www.mydlq.club/article/99/</link><guid isPermaLink="true">http://www.mydlq.club/article/99/</guid><description>Kubernetes Dashboard 是 Kubernetes 集群的基于 Web 的通用 UI。它允许用户管理在群集中运行的应用程序并对其进行故障排除，以及管理群集本身。最近推出了 v2.1.0 版本，这里在 Kubernetes 中部署一下，尝试看看新版本咋样。</description><pubDate>Sat, 26 Dec 2020 00:00:00 GMT</pubDate><category>k8s</category></item><item><title>SpringBoot 2.3.x 分层构建 Docker 镜像实践</title><link>http://www.mydlq.club/article/98/</link><guid isPermaLink="true">http://www.mydlq.club/article/98/</guid><description>随着“云原生”概念的兴起，项目容器化改造部署成为现在非常流行的一种部署方式。尤其是 Kubernetes 的加持，使得微服务部署不再困难，只需要简单的几条命令就能将几十上百个服务快速部署到云环境中。而 SpringBoot 也是倾向于容器化，尤其是在 2.3.x 版本后增加了很多使用于镜像的改造，比如“探针检测”、“Docker 镜像构建插件”、“应用打包分层”等等。一系列的流程都是为了更适配容器化，而今天要介绍的就是其中的 SpringBoot 2.3 新增的打包分层，使用分层机制构建 Docker 镜像，这里记录下这个过程。</description><pubDate>Tue, 08 Dec 2020 00:00:00 GMT</pubDate><category>java</category><category>docker</category></item><item><title>通过 Docker 部署 RocketMQ 双主双从模式（ 版本v4.7.0）</title><link>http://www.mydlq.club/article/96/</link><guid isPermaLink="true">http://www.mydlq.club/article/96/</guid><description>RocketMQ 是一个由 Java 语言编写的分布式高性能消息中间件，由阿里创建，后将其开源给 Apache 基金会，现在已经成为 Apache 开源项目中的顶级开源项目，具有高性能、高可靠、高实时、分布式特点，尤其内部封装了很多跟业务相关的功能模块，能让我们快速用其解决业务上消息处理的一些难点，所以如何使用与部署 RocketMQ 是这里要讲的重点。这里记录一下如果通过 Docker 部署 RocketMQ 双主双从模式这个过程。</description><pubDate>Sat, 21 Nov 2020 00:00:00 GMT</pubDate><category>docker</category></item><item><title>通过 Docker 部署 RocketMQ Dledger 集群模式（ 版本v4.7.0）</title><link>http://www.mydlq.club/article/97/</link><guid isPermaLink="true">http://www.mydlq.club/article/97/</guid><description>RocketMQ 是一个由 Java 语言编写的分布式高性能消息中间件，由阿里创建，后将其开源给 Apache 基金会，现在已经成为 Apache 开源项目中的顶级开源项目，具有高性能、高可靠、高实时、分布式特点，尤其内部封装了很多跟业务相关的功能模块，能让我们快速用其解决业务上消息处理的一些难点，所以如何使用与部署 RocketMQ 是这里要讲的重点。这里记录一下如果通过 Docker 部署 RocketMQ Dledger 集群模式这个过程。</description><pubDate>Sat, 21 Nov 2020 00:00:00 GMT</pubDate><category>docker</category></item><item><title>Kubernetes 部署 Metrics Server 获取集群指标数据</title><link>http://www.mydlq.club/article/77/</link><guid isPermaLink="true">http://www.mydlq.club/article/77/</guid><description>Metrics Server 是 Kubernetes 集群核心监控数据的聚合器，可以通过 Metrics API 的形式获取 Metrics 数据，不过仅仅是获取指标的最新值，不对旧值进行存储，且不负责将指标转发到第三方目标。Metrics Server 还可以与 Kubectl 工具结合使用，提供 kubectl top 命令来展示集群中的指标数据，接下来我们开始部署 Metrics Server。</description><pubDate>Wed, 18 Nov 2020 00:00:00 GMT</pubDate><category>k8s</category></item><item><title>解决 Docker 服务器存储资源池不足问题</title><link>http://www.mydlq.club/article/95/</link><guid isPermaLink="true">http://www.mydlq.club/article/95/</guid><description>最近在执行 Docker 运行命令启动镜像时候，无法正常执行 Docker 启动镜像命令，提示了 Thin Pool has 163051 free data blocks which is less than minimum required 163840 free data blocks 错误信息，能从字面意思了解这个错误跟存储有关，这里对这个问题进行一下探究及解决。</description><pubDate>Thu, 12 Nov 2020 00:00:00 GMT</pubDate><category>docker</category></item><item><title>SpringBoot 接口幂等性的实现</title><link>http://www.mydlq.club/article/94/</link><guid isPermaLink="true">http://www.mydlq.club/article/94/</guid><description>接口幂等性是开发当中要求，也是对业系统正常执行的保障。尤其是支付、订单等与金钱挂钩的服务，保证接口幂等性尤其重要，如果幂等不能够保证，那么很可能出现重复提单、重复消费等一系列线上 Bug，这些问题是不能被接受的。这里简单调研了下业界常用接口幂等性保障方案，使用 SpringBoot 框架实现，进行一下这个过程记录。</description><pubDate>Fri, 23 Oct 2020 00:00:00 GMT</pubDate><category>java</category></item><item><title>通过 Docker 部署 Redis 6.x 集群</title><link>http://www.mydlq.club/article/93/</link><guid isPermaLink="true">http://www.mydlq.club/article/93/</guid><description>在 Redis 3.0 版本后正式推出 Redis 集群模式，该模式是 Redis 的分布式的解决方案，是一个提供在多个 Redis 节点间共享数据的程序集，且 Redis 集群是去中心化的，它的每个 Master 节点都可以进行读写数据，每个节点都拥有平等的关系，每个节点都保持各自的数据和整个集群的状态，且最重要的是它能够横方便向扩展数据。这里我们部署一下 Redis 6.x 版本的集群模式，这里记录下这个过程。</description><pubDate>Fri, 25 Sep 2020 00:00:00 GMT</pubDate><category>docker</category></item><item><title>Java 中分布式 ID 的设计方案</title><link>http://www.mydlq.club/article/92/</link><guid isPermaLink="true">http://www.mydlq.club/article/92/</guid><description>互联网业务中，一套系统往往都是非常复杂的，很多时候都需要对大量数据进行处理与标识。例如，支付宝、美团、大众点评、京东商城、淘宝商城等等，都需要关联商品编号、用户下单单号、快递的快递号这样的数据，都需要使用一个唯一的 ID 进行标识。如何生成一个全局唯一的，且有序的 ID 对这些数据进行标识，成为分布式系统中很重要的考虑内容。这里我们介绍下 Java 中常用的分布式 ID 生成方案。</description><pubDate>Tue, 15 Sep 2020 00:00:00 GMT</pubDate><category>java</category></item><item><title>Spring 事务管理详解</title><link>http://www.mydlq.club/article/91/</link><guid isPermaLink="true">http://www.mydlq.club/article/91/</guid><description>日常开发我们经常会提及事务的概念，也会使用数据库事务进行一些列的涉及商品价格的操作，可以说事务是我们开发中必不可续的功能。Spring 框架中对事物进行了一些列封装，提供了事务接口，将事务的实现交由集成的持久层框架完成。可以说非常方便我们在使用 Spring 框架式，用简单的方式就实现事务。这里详细介绍下 Spring 中的事务相关内容。</description><pubDate>Mon, 31 Aug 2020 00:00:00 GMT</pubDate><category>java</category></item><item><title>通过 Helm 搭建 Docker 镜像仓库 Harbor</title><link>http://www.mydlq.club/article/66/</link><guid isPermaLink="true">http://www.mydlq.club/article/66/</guid><description>Harbor 是一个开放源代码容器镜像注册表，可通过基于角色权限的访问控制来管理镜像，还能扫描镜像中的漏洞并将映像签名为受信任。Harbor 是 CNCF 孵化项目，可提供合规性，性能和互操作性，以帮助跨 Kubernetes 和 Docker 等云原生计算平台持续，安全地管理镜像。下面将记录下，如何通过 Helm 安装 Docker 镜像仓库 Harbor。</description><pubDate>Wed, 26 Aug 2020 00:00:00 GMT</pubDate><category>k8s</category></item><item><title>Java 8 中使用 Stream 方式处理数据</title><link>http://www.mydlq.club/article/90/</link><guid isPermaLink="true">http://www.mydlq.club/article/90/</guid><description>在 Java 8 中增加了一个新的抽象接口 Stream API，它支持声明式的处理数据。使用 Stream 操作集合似于使用 SQL 语句数据库查找数据类似，提供直观的方法进行操作。 同时 Stream API 让开发者能够快速写出干净、简洁的代码，提高开发者的开发效率。</description><pubDate>Mon, 17 Aug 2020 00:00:00 GMT</pubDate><category>java</category></item><item><title>Java 8 中使用 Lambda 表达式简化代码</title><link>http://www.mydlq.club/article/89/</link><guid isPermaLink="true">http://www.mydlq.club/article/89/</guid><description>Lambda 表达式是在 JDK 8 中引入的一个新特性，可用于取代大部分的匿名内部类。使用 Lambda 表达式可以完成用少量的代码实现复杂的功能，极大的简化代码代码量和代码结构。同时，JDK 中也增加了大量的内置函数式接口供我们使用，使得在使用 Lambda 表达式时更加简单、高效。</description><pubDate>Tue, 04 Aug 2020 00:00:00 GMT</pubDate><category>java</category></item><item><title>Java 8 中使用 Optional 处理 null 对象</title><link>http://www.mydlq.club/article/88/</link><guid isPermaLink="true">http://www.mydlq.club/article/88/</guid><description>Optional 是一个容器对象，可以存储对象、字符串等值，当然也可以存储 null 值。Optional 提供很多有用的方法，能帮助我们将 Java 中的对象等一些值存入其中，这样我们就不用显式进行空值检测，使我们能够用少量的代码完成复杂的流程。</description><pubDate>Tue, 21 Jul 2020 00:00:00 GMT</pubDate><category>java</category></item><item><title>Java 8 中新增日期时间 API 的使用</title><link>http://www.mydlq.club/article/87/</link><guid isPermaLink="true">http://www.mydlq.club/article/87/</guid><description>在 Java 1.8 版本之前，日期时间 API 存在诸多问题，开发者使用体验非常糟糕，在 Java 8 通过发布新的 Date-Time API (JSR 310) 来对日期与时间的处理的方法进行了改善。而这里进行介绍下 Java 1.8 中的操作日期时间的的方法的使用。</description><pubDate>Mon, 06 Jul 2020 00:00:00 GMT</pubDate><category>java</category></item><item><title>SpringBoot 实现 Websocket 通信详解</title><link>http://www.mydlq.club/article/86/</link><guid isPermaLink="true">http://www.mydlq.club/article/86/</guid><description>WebSocket 是一种基于 TCP 的网络协议，也是一种全双工通信的协议，既允许客户端向服务器主动发送消息，也允许服务器主动向客户端发送消息。在 WebSocket 中，浏览器和服务器只需要完成一次握手，两者之间就可以建立持久性的连接，进行双向数据传输。对于双向信息交互的需求来说，使用 WebSocket 实现业务逻辑非常合适，这里介绍下 SpringBoot 如何实现基于 WebSocket 的功能需求，并写了四个基本操作示例进行演示。</description><pubDate>Tue, 30 Jun 2020 00:00:00 GMT</pubDate><category>java</category></item><item><title>Helm 安装 ElasticSearch &amp; Kibana 7.x 版本</title><link>http://www.mydlq.club/article/13/</link><guid isPermaLink="true">http://www.mydlq.club/article/13/</guid><description>Elasticsearch 是一个分布式的搜索和分析引擎，可以用于全文检索、结构化检索和分析，并能将这三者结合起来。设计用于云计算中，能够达到实时搜索，稳定，可靠，快速，安装使用方便，轻松扩展服务节点，更能用于日志收集快速检索等等一些列功能。所以在 Kubernetes 中搭配 ElasticSearch 集群是非常有必要的，通过 Yaml 文件安装 ElasticSearch 非常不方便且安装的可能非常不稳定导致发生很多问题，所以这里利用 Helm 来安装 ElasticSearch 和 Kibana，这里将介绍安装过程。</description><pubDate>Sun, 14 Jun 2020 00:00:00 GMT</pubDate><category>k8s</category></item><item><title>SpringBoot 集成 Spring Data Mongodb 操作 MongoDB 详解</title><link>http://www.mydlq.club/article/85/</link><guid isPermaLink="true">http://www.mydlq.club/article/85/</guid><description>MongoDB 是现在常用的 NoSQL 数据库，采用了键值对(JSON)方式存储数据，文档式的存储方式对开发者非常友好，并且 MongoDB 也支持副本集、分片等高可用，也提供多种数据查询方式。这里我们使用 SpringBoot 框架集成 Spring Data MongoDB 框架对 MongoDB 数据库中的数据进行操作，这里记录下这些操作示例。</description><pubDate>Tue, 02 Jun 2020 00:00:00 GMT</pubDate><category>java</category></item><item><title>安装 Helm3 管理 Kubernetes 应用</title><link>http://www.mydlq.club/article/51/</link><guid isPermaLink="true">http://www.mydlq.club/article/51/</guid><description>Helm 是一款能够帮助你管理 Kubernetes 应用的程序，使用起来类似于 Kubectl 工具，只需要通过简单的命令，就能部署复杂的应用程序。这里我们将安装 Helm 3.0 并记录这个安装过程。</description><pubDate>Tue, 05 May 2020 00:00:00 GMT</pubDate><category>k8s</category></item><item><title>Jenkins Pipeline 中使用 Kafka 插件将消息发送到 Kafka</title><link>http://www.mydlq.club/article/84/</link><guid isPermaLink="true">http://www.mydlq.club/article/84/</guid><description>在平时我们使用 Jenkins 执行任务构建时候会产生很多指标性数据，这些数据会输出到 Jenkins 日志中，在 Jenkins 中日志是存储到文件里面的，且数据量多我们收集起存储来不是很方便，很多时候我们只要部分指标关键数据，例如，用于统计任务构建时长的&apos;开始时间&apos;和&apos;结束时间&apos;、&apos;任务执行次数&apos;、&apos;任务执行人&apos;、&apos;任务编号&apos;等等。收集这些关系指标数据有很多方法，可以使用 logstash 插件将数据输入到 Elasticsearch 中，也可以输出到 Kafka 等应用处理后再存储，这里就是将数据输出到 Kafka 中，方便后续处理这些数据。这里介绍下如何安装与使用该插件。</description><pubDate>Tue, 05 May 2020 00:00:00 GMT</pubDate><category>jenkins</category></item><item><title>Springboot 中使用 Gson 与 Fastjson 替换默认 Json 组件 Jackson</title><link>http://www.mydlq.club/article/83/</link><guid isPermaLink="true">http://www.mydlq.club/article/83/</guid><description>现在流行的 SpringBoot 是我们在日常开发中经常用的开源框架，它默认的 Json 解析器是基于 Jackson 的，有时候我们需要将这个默认 Json 解析器替换为 FastJson 或者 Gson，替换起来也很简单，只需要移除 Jackson 的配置，然后自定义一个 HttpMessageConverters 就可以完成该项操作。这里记录下这个过程，并且解决在使用 Gson 替换 Jackson 后 Swagger 无法正常使用的问题。</description><pubDate>Thu, 30 Apr 2020 00:00:00 GMT</pubDate><category>java</category></item><item><title>Jenkins Pipeline 中使用 Git 插件对项目进行 Pull 与 Push</title><link>http://www.mydlq.club/article/82/</link><guid isPermaLink="true">http://www.mydlq.club/article/82/</guid><description>在 Jnekins 安装后，一般都会默认安装上 Git 插件，在写 Pipeline 脚本时候，也经常使用 Git 插件从 Git 仓库拉取项目进行编译，可以说使用 Git 已经是日常化操作，如何使用 Git 插件从 Git 远程仓库拉取与推送代码更是常用命令，这里介绍下如果通过 Git 插件进行这些操作。</description><pubDate>Sun, 26 Apr 2020 00:00:00 GMT</pubDate><category>jenkins</category></item><item><title>Traefik 路由规则及中间件 Traefik Middlewares 的配置</title><link>http://www.mydlq.club/article/81/</link><guid isPermaLink="true">http://www.mydlq.club/article/81/</guid><description>Traefik 是一款开源的边缘路由器，现在本人主要要作用于 kubernetes 中对外的网关，即 Ingress 路由器，可以很轻松的配置其路由规则。在配置路由规则过程中，我们经常要进行一些使用过程中，我们经常要在转发到对应后端服务时候进行一些加工，例如，限流、去除前缀、鉴权等等，对于这些需求 Traefik 提供了基于 CRD 的 Middlewares 中间件组件，里面可以灵活搭配多种功能对路由进行处理，这里我们简单介绍下。</description><pubDate>Fri, 24 Apr 2020 00:00:00 GMT</pubDate><category>k8s</category></item><item><title>解决 Kubernetes 中 Kubelet 组件报 failed to get cgroup 错误</title><link>http://www.mydlq.club/article/80/</link><guid isPermaLink="true">http://www.mydlq.club/article/80/</guid><description>最近查看 Kubelet 日志，发现日志中报 Failed to get system container stats for &apos;/system.slice/docker.service&apos;，错误信息，而且是一直循环报，所以这里对该问题进行了查找与分析，并解决了该问题，所以这里记录一下。</description><pubDate>Sun, 19 Apr 2020 00:00:00 GMT</pubDate><category>k8s</category></item><item><title>解决 Kubernetes 中 Pod 无法正常域名解析问题分析与 IPVS parseIP Error 问题</title><link>http://www.mydlq.club/article/78/</link><guid isPermaLink="true">http://www.mydlq.club/article/78/</guid><description>最近将 Kubernetes 升级到 1.18.1 版本，不过升级完后，查看工作节点的部分 Pod 无法启动，查看消息全是 connetion timeout 的错误，且连接超时的地址大部分是以域名方式连接集群内部地址（ClusterIP），少部分是以域名方式连接集群外部地址，通过 IP 进行远程连接的应用倒是没有问题（例如，应用通过 IP 连接 MySQL），由此判断，很可能是 DNS 出现了问题于是一步步进行了问题分析，最后定位为 IPVS parse Error 导致的问题。这里记录下详细的 DNS 问题分析与解决过程。</description><pubDate>Mon, 13 Apr 2020 00:00:00 GMT</pubDate><category>k8s</category></item><item><title>CentOS7 升级内核版本</title><link>http://www.mydlq.club/article/79/</link><guid isPermaLink="true">http://www.mydlq.club/article/79/</guid><description>由于最近升级了 Kubernetes 版本，新版本对内核版本有要求，所以升级了 CentOS 系统的内核版本，这里记录一下这个过程。</description><pubDate>Mon, 13 Apr 2020 00:00:00 GMT</pubDate><category>linux</category></item><item><title>Kubernetes 部署 Mysql 8.0 数据库(单节点)</title><link>http://www.mydlq.club/article/75/</link><guid isPermaLink="true">http://www.mydlq.club/article/75/</guid><description>Mysql 是我们常用的关系型数据库，在项目开发、测试、部署到生成环境时，经常需要部署一套 Mysql 进行数据存储。这里介绍下如何在 Kubernetes 环境中部署用于开发、测试的环境的 Mysql 数据库，当然，部署的是单节点模式，并非用于生产环境的主从或集群模式。单节点的 Mysql 部署简单，且配置存活探针，能保证快速检测 Mysql 是否可用，当不可用时快速进行重启。</description><pubDate>Tue, 07 Apr 2020 00:00:00 GMT</pubDate><category>k8s</category></item><item><title>Kubernetes 部署 Redis 5.0 数据库(单节点)</title><link>http://www.mydlq.club/article/76/</link><guid isPermaLink="true">http://www.mydlq.club/article/76/</guid><description>Redis 是我们常用的非关系型数据库，在项目开发、测试、部署到生成环境时，经常需要部署一套 Redis 来对数据进行缓存。这里介绍下如何在 Kubernetes 环境中部署用于开发、测试的环境的 Redis 数据库，当然，部署的是单节点模式，并非用于生产环境的主从、哨兵或集群模式。单节点的 Redis 部署简单，且配置存活探针，能保证快速检测 Redis 是否可用，当不可用时快速进行重启。</description><pubDate>Tue, 07 Apr 2020 00:00:00 GMT</pubDate><category>k8s</category></item><item><title>Kubernetes 部署 Kubernetes-Dashboard v2.0.0 尝鲜</title><link>http://www.mydlq.club/article/28/</link><guid isPermaLink="true">http://www.mydlq.club/article/28/</guid><description>Kubernetes Dashboard 是 Kubernetes 集群的基于 Web 的通用 UI。它允许用户管理在群集中运行的应用程序并对其进行故障排除，以及管理群集本身。这个项目在 Github 已经有半年多不更新了，最近推出了 v2.0.0 版本，并且已经为稳定版，这里在 Kubernetes 中部署一下，尝试看看新版本咋样。</description><pubDate>Mon, 06 Apr 2020 00:00:00 GMT</pubDate><category>k8s</category></item><item><title>Kubernetes Etcd 数据备份与恢复</title><link>http://www.mydlq.club/article/74/</link><guid isPermaLink="true">http://www.mydlq.club/article/74/</guid><description>Kubernetes 使用 Etcd 数据库实时存储集群中的数据，可以说 Etcd 是 Kubernetes 的核心组件，犹如人类的大脑。如果 Etcd 数据损坏将导致 Kubernetes 不可用，在生产环境中 Etcd 数据是一定要做好高可用与数据备份，这里介绍下如何备份与恢复 Etcd 组件。</description><pubDate>Thu, 02 Apr 2020 00:00:00 GMT</pubDate><category>k8s</category></item><item><title>通过 Kubeadm 升级 Kubernetes 版本</title><link>http://www.mydlq.club/article/5/</link><guid isPermaLink="true">http://www.mydlq.club/article/5/</guid><description>Kubeadm 是一个维护 Kubernetes 集群的工具，能很方便的对 Kubernetes 集群组件的版本进行升级，这里简单记录一下使用 Kuberadm 升级 Kubernetes 版本的过程。</description><pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate><category>k8s</category></item><item><title>解决 Kubeadm 添加新 Master 节点到集群出现 ETCD 健康检查失败错误</title><link>http://www.mydlq.club/article/73/</link><guid isPermaLink="true">http://www.mydlq.club/article/73/</guid><description>Kubeadm 添加新 Master 节点到集群出现 ETCD 健康检查失败错误，这里记录一下如何如何解决这个问题。</description><pubDate>Sun, 29 Mar 2020 00:00:00 GMT</pubDate><category>k8s</category></item><item><title>Kubernetes 部署 Ingress 控制器 Traefik v2.2</title><link>http://www.mydlq.club/article/72/</link><guid isPermaLink="true">http://www.mydlq.club/article/72/</guid><description>Traefik 最新推出了 v2.2 版本，这里将 Traefik 升级到最新版本，简单的介绍了下如何在 Kubernetes 环境下安装 Traefik v2.2，下面将介绍如何在 Kubernetes 环境下部署并配置 Traefik v2.2 并且演示以 CRD 和 Ingress 两种方式配置 Traefik 路由规则。</description><pubDate>Sat, 28 Mar 2020 00:00:00 GMT</pubDate><category>java</category></item><item><title>SpringBoot 集成 Mybatis 操作数据库</title><link>http://www.mydlq.club/article/71/</link><guid isPermaLink="true">http://www.mydlq.club/article/71/</guid><description>MyBatis 是一款优秀的持久层框架，它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO（Plain Old Java Objects，普通老式 Java 对象）为数据库中的记录。</description><pubDate>Mon, 23 Mar 2020 00:00:00 GMT</pubDate><category>java</category></item><item><title>Jenkins 中使用 Jenkins 中文社区镜像源</title><link>http://www.mydlq.club/article/70/</link><guid isPermaLink="true">http://www.mydlq.club/article/70/</guid><description>Jenkins 是由很多插共同组成的，然而 Jnekins 默认使用的镜像源是国外的镜像源，这导致下载与更新插件速度非常缓慢，还好国内 Jnekins 中文社区推出了国内的镜像源来加快下载速度。下面介绍下如何更改配置为国内插件镜像源。</description><pubDate>Fri, 13 Mar 2020 00:00:00 GMT</pubDate><category>jenkins</category></item><item><title>Java 中使用 HttpClient 工具详解</title><link>http://www.mydlq.club/article/68/</link><guid isPermaLink="true">http://www.mydlq.club/article/68/</guid><description>HttpClient 是 Apache Jakarta Common 下的子项目，相比 JDK 提供的自带 URLConnection 而言，封装了非常多的功能，提供灵活的可用性，对开发人员提供了很大的便利。这里介绍下，如何使用 Httpclient 工具来完成 Http 间的通信。</description><pubDate>Wed, 04 Mar 2020 00:00:00 GMT</pubDate><category>java</category></item><item><title>Kubernetes 污点 Taint 和容忍 Toleration</title><link>http://www.mydlq.club/article/69/</link><guid isPermaLink="true">http://www.mydlq.club/article/69/</guid><description>在 Kubernetes 中，节点亲和性 NodeAffinity 是 Pod 上定义的一种属性，能够使 Pod 按我们的要求调度到某个节点上，而 Taints(污点) 则恰恰相反，它是 Node 上的一个属性，可以让 Pod 不能调度到带污点的节点上，甚至会对带污点节点上已有的 Pod 进行驱逐。当然，对应的 Kubernetes 可以给 Pod 设置 Tolerations(容忍) 属性来让 Pod 能够容忍节点上设置的污点，这样在调度时就会忽略节点上设置的污点，将 Pod 调度到该节点。一般时候 Taints 通常与 Tolerations 配合使用。</description><pubDate>Wed, 04 Mar 2020 00:00:00 GMT</pubDate><category>k8s</category></item><item><title>SpringBoot 使用 Zookeeper 与 Redis 实现分布式锁</title><link>http://www.mydlq.club/article/67/</link><guid isPermaLink="true">http://www.mydlq.club/article/67/</guid><description>无论是现在的 SpriingCloud 微服务还是 Kubernetes 应用，都是分布式系统，在使用分布式中经常会了解到分布式锁的概念。所谓分布式锁就是控制分布式服务间同步访问共享资源的一种方式，在分布式系统中，常常需要协调他们的动作。如果不同的服务或是同一个服务的不同实例之间共享了一个或一组资源，那么访问这些资源的时候，往往需要互斥来防止彼此干扰来保证一致性，在这种情况下，便需要使用到分布式锁。</description><pubDate>Thu, 27 Feb 2020 00:00:00 GMT</pubDate><category>java</category></item><item><title>Kubernetes 应用部署调度策略 NodeSelector、NodeName 与 Affinity</title><link>http://www.mydlq.club/article/65/</link><guid isPermaLink="true">http://www.mydlq.club/article/65/</guid><description>在接触 Kubernetes 中，我们会经常接触到部署应用，Kubernetes 中默认的部署方式为根据调度算法分析 Kubernetes 中资源使用情况，进行动态分配的。有时候调度应用时需要设置应用部署到特定的节点上，或者需要将应用部署多个实例，为了保持高可用需要将应用分配到不同的节点上等等，由于有这些特殊情况，就有了后面要介绍的 Kubernetes 的多种调度方式。</description><pubDate>Wed, 12 Feb 2020 00:00:00 GMT</pubDate><category>k8s</category></item><item><title>SpringBoot 操作 ElasticSearch 详解</title><link>http://www.mydlq.club/article/64/</link><guid isPermaLink="true">http://www.mydlq.club/article/64/</guid><description>ElasticSearch 是一个基于 Lucene 的搜索服务器。它提供了一个分布式多员工能力的全文搜索引擎，基于 RESTful web 接口。Elasticsearch 是用 Java 语言开发的，是一种流行的企业级搜索引擎。这里将演示 SpringBoot 中，如何使用 ElasticSearch 官方推出的 Java 客户端 elasticsearch-rest-high-level-client 操作 ElasticSearch。</description><pubDate>Sat, 08 Feb 2020 00:00:00 GMT</pubDate><category>java</category></item><item><title>SpringBoot 应用构建 WAR 包</title><link>http://www.mydlq.club/article/63/</link><guid isPermaLink="true">http://www.mydlq.club/article/63/</guid><description>SpringBoot 中默认内置 Tomcat 容器，一般是构建 Jar 包方式，但是有时候需要使用外置的 Tomcat 来部署应用，这时候需要将应用打包成 War 包。SpringBoot 打包 War 方式也很简单，下面将介绍下如何将 SpringBoot 应用打包成 War 包。 </description><pubDate>Wed, 05 Feb 2020 00:00:00 GMT</pubDate><category>java</category></item><item><title>使用 Istioctl 在 Kubernetes 中安装 Istio</title><link>http://www.mydlq.club/article/62/</link><guid isPermaLink="true">http://www.mydlq.club/article/62/</guid><description>Service Mesh 服务网格是现在越来越流行的一种概念，一般指的是服务间通信的基础设施层。如果用一句话来解释什么是 Service Mesh，可以将它比作是应用程序或者说微服务间的 TCP/IP，负责服务之间的网络调用、限流、熔断和监控等。现在比较流行的服务网格要属 istio 了，我们这里将在 kubernetes 中部署一下，方便快速学习了解 istio 的观念及应用。</description><pubDate>Tue, 04 Feb 2020 00:00:00 GMT</pubDate><category>k8s</category></item><item><title>SpringBoot 多种读取配置文件中参数的方式</title><link>http://www.mydlq.club/article/61/</link><guid isPermaLink="true">http://www.mydlq.club/article/61/</guid><description>在日常开发使用 SpringBoot 框架时，经常有一些配置信息需要放置到配置文件中，我们需要手动读取这些配置到应用中进行一些逻辑，这里整理了一些常用读取配置的方法，简单介绍一下。</description><pubDate>Thu, 16 Jan 2020 00:00:00 GMT</pubDate><category>java</category></item><item><title>Jenkins 中使用 ThinBackup 插件实现数据备份与恢复</title><link>http://www.mydlq.club/article/60/</link><guid isPermaLink="true">http://www.mydlq.club/article/60/</guid><description>在部署完 Jenkins 后首先要准备的就是数据备份问题，尤其是在生产环境下的 Jenkins，如果数据丢失很可能导致项目上线和开发时间受到影响，所以备份数据很重要。还好，Jnekins 中存在数据备份插件 ThinBackup，方便我们通过界面化方式对数据进行备份与恢复。</description><pubDate>Sun, 12 Jan 2020 00:00:00 GMT</pubDate><category>jenkins</category></item><item><title>Jenkins 中基于角色的权限管理</title><link>http://www.mydlq.club/article/59/</link><guid isPermaLink="true">http://www.mydlq.club/article/59/</guid><description>Jenkins 一般应用于项目构建与持续集成中，一般会提供给各个项目组使用，所以权限控制一般都是我们需要考虑的问题。在 Jnekins 中需要控制不同的项目组拥有不同的权限，每个项目组的用户只能看见自己组的项目，其中 Jenkins 提供了很多权限控制插件，比较推荐的就是 Role Authorization 插件 可以使用角色与矩阵式方式灵活控制权限。这里将演示如何使用该插件控制权限。</description><pubDate>Sat, 11 Jan 2020 00:00:00 GMT</pubDate><category>jenkins</category></item><item><title>Kubernetes 部署 Ingress 控制器 Traefik v2.1</title><link>http://www.mydlq.club/article/58/</link><guid isPermaLink="true">http://www.mydlq.club/article/58/</guid><description>Traefik 最新推出了 v2.1 版本，这里将 Traefik 升级到最新版本，简单的介绍了下如何在 Kubernetes 环境下安装 Traefik v2.1，下面将介绍如何在 Kubernetes 环境下部署并配置 Traefik v2.1。</description><pubDate>Fri, 10 Jan 2020 00:00:00 GMT</pubDate><category>k8s</category></item><item><title>Java 中的加密与签名</title><link>http://www.mydlq.club/article/57/</link><guid isPermaLink="true">http://www.mydlq.club/article/57/</guid><description>数据加密的基本过程就是对原来为明文的文件或数据按某种算法进行处理，使其成为不可读的一段代码为“密文”，使其只能在输入相应的密钥之后才能显示出原容，通过这样的途径来达到保护数据不被非法人窃取、阅读的目的。在 Java 中经常会通过网络交互数据，所以数据安全尤为重要，下面将介绍使用 Hutool 工具，实现 Java 中的多种加密方式。</description><pubDate>Mon, 06 Jan 2020 00:00:00 GMT</pubDate><category>java</category></item><item><title>SpringBoot 使用 Caffeine 本地缓存</title><link>http://www.mydlq.club/article/56/</link><guid isPermaLink="true">http://www.mydlq.club/article/56/</guid><description>之前介绍过 Redis 这种 NoSql 作为缓存组件，它能够很好的作为分布式缓存组件提供多个服务间的缓存，但是 Redis 这种还是需要网络开销，增加时耗。本地缓存是直接从本地内存中读取，没有网络开销，例如秒杀系统或者数据量小的缓存等，比远程缓存更合适。</description><pubDate>Thu, 02 Jan 2020 00:00:00 GMT</pubDate><category>java</category></item><item><title>SpringBoot 结合 Spring Cache 操作 Redis 实现数据缓存</title><link>http://www.mydlq.club/article/55/</link><guid isPermaLink="true">http://www.mydlq.club/article/55/</guid><description>在日常开发中，为了减少对库的操作，我们会经常使用缓存技术对数据进行缓存，尤其是使用 Redis 进行缓存，Spring 也有对应的 SpringCache 项目能与其配合完成缓存，所以这里记录下，如何使用 SpringCache 操作 Redis 进行缓存。</description><pubDate>Sat, 28 Dec 2019 00:00:00 GMT</pubDate><category>java</category></item><item><title>SpringBoot 操作 Redis 详解</title><link>http://www.mydlq.club/article/54/</link><guid isPermaLink="true">http://www.mydlq.club/article/54/</guid><description>Redis 是一个高性能 Nosql 数据库，我们会经常在项目中应用 Redis 进行计算器、缓存、单点登录等场景，也可以说 Redis 是我们开发人员必须要掌握的技能。所以总结了下 SpringBoot 如何操作 Redis 进行了整理。</description><pubDate>Fri, 27 Dec 2019 00:00:00 GMT</pubDate><category>java</category></item><item><title>Kubernetes 为用户使用 Dashboard 创建 RBAC 权限</title><link>http://www.mydlq.club/article/53/</link><guid isPermaLink="true">http://www.mydlq.club/article/53/</guid><description>在我们正常开发过程中，经常要有很多开发组，每个组的应用是属于不同的项目，要分别为他们设置不同的 Namespace 来方便让他们资源互不影响。常用的做法是为每个组创建各自的 Namespace，然后给他们 Dashboard 地址和 Token，如何分配 Token 的 RBAC 权限大小，正是我们需要考虑的问题。常用做法是归属于哪个组的 Namespace 就拥有这个 Namespace 的 Admin 权限，接下来将介绍下，如何分配一个只拥有管理他们自己 Namespace 的权限的 Token。</description><pubDate>Sun, 01 Dec 2019 00:00:00 GMT</pubDate><category>k8s</category></item><item><title>Kubernetes 配置镜像中 Hosts 文件的域名解析</title><link>http://www.mydlq.club/article/52/</link><guid isPermaLink="true">http://www.mydlq.club/article/52/</guid><description>在 kubernetes 中的 Pod 经常会报 NDS 解析问题，所以就查找在 Kubernetes 中，是否能够配置镜像中的 hosts 文件，经过查询确实提供了该配置，所以这里记录一下。</description><pubDate>Mon, 25 Nov 2019 00:00:00 GMT</pubDate><category>k8s</category></item><item><title>kubeadm 安装 Kubernetes 1.16.3 (CentOS7+IPVS+Calico)</title><link>http://www.mydlq.club/article/50/</link><guid isPermaLink="true">http://www.mydlq.club/article/50/</guid><description>Kubeadm 是一个工具，他能帮我们快速创建一个 kubernetes 集群，让我们不必使用非常麻烦的二进制方式部署。 这里将使用该工具部署 Kubernetes 集群，记录一下这个过程。</description><pubDate>Thu, 21 Nov 2019 00:00:00 GMT</pubDate><category>k8s</category></item><item><title>SpringBoot 中使用 @Valid 注解 + Exception 全局处理器优雅处理参数验证</title><link>http://www.mydlq.club/article/49/</link><guid isPermaLink="true">http://www.mydlq.club/article/49/</guid><description>我们平时写 Spring 应用接口时候，经验要写大量的 if else 逻辑来对接口请求参数进行效验，接口越多，代码一坨坨的效验逻辑也越多，充斥着大量的 if else 不仅仅不美观影响代码可读性，而且还可能出现大量重复验证逻辑。还好 Java 中有 @Valid 注解可以与 Spring 配合，对参数进行效验，这里记录下这个使用过程。</description><pubDate>Wed, 20 Nov 2019 00:00:00 GMT</pubDate><category>java</category></item><item><title>SpringBoot 配置过滤器 Filter</title><link>http://www.mydlq.club/article/48/</link><guid isPermaLink="true">http://www.mydlq.club/article/48/</guid><description>在我们 Java 开发 Web 服务过程中，有些组件是经常使用的，例如Servelet的Filter是我们经常要创建的，它可用于权限验证、数据处理、日志记录、流量统计等。搭配上现在流行的 SpringBoot，可以说是如虎添翼，这里将演示下，在 SpringBoot 中如何创建并配置过滤器的过程。</description><pubDate>Fri, 15 Nov 2019 00:00:00 GMT</pubDate><category>java</category></item><item><title>Jenkins 与 Kubernetes 的 CI 与 CD &amp; Git + Maven + Docker+Kubectl</title><link>http://www.mydlq.club/article/47/</link><guid isPermaLink="true">http://www.mydlq.club/article/47/</guid><description>在项目微服务以来，我们要将项目进行 Kubernetes 转移，在这个过程中我们都需要手动构建、推送 Docker 镜像，然后部署到 Kubernets 平台进行测试，这无疑对开发和运维人员都大大增加了复杂性，导致效率低下，在现在这个微服务快速迭代模式下，需要有一套组件完帮我们完成持续集成与部署整个流程，避免人工手动来创建于部署应用。那么 Jnekins 无疑，来写这么一套流程是非常方便的，只要在其中引入部分组件，就能和 Kubernetes 快速配合起来，完成项目 CD\\CD 过程，这里简单记录下，如何在 Jenkins 中实现项目 CD\\CD 流水线。</description><pubDate>Sun, 20 Oct 2019 00:00:00 GMT</pubDate><category>jenkins</category><category>k8s</category></item><item><title>Jenkins 中使用 Kubernetes 插件动态 Slave Pod 代理详解</title><link>http://www.mydlq.club/article/46/</link><guid isPermaLink="true">http://www.mydlq.club/article/46/</guid><description>Kubernetes 插件的目的是能够使用 Kubernetes 配合，实现动态配置 Jenkins 代理（使用 Kubernetes 调度机制来优化负载），在执行 Jenkins Job 构建时将，Jenkins Master 会在 kubernetes 中创建一个 Slave Pod 代理来执行任务。这里详细描述下如何使用这个插件。</description><pubDate>Tue, 15 Oct 2019 00:00:00 GMT</pubDate><category>jenkins</category></item><item><title>Jenkins 中使用 Git Parameter 插件动态获取 Git 的分支</title><link>http://www.mydlq.club/article/45/</link><guid isPermaLink="true">http://www.mydlq.club/article/45/</guid><description>在 Jenkins 执行 Job 任务构建时候，经常使用 Git 拉取分支，每个 Git 项目都有不同的分支，如何动态的从 Git 项目中检索出分支信息成为了我们的考虑点，经过查找后发现 Jenkins 中提供了 Git Parameter 插件，用于动态获取 Git 项目中分支信息，在项目执行前提供选择分支项，这里演示下如何使用该插件。</description><pubDate>Sun, 13 Oct 2019 00:00:00 GMT</pubDate><category>jenkins</category></item><item><title>Kubernetes 部署 SpringCloud 网关 Zuul 1.x + Eureka 动态路由</title><link>http://www.mydlq.club/article/44/</link><guid isPermaLink="true">http://www.mydlq.club/article/44/</guid><description>现在很多 SpringCloud 组件都在往 Kubernetes 中迁移，SpringBoot Admin 作为我们微服务监控经常使用的组件，也要将它迁移到 Kubernetes 环境下。虽然现在 Netflix 的组件以及不再维护，但是它的很多组件大多数都是经历过生产环境下验证过得，尤其是网关 Zuul。现在很多公司部署网关还是依旧优先选择使用 Zuul 1.x 版本部署。Zuul 2.x 版本和现在 SpringCloud 新推出的 Gateway 使用 Netty 作为底层，提供异步接口，不过这也间接增加了代码复杂性和缺少生产环境验证，所以现在生产环境还是推荐使用 Zuul 1.x 版本，这里记录在 Kubernetes 下部署 Zuul 1.x 的构建及部署过程。</description><pubDate>Wed, 09 Oct 2019 00:00:00 GMT</pubDate><category>java</category></item><item><title>SpringBoot 集成 Apollo 配置中心</title><link>http://www.mydlq.club/article/42/</link><guid isPermaLink="true">http://www.mydlq.club/article/42/</guid><description>随着程序功能的日益复杂，程序的配置日益增多，各种功能的开关、参数的配置、服务器的地址……对程序配置的期望值也越来越高，配置修改后实时生效，灰度发布，分环境、分集群管理配置，完善的权限、审核机制……在这样的大环境下，传统的通过配置文件、数据库等方式已经越来越无法满足开发人员对配置管理的需求。因此 Apollo 配置中心应运而生。这里将介绍 SpringBoot 应用如何与 Apollo 集成（Apollo 部署在 K8S 环境下）。</description><pubDate>Thu, 26 Sep 2019 00:00:00 GMT</pubDate><category>java</category></item><item><title>Kubernetes 部署 SpringBoot Admin + Eureka 监控微服务</title><link>http://www.mydlq.club/article/43/</link><guid isPermaLink="true">http://www.mydlq.club/article/43/</guid><description>现在很多 SpringCloud 组件都在往 Kubernetes 中迁移，SpringBoot Admin 作为我们微服务监控经常使用的组件，也要将它迁移到 Kuberntes 环境下。在之前写过 SpringBoot Admin 与 SpringCloud Kubernetes 组件结合，通过 API 方式发现服务列表，让 Admin 服务能服务发现。但是现在还是很多实际生产环境中，还是将 Eureka 注册中心部署到 Kubernetes 环境下作为注册中心，然后将全部服务注册到 Eureka，通过注册中心将服务间关系进行关联，所以考虑到这种情况，所以这里将使用 Admin + Eureka 方式来部署。</description><pubDate>Thu, 26 Sep 2019 00:00:00 GMT</pubDate><category>java</category></item><item><title>Kubernetes 部署 Ingress 控制器 Traefik v2.0</title><link>http://www.mydlq.club/article/41/</link><guid isPermaLink="true">http://www.mydlq.club/article/41/</guid><description>Traefik 最新推出了 v2.0 版本，这里将尝试升级到最新，简单的介绍了下如何在 Kubernetes 环境下安装 Traefik v2.0，在 Traefik v2.0 版本后，配置 Ingress 路由规则其使用了自定义 CRD 对象来完成，并不像之前 1.0+ 版本使用 Kubernetes 自带的 Ingress 对象加注解方式来完成路由配置，下面将介绍如何在 Kubernetes 环境下部署并配置 Traefik v2.0。</description><pubDate>Sat, 21 Sep 2019 00:00:00 GMT</pubDate><category>k8s</category></item><item><title>Kubernetes 部署配置中心 Apollo 1.4.0</title><link>http://www.mydlq.club/article/40/</link><guid isPermaLink="true">http://www.mydlq.club/article/40/</guid><description>Apollo（阿波罗）是携程框架部门研发的分布式配置中心，能够集中化管理应用不同环境、不同集群的配置，配置修改后能够实时推送到应用端，并且具备规范的权限、流程治理等特性，适用于微服务配置管理场景。服务端基于 Spring Boot 和 Spring Cloud 开发，打包后可以直接运行，不需要额外安装Tomcat等应用容器。且 Java 客户端不依赖任何框架，能够运行于所有 Java 运行时环境，同时对 Spring/Spring Boot 环境也有较好的支持。</description><pubDate>Tue, 10 Sep 2019 00:00:00 GMT</pubDate><category>k8s</category></item><item><title>Kubernetes Pod 健康检查机制 LivenessProbe 与 ReadinessProbe</title><link>http://www.mydlq.club/article/39/</link><guid isPermaLink="true">http://www.mydlq.club/article/39/</guid><description>在我们实际部署项目过程中，经常要考虑的是如何保持应用稳定运行，在应用挂掉后如何重启，考虑到这样的情况，Kubernetes 推出了 Pod 的健康检查机制 LivenessProbe 与 ReadinessProbe。这里将简单探究下如何在 Kubernetes 中使用这两种探针。</description><pubDate>Sat, 07 Sep 2019 00:00:00 GMT</pubDate><category>k8s</category></item><item><title>Kubernetes 存储资源 PV、PVC 和 StorageClass</title><link>http://www.mydlq.club/article/38/</link><guid isPermaLink="true">http://www.mydlq.club/article/38/</guid><description>Kubernetes 集群是一群资源的集合，存储资源是其中一部分，如何方便的管理存储是运维与开发人员都注重的问题。Kubernetes 提供了管理持久化存储卷的 PV、PVC 和 StorageClass 的接口，用于 Kubernetes 集群中存储的创建于管理，这里总结了下这三者的概念知识和使用方法，方便以后回顾。</description><pubDate>Thu, 29 Aug 2019 00:00:00 GMT</pubDate><category>k8s</category></item><item><title>Kubernetes 部署 SpringCloud 注册中心 Eureka Server</title><link>http://www.mydlq.club/article/37/</link><guid isPermaLink="true">http://www.mydlq.club/article/37/</guid><description>现阶段实际往 Kubernetes 中迁移的 SpringCloud 项目大多数都是之前未使用 Kubernetes 的项目，项目比较依赖依赖注册中心 Eureka Server，SpringCloud 的服务都是依赖它进行服务的注册与获取服务地址，由于 Eureka 是作为基础组件使用，需要保证它的稳定性，所以决定用 StatefulSet 方式部署 Eureka，这里记录下这个过程。</description><pubDate>Sat, 17 Aug 2019 00:00:00 GMT</pubDate><category>k8s</category></item><item><title>Kubernetes 资源管理QoS、LimitRange和ResourceQuota</title><link>http://www.mydlq.club/article/36/</link><guid isPermaLink="true">http://www.mydlq.club/article/36/</guid><description>Kubernetes 集群是一群资源的集合，资源是有限的，当 Kubernetes 集群中计算资源不足时（如 Pod 占用资源过多），为了避免 Kubernetes 某个 Node 瘫痪，Kubernetes 会清理已经存在的资源，比如杀死 Pod 来完成资源释放。为了避免或降低由于资源不足时导致 Pod 被杀死这种情况发生导致的风险，Kubernetes 提供了资源限制的机制。这里介绍下 Kubernetes 下的资源范围限制对象 LimitRange 和资源配额对象 ResourceQuota 以及 Pod 的优先级 QoS。</description><pubDate>Thu, 15 Aug 2019 00:00:00 GMT</pubDate><category>k8s</category></item><item><title>SpringBoot 全局异常处理详解</title><link>http://www.mydlq.club/article/35/</link><guid isPermaLink="true">http://www.mydlq.club/article/35/</guid><description>在使用 SpringBoot 开发时我们经常要进行异常处理这个过程，在正常的情况下我们都会使用 try-catch 来处理异常从而避免发生一些未知的错误，而在 Spring 框架中，它有没有针对异常处理有一些好的方法呢？这个问题回答当然是肯定的，Spring 框架提供了异常处理器来处理通过 Controller 接口访问应用产生的异常，只需要配置和添加一些注解就可以处理通过 Controller 接口抛出的全部的异常。这里简单介绍下 Java 中的异常和 Spring 中如何处对异常进行处理的。</description><pubDate>Sat, 10 Aug 2019 00:00:00 GMT</pubDate><category>java</category></item><item><title>SpringBoot 集成 Spring For Kafka 操作 Kafka 详解</title><link>http://www.mydlq.club/article/34/</link><guid isPermaLink="true">http://www.mydlq.club/article/34/</guid><description>kafka是一个分布式消息队列，具有高性能、持久化、多副本备份、横向扩展能力。生产者往队列里写消息，消费者从队列里取消息进行业务逻辑。一般在架构设计中起到解耦、削峰、异步处理的作用。最近学习了下它的使用，项目中主要是 SpringBoot 框架开发程序，所以这里简单介绍下 kafka 相关知识，以及详细介绍下 SpringBoot 使用 Spring For Kafka 组件是如何操作 Kafka 的。</description><pubDate>Wed, 07 Aug 2019 00:00:00 GMT</pubDate><category>java</category></item><item><title>Kubernetes 开发 SpringCloud (四)、Kubnernetes 部署 Zipkin 搭配 Kafka+ElasticSearch 实现链路追踪</title><link>http://www.mydlq.club/article/30/</link><guid isPermaLink="true">http://www.mydlq.club/article/30/</guid><description>微服务架构是通过业务来划分服务的，对外暴露的接口，可能需要很多个服务协同才能完成一个接口功能，如果链路上任何一个服务出现问题，都会形成导致接口调用失败。此时查找出现问题的微服务是很困难的。Spring Cloud Sleuth主要功能就是在分布式系统中提供追踪解决方案，并且兼容支持了zipkin。这里演示如何在 Kubernetes 下部署 Zipkin Server，并且创建 SpringCloud Sleuth 项目产生链路数据。</description><pubDate>Thu, 25 Jul 2019 00:00:00 GMT</pubDate><category>k8s</category></item><item><title>Kubernetes 开发 SpringCloud (三)、使用 SpringCloud Feign 进行 SrpingCloud 服务间的通信</title><link>http://www.mydlq.club/article/31/</link><guid isPermaLink="true">http://www.mydlq.club/article/31/</guid><description>Kubernetes 环境中使用 SpringCloud 框架开发服务跟本地开发一样，服务间调用也是可用利用 Feign 完成服务间通信工作，保持和本地开发 SpringCloud 模式不变，这样也能减少学习成本。如果使用 SpringCloud Feign 还能配合 SpringCloud Sleuth 生成链路日志，然后配合 Zipkin 配合完成服务间链路追踪工作。这里介绍下如何使用 SpringCloud Feign 进行服务间的通信。</description><pubDate>Thu, 25 Jul 2019 00:00:00 GMT</pubDate><category>k8s</category></item><item><title>Kubernetes 开发 SpringCloud (二)、使用 SpringCloud Kubernetes 组件进行动态配置</title><link>http://www.mydlq.club/article/32/</link><guid isPermaLink="true">http://www.mydlq.club/article/32/</guid><description>Kubernetes 本身存在 ConfigMap 与 Secret 对象来存储配置，所以在 Kubernetes 部署 SpringCloud 的应用尝试不再采用统一配置中心管理配置，而是将配置文件存入 Kubernetes 的 ConfigMap 与 Secret 资源中，经过尝试这种做法确实可行。不过用这种方法还面临一个问题是直接存入 ConfigMap 或者 Secret 中如果配置发生变化，程序是无法感知到变化从而不会进行自动重启或刷新配置。由于上面问题，SpringCloud Kubernetes 提供了 spring-cloud-starter-kubernetes-config 组件来解决在 Kubernetes 环境中使用 ConfigMap 或 Secret 动态配置发现与更新问题，当存在 ConfigMap 中的配置或者存在 Secret 中的密码发生更改时候，在 Kubernetes 中的服务能及时监控到这一变化从而按照配置的配置更新策略进行动态更新或者服务重启。这里记录下这个组件的使用。</description><pubDate>Thu, 25 Jul 2019 00:00:00 GMT</pubDate><category>k8s</category></item><item><title>Kubernetes 开发 SpringCloud (一)、使用SpringCloud Kubernetes组件进行服务发现</title><link>http://www.mydlq.club/article/33/</link><guid isPermaLink="true">http://www.mydlq.club/article/33/</guid><description>这里主要介绍的是如何在 Kubernetes 中使用 SpringCloud  框架开发 Java 应用，在这个过程中主要使用的组件就是 SpringCloud Kubernetes 来完成服务发现、动态配置，利用 Feign 来进行服务间的通信等。里先简单介绍下 SpringCloud Kubernetes，它主要是提供了使用 Kubernetes 本地服务的 Spring Cloud 通用接口实现。目标是促进 Spring Cloud 和运行在 Kubernetes 中的 Spring Boot 应用程序的集成。</description><pubDate>Thu, 25 Jul 2019 00:00:00 GMT</pubDate><category>k8s</category></item><item><title>Kubernetes 部署 Kafka &amp; Zookeeper &amp; Kafka Manager</title><link>http://www.mydlq.club/article/29/</link><guid isPermaLink="true">http://www.mydlq.club/article/29/</guid><description>Kafka 是由 Apache 软件基金会开发的一个开源流处理平台，由 Scala 和 Java 编写。它是一个分布式、支持分区的的、多副本，基于 zookeeper 协调的分布式消息系统。它最大特性是可以实时的处理大量数据以满足各种需求场景，比如基于 Hadoop 的批处理系统、低延时的实时系统、storm/Spark 流式处理引擎，web/nginx 日志，访问日志，消息服务等等。这里将演示如何在 Kubernetes 中部署 Kafka、Zookeeper、kafka-manager 几个应用实践。</description><pubDate>Fri, 19 Jul 2019 00:00:00 GMT</pubDate><category>k8s</category></item><item><title>CentOS7 安装及配置 Docker</title><link>http://www.mydlq.club/article/27/</link><guid isPermaLink="true">http://www.mydlq.club/article/27/</guid><description>Docker 是一个开源的应用容器引擎，让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中，然后发布到任何流行的 Linux 或 Windows 机器上，也可以实现虚拟化。容器是完全使用沙箱机制，相互之间不会有任何接口。这里将演示如何安装 Docker 和配置 Docker 镜像加速等。</description><pubDate>Tue, 09 Jul 2019 00:00:00 GMT</pubDate><category>linux</category><category>docker</category></item><item><title>Kubernetes 中部署 Maven 私有仓库 Sonatype Nexus3</title><link>http://www.mydlq.club/article/26/</link><guid isPermaLink="true">http://www.mydlq.club/article/26/</guid><description>Nexus 是 Maven 仓库管理器，通过 nexus 可以搭建 Maven仓库，极大的简化了本地内部仓库的维护和外部仓库的访问，同时是一套开箱即用的系统不需要数据库，并且还提供强大的仓库管理、构建、搜索等功能，并且能够和 Devops 持续集成过程融合在一起，让 Maven 的 Jar 能够在本地相互引用提供便利，这里将搭建一个这个 Nexus Maven 私服过程进行描述。</description><pubDate>Mon, 08 Jul 2019 00:00:00 GMT</pubDate><category>k8s</category></item><item><title>Kubernetes 中部署代码质量检测工具 SonarQube</title><link>http://www.mydlq.club/article/25/</link><guid isPermaLink="true">http://www.mydlq.club/article/25/</guid><description>SonarQube是一个用于代码质量管理的开源平台，用于管理源代码的质量。同时SonarQube还对大量的持续集成工具提供了接口支持，可以很方便地在持续集成中使用 SonarQube。此外 SonarQube 的插件还可以对 Java 以外的其他编程语言提供支持，对国际化以及报告文档化也有良好的支持。将 SonarQube 部署到 Kubernetes 中保证其稳定性，这里记录下这个过程。</description><pubDate>Thu, 04 Jul 2019 00:00:00 GMT</pubDate><category>k8s</category></item><item><title>Kubernetes 中部署 NFS Provisioner 为 NFS 提供动态分配卷</title><link>http://www.mydlq.club/article/24/</link><guid isPermaLink="true">http://www.mydlq.club/article/24/</guid><description>NFS Provisioner 是一个自动配置卷程序，它使用现有的和已配置的 NFS 服务器来支持通过持久卷声明动态配置 Kubernetes  持久卷。这个应用在团队的私有云上的 Kubernetes 来为有状态集提供存储，这里记录这个部署过程。</description><pubDate>Fri, 28 Jun 2019 00:00:00 GMT</pubDate><category>k8s</category></item><item><title>利用 Java 操作 Jenkins API 实现对 Jenkins 的控制详解</title><link>http://www.mydlq.club/article/23/</link><guid isPermaLink="true">http://www.mydlq.club/article/23/</guid><description>由于最近工作需要利用 Jenkins 远程 API 操作 Jenkins 来完成一些列操作，就抽空研究了下如何利用 JAVA 操作 Jenkins API，实现对 Jenkins Job、View等等的增、删、改、查操作。</description><pubDate>Tue, 25 Jun 2019 00:00:00 GMT</pubDate><category>jenkins</category></item><item><title>Kubernetes 中用 SpringBoot Admin+SpringCloud Kubernetes 监控&amp;调试 SpringBoot 应用</title><link>http://www.mydlq.club/article/22/</link><guid isPermaLink="true">http://www.mydlq.club/article/22/</guid><description>Spring Boot Admin 是一个开源社区项目，用于管理和监控 SpringBoot 应用程序，展示Spring Boot Admin Client 的 Actuator 端点上的一些监控信息。这里要在 Kubernetes 中部署 SpringBoot Admin，由于 Kubernetes 自带服务发现，所以去掉注册中心等，这里需要和 SpringCloud Kubernetes 完成 Kubernetes 下的服务发现。这里将演示 SpringBoot Admin 与 SpringCloud Kubernetes 配合完成监控 Kubernetes 中的 SpringBoot 应用。</description><pubDate>Mon, 24 Jun 2019 00:00:00 GMT</pubDate><category>k8s</category></item><item><title>利用 Swagger Kubernetes 调试 Kubernetes 的 Spring 应用 API &amp; 生成 API 文档</title><link>http://www.mydlq.club/article/21/</link><guid isPermaLink="true">http://www.mydlq.club/article/21/</guid><description>Swagger Kubernetes 是能够将 Kubernetes 环境下 Spring 项目的 Swagger 文档聚合，只要 Spring 项目中引用了 Swagger 工具暴露 Swagger API，就可以将其所有的这类项目 Swagger 接口聚合到 Swagger Kubernetes 项目当中。且 Kubernetes 环境中拥有服务发现功能，能够自动发现那些暴露 Swagger API 的 Spring 应用，然后生成 Markdown 格式的文档展示在页面上，通过反向代理可以直接调用对应服务接口进行调试工作。</description><pubDate>Thu, 20 Jun 2019 00:00:00 GMT</pubDate><category>k8s</category></item><item><title>SpringBoot 利用 Swagger2 调试 API</title><link>http://www.mydlq.club/article/20/</link><guid isPermaLink="true">http://www.mydlq.club/article/20/</guid><description>由于 SpringBoot 能够快速开发、便捷部署等特性，所以 SpringBoot 在 Java 开发中非常流行，且利用 SpringBoot 开发的项目 API 大多数都是 RestFul 风格，信息间交互一般都是 Json 交互，所以调试接口必须用这种专用的 Http 客户端工具如“PostMan”等，但是感觉还是麻烦，Json信息得填、还得设置返回信息格式等非常繁琐，所以业界现在流行利用“Swagger2”来对API进行调试，和文档聚合，这里描述一下 SpringBoot 项目中如何使用 Swagger2。</description><pubDate>Tue, 18 Jun 2019 00:00:00 GMT</pubDate><category>java</category></item><item><title>使用 Prometheus Operator 监控 Traefik Ingress</title><link>http://www.mydlq.club/article/19/</link><guid isPermaLink="true">http://www.mydlq.club/article/19/</guid><description>上次已经配置了 Prometheus Operator 监控 ETCD，这次来配置下，让 Prometheus 监控集群 Ingress。</description><pubDate>Mon, 10 Jun 2019 00:00:00 GMT</pubDate><category>k8s</category></item><item><title>使用 Prometheus Operator 监控 Kubernetes Etcd</title><link>http://www.mydlq.club/article/18/</link><guid isPermaLink="true">http://www.mydlq.club/article/18/</guid><description>上次已经配置了 Prometheus Operator 监控 Kubernetes，但是并没有监控 ETCD 的信息，所以这里我们配置一下监控 Etcd 信息。</description><pubDate>Sun, 09 Jun 2019 00:00:00 GMT</pubDate><category>k8s</category></item><item><title>Kubernetes 部署 Traefik Ingress 控制器 (1.7.12)</title><link>http://www.mydlq.club/article/17/</link><guid isPermaLink="true">http://www.mydlq.club/article/17/</guid><description>Ingress 可以为 Kubernetes 集群外部访问集群内部 Service 提供配置，Ingress Controller 控制器可以充当网关，提供路由策略、负载均衡流量、SSL，并提供基于名称的虚拟主机，提供统一的入口供流量涌入，是一个边缘路由器或额外的前端。这里使用 Traefik 来充当 Ingress Controller 控制器，下面将介绍如何在 Kubernetes 中部署 Traefik 这个过程。</description><pubDate>Sun, 02 Jun 2019 00:00:00 GMT</pubDate><category>k8s</category></item><item><title>Java SpringBoot 项目构建 Docker 镜像调优实践</title><link>http://www.mydlq.club/article/16/</link><guid isPermaLink="true">http://www.mydlq.club/article/16/</guid><description>在对Kubernetes微服务实践过程中，接触最多的肯定莫过于Docker镜像，尤其是Java-SpringBoot项目通过Dockerfile编译成Docker的镜像。Kubernetes 微服务简单说就是一群镜像间的排列组合与相互间调的关系，故而如何编译镜像会使服务性能更优，更易使用成为了一个重中之重，非常值得琢磨的问题。这里我将我的团队对SpringBoot 项目打包Docker镜像如何写Dockerfile的探究进行简单叙述。</description><pubDate>Fri, 31 May 2019 00:00:00 GMT</pubDate><category>java</category><category>docker</category></item><item><title>将 Java 项目推送到 Maven 中央仓库实践</title><link>http://www.mydlq.club/article/15/</link><guid isPermaLink="true">http://www.mydlq.club/article/15/</guid><description>最新写了个开源项目，考虑到方便原因需要发布到 Maven，第一次将项目提交到 Maven 中央仓库，网上知识参差不齐到最后遇见了很多坑，这里记录一下这个实践过程。</description><pubDate>Wed, 29 May 2019 00:00:00 GMT</pubDate><category>java</category></item><item><title>Kubernetes 日志采集 EFK</title><link>http://www.mydlq.club/article/14/</link><guid isPermaLink="true">http://www.mydlq.club/article/14/</guid><description>Kubernetes 日志收集是一项重要的任务，既要使用性能比较好的采集工具提高收集效率，也要利于标记和分类存储，再者是存储后要利于查询。而 Fluentd 正好能满足现在业务的日志收集性能等需求，多插件的支持让归类更加容易。存储用了业界现在流行的 ElasticSearch ，展示利用 Kibana。这一套系统就是使用了官方推荐的日志收集方案 EFK 来进行日志采集工作，下马将记录这个操作过程。</description><pubDate>Thu, 16 May 2019 00:00:00 GMT</pubDate><category>k8s</category></item><item><title>Kubernetes 部署 GlusterFS + Heketi 存储集群</title><link>http://www.mydlq.club/article/12/</link><guid isPermaLink="true">http://www.mydlq.club/article/12/</guid><description>Kubernetes 环境下很多应用是由很多个节点组成，各个应用程序分布在不同的节点上，因此如果一个应用将持久化数据存储到一个节点上，当应用重启后由于 Kubernetes 对无状态应用机制可能下次启动就会被分配到别的节点上，这样新启的应用读取的配置在新起来的节点上是不存在的，为了解决这个问题共享存储成为解决思路。现在比较流行的分布式存储有很多，而 GlusterFS 是一个可扩展，分布式文件存储系统，Heketi 是一个能管理 GlusterFS 集群的管理工具，这里将搭配此一套工具用于管理这种共享存储资源来解决存储方案。</description><pubDate>Sun, 12 May 2019 00:00:00 GMT</pubDate><category>k8s</category></item><item><title>Jenkins 使用 SonarQube 扫描 Coding</title><link>http://www.mydlq.club/article/11/</link><guid isPermaLink="true">http://www.mydlq.club/article/11/</guid><description>SonarQube 是一个用于代码质量管理的开源平台，用于管理源代码的质量。同时 SonarQube 还对大量的持续集成工具提供了接口支持，可以很方便地在持续集成中使用 SonarQube。此外， SonarQube 的插件还可以对 Java 以外的其他编程语言提供支持，对国际化以及报告文档化也有良好的支持。这里将利用持续集成工具 Jenkins 与 SonarQube 集成，进行代码扫描分析工作，方便项目在上线前优化代码与修补漏洞。</description><pubDate>Thu, 09 May 2019 00:00:00 GMT</pubDate><category>jenkins</category></item><item><title>使用 Prometheus Operator 监控 Kubernetes 集群（Prometheus Operator 已改名为 Kube-Prometheus）</title><link>http://www.mydlq.club/article/10/</link><guid isPermaLink="true">http://www.mydlq.club/article/10/</guid><description>利用 Prometheus 监控 Kubernetes 集群是现在非常流行的一种监控方式，但是维护 Prometheus 是一件非常费力费时的事情，好在现在出现Prometheus Operator 工具，它是 Prometheus 的在 Kubernetes 下的一种自定义的资源定义（CRD），声明式地定义了在 Kubernetes 集群中运行的所需的 Prometheus 设置。它提供了配置复制，持久化存储和部署 Prometheus 实例向其发送告警的 Alertmanagers，让我们维护起 Prometheus 变得简单。这里将简单介绍下如何安装 Prometheus Operator。</description><pubDate>Mon, 06 May 2019 00:00:00 GMT</pubDate><category>k8s</category></item><item><title>Java 通过 JavaMail 发送邮件</title><link>http://www.mydlq.club/article/9/</link><guid isPermaLink="true">http://www.mydlq.club/article/9/</guid><description>　JavaMail 是sun公司（现以被甲骨文收购）为方便Java开发人员在应用程序中实现邮件发送和接收功能而提供的一套标准开发包，它支持一些常用的邮件协议，如 SMTP，POP3，IMAP,还有 MIME 等，这里记录在 Java 开发过程中简单用 JavaMail 发送邮件，在此记录下这个工具。</description><pubDate>Sun, 05 May 2019 00:00:00 GMT</pubDate><category>java</category></item><item><title>Jenkins Email 邮件配置</title><link>http://www.mydlq.club/article/7/</link><guid isPermaLink="true">http://www.mydlq.club/article/7/</guid><description>Jenkins Job 在执行完成后，如果执行失败或者执行任务不稳定构建过程，那么这时候可以使用邮箱方式将结果通知相关人员。这里将描述如何利用 Jenkins 邮件插件来发送邮件。</description><pubDate>Wed, 01 May 2019 00:00:00 GMT</pubDate><category>jenkins</category></item><item><title>Jenkins 与 Kubernetes 持续集成 Springboot + Helm</title><link>http://www.mydlq.club/article/8/</link><guid isPermaLink="true">http://www.mydlq.club/article/8/</guid><description>这里将利用持续集成工具 Jenkins 进行CI/CD，将一个 Java 的 SpringBoot 项目从 Github 上拉取，读取其中的 Dockerfile 文件进行 Docker 编译镜像，然后推送到 Docker 仓库，之后利用 Heml 对应的SpringBoot Chart模板管理与启动该编译的 Docker 镜像，完成持续部署/集成工作。</description><pubDate>Wed, 01 May 2019 00:00:00 GMT</pubDate><category>k8s</category><category>jenkins</category></item><item><title>kubernetes 安装 Jenkins</title><link>http://www.mydlq.club/article/6/</link><guid isPermaLink="true">http://www.mydlq.club/article/6/</guid><description>在 Kubernetes 集群下安装 Jenkins，用于与 Kubernetes 集群交互用于 CI/CD 工作，这里将讲述 Kubernetes 如何安装 Jenkins。</description><pubDate>Mon, 22 Apr 2019 00:00:00 GMT</pubDate><category>k8s</category><category>jenkins</category></item><item><title>通过 Kubeadm 安装 K8S 与高可用</title><link>http://www.mydlq.club/article/4/</link><guid isPermaLink="true">http://www.mydlq.club/article/4/</guid><description>Kubeadm 是一个工具，它提供了 kubeadm init 以及 kubeadm join 这两个命令作为快速创建 kubernetes 集群的最佳实践。 kubeadm 通过执行必要的操作来启动和运行一个最小可用的集群。它被故意设计为只关心启动集群，而不是之前的节点准备工作。同样的，诸如安装各种各样值得拥有的插件，例如 Kubernetes Dashboard、监控解决方案以及特定云提供商的插件，这些都不在它负责的范围。相反，我们期望由一个基于 kubeadm 从更高层设计的更加合适的工具来做这些事情；并且，理想情况下，使用 kubeadm 作为所有部署的基础将会使得创建一个符合期望的集群变得容易。</description><pubDate>Fri, 01 Feb 2019 00:00:00 GMT</pubDate><category>k8s</category></item><item><title>CentOS7 搭建 NFS 服务器</title><link>http://www.mydlq.club/article/3/</link><guid isPermaLink="true">http://www.mydlq.club/article/3/</guid><description>NFS（Network File System）即网络文件系统，是FreeBSD支持的文件系统中的一种，它允许网络中的计算机之间通过TCP/IP网络共享资源。在NFS的应用中，本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件，就像访问本地文件一样。这里将说明如何将 CentOS 服务器搭建 NFS。</description><pubDate>Thu, 10 Jan 2019 00:00:00 GMT</pubDate><category>linux</category></item><item><title>CentOS7 安装 Maven</title><link>http://www.mydlq.club/article/2/</link><guid isPermaLink="true">http://www.mydlq.club/article/2/</guid><description>Maven项目对象模型(POM)，可以通过一小段描述信息来管理项目的构建，报告和文档的项目管理工具软件。Maven 除了以程序构建能力为特色之外，还提供高级项目管理工具。由于 Maven 的缺省构建规则有较高的可重用性，所以常常用两三行 Maven 构建脚本就可以构建简单的项目。由于 Maven 的面向项目的方法，许多 Apache Jakarta 项目发文时使用 Maven，而且公司项目采用 Maven 的比例在持续增长。这里将在 CentOS 服务器上安装 Maven 工具。</description><pubDate>Fri, 28 Sep 2018 00:00:00 GMT</pubDate><category>linux</category></item><item><title>CentOS7 安装 Git</title><link>http://www.mydlq.club/article/1/</link><guid isPermaLink="true">http://www.mydlq.club/article/1/</guid><description>Git 是一个开源的分布式版本控制系统，可以有效、高速地处理从很小到非常大的项目版本管理。这里将说明如何将 CentOS 服务器搭建 Git。</description><pubDate>Tue, 25 Sep 2018 00:00:00 GMT</pubDate><category>linux</category></item></channel></rss>