- 博客(123)
- 资源 (1)
- 收藏
- 关注
原创 K8S StatefulSet 快速开始
集群的每个节点,都需要有独立的存储。集群中的每个节点,都需要知道彼此的存在。集群节点的启动,有先后顺序的要求。前面两个是硬性的,而启动的先后顺序,并不是所有分布式系统都有的特点。
2025-05-29 17:19:16
1014
原创 K8S Gateway AB测试、蓝绿发布、金丝雀(灰度)发布
假设有如下三个节点的 K8S 集群:k8s31master 是控制节点k8s31node1、k8s31node2 是工作节点容器运行时是 containerd。
2025-05-15 17:57:08
1284
原创 K8S Gateway API 快速开始、胎教级教程
假设有如下三个节点的 K8S 集群:k8s31master 是控制节点k8s31node1、k8s31node2 是工作节点容器运行时是 containerd。
2025-05-15 17:14:14
1481
原创 K8S Ingress 实现AB测试、蓝绿发布、金丝雀(灰度)发布
是一个 K8S Ingress 工具,支持配置 Ingress Annotations 来实现不同场景下的灰度发布和测试。前提:# 注解的键和值只能是字符串。其他类型,如布尔值或数值,必须加引号,例如:"true"、"false"、"100"。# 开启灰度发布Ingress Nginx Annotations 支持以下几种 Canary 规则::利用请求头,通知 Ingress 将请求路由到 Canary Ingress 中指定的服务。当请求头部设置为 always 时,请求将被路由到金丝雀版本。
2025-05-14 14:02:44
812
1
原创 K8S Ingress、IngressController 快速开始
定义:Ingress 是 Kubernetes 中的一种资源对象,它定义了外部访问集群内服务的规则。可以将其理解为一个智能的 “流量路由器”,根据接收到的 HTTP/HTTPS 请求的不同规则,将流量转发到集群内不同的服务上。作用统一入口:为集群内的多个服务提供一个统一的外部入口点,使得外部用户可以通过一个固定的 IP 地址或域名来访问不同的服务,而不需要为每个服务都暴露独立的 IP 和端口。规则定义:支持基于域名、URL 路径等条件来定义路由规则。例如,可以配置让域名的请求被路由到服务 A,而。
2025-05-12 23:45:33
1367
原创 Nginx yum 安装
1、使用 yum 安装 nginx 的好处,就是快。依赖于 yum 源所能提供的版本。源码安装的时候,可以参考这个服务脚本。2、直接帮我们安装成系统服务。2、安装的文件七零八落。
2025-05-11 18:12:37
546
原创 Nginx 源码安装成服务
这条命令的主要功能是对名为 nginx-1.21.6.tar.gz 的压缩包进行解压操作。具体来讲,它会先运用 gzip 算法对压缩包进行解压缩,得到一个 tar 包,接着再对这个 tar 包进行解包处理,最终将其中包含的 Nginx 1.21.6 版本的源代码文件释放出来。解压操作会在当前目录下生成一个名为 nginx-1.21.6 的目录,解压出来的所有文件都存放在这个目录中。主进程启动时读取并解析配置文件(如 /etc/nginx/nginx.conf)。/sbin/nginx 启动主进程。
2025-05-11 18:12:05
663
1
原创 K8S 基于本地存储的持久卷
kubernetes-sigs/sig-storage-local-static-provisioner 是 K8S 本地存储的静态外部供应商。所谓静态,是说,虽然它可以帮我们创建 PV 与清理 PV 上的数据,但是真实存储目录的创建,还是需要集群管理员来做。本质上,它还是一种 PV 的静态供应方式。原理英文原文:中文翻译:在每个集群节点上都有一个供应者实例。每个实例负责监控和管理其节点上的本地卷。发现模块发现程序会定期读取配置好的发现目录,寻找没有 PV 的新挂载点,并为它们创建 PV。
2025-05-07 21:39:33
1574
原创 K8S PV 与 PVC 快速开始、入门实战
PV 是集群中由管理员配置的一段网络存储,它是一个集群级别的资源,就像集群中的一块可用磁盘空间,与具体的 Pod 无关。可以将 PV 看作是物理存储在 K8S 中的抽象表示。PVC 是用户对存储资源的请求,它消耗 PV 提供的资源。可以理解为 Pod 需要使用存储时,向集群提出的一个 “申请”,描述了应用程序对存储的需求,如存储容量、访问模式等。PVC 是namespace级别的资源,即它只能在特定的命名空间内使用。
2025-05-06 17:23:23
1311
1
原创 NFS 快速开始
NFS(Network File System)是一种基于 TCP/IP 协议的网络文件系统,它允许客户端通过网络访问远程服务器上的文件,就像在使用自己的计算机一样。
2025-05-02 16:23:28
1094
原创 K8S Secret 快速开始
Kubernetes(K8s)中的是一种用于存储和管理敏感信息(如密码、令牌、证书、API 密钥等)的资源对象。它避免了将敏感数据明文写入配置文件、镜像或代码中,提供了一种更安全的方式来处理机密信息。
2025-04-30 17:49:05
1098
原创 K8S ConfigMap 快速开始
是 Kubernetes 中用于存储数据的 API 对象,支持以键值对(Key-Value)或文件的形式存储配置,允许将配置与镜像解耦,实现配置的集中管理和动态更新。
2025-04-28 18:05:37
1593
原创 K8S Pod 常见数据存储方案
Kubernetes 的卷是 pod 的⼀个组成部分,因此像容器⼀样在 pod 的规范(pod.spec)中就定义了。它们不是独立的 Kubernetes 对象,也不能单独创建或删除。pod 中的所有容器都可以使用卷,但必须先将它挂载在每个需要访问它的容器中。在每个容器中,都可以在其文件系统的任意位置挂载卷。在 .spec.volumes 字段中设置为 Pod 提供的卷。在 .spec.containers[*].volumeMounts 字段中声明卷在容器中的挂载位置。
2025-04-27 23:43:04
895
原创 OpenFeign 超时配置
假设现在有这么一个工程 mall4cloud,它有两个模块,order-openfeign、user。order-openfeign 通过 feign 调用 user。
2025-04-27 14:42:05
676
原创 OpenFeign 自定义拦截器
Slf4j@Override= null) {log.info("从Request中解析出token:{}", access_token);//设置token。
2025-04-27 14:39:40
904
原创 OpenFeign 快速开始
我们今天来学习 OpenFeign,我们将会搭建一个 order-openfeign 服务,通过 openfeign 调用 user 服务。
2025-04-26 11:42:54
918
原创 Nacos 快速开始
Spring Cloud 项目接入 Nacos 步骤如下:1、启动 nacos2、pom.xml 中加入 nacos、loadbalancer 依赖--Spring Cloud Alibaba Nacos 注册中心客户端 -->-- 新版本的 Nacos 不再依赖 Ribbon -->3、 application.yml 配置服务名、nacos 地址spring:cloud:nacos:discovery:server-addr: nacos 地址name: 服务名。
2025-04-10 22:53:02
753
原创 Spring Security6 从源码慢速开始
到此,我们先小结一下,介绍一下几个组件。3.2.1、Authentication 认证信息接口Authentication 对象在 Spring Security 中有两个主要目的:1)封装用户身份验证的凭证作为 AuthenticationManager 的输入,用于封装(用户提供的)用于身份验证的凭证。在这种情况下使用时,isAuthenticated()返回 false。可以是用户名密码,也可以是短信验证、二维码、指纹。具体取决于你自己的认证方式,由自己扩展。2)表示当前经过身份验证的用户。
2025-04-10 20:35:18
1171
1
原创 Gateway 网关 快速开始
假设我们现在有一个断言,它会根据请求头里面有没有我们配置的用户权限,来决定路由转发。我们看看在这个场景下,用自定义路由断言工厂怎么来实现。假设现在我们需要统计某一个微服务的访问量,并将统计数据存放到 Redis。我们看看在这个场景下,用自定义过滤器工厂怎么来实现。
2025-04-06 17:14:59
1212
原创 Nacos config 配置中心 基于 profile 配置
在使用 Nacos 配置中心的时候,如果遇到多套环境下的不同配置,其实有很多种解决办法:1、一种是基于命名空间的方案。2、另一种,则是基于 profile 的方案。
2025-04-01 16:10:11
746
原创 Nacos config 配置中心 快速开始
spring.cloud.alibaba.com 已移步到 sca.aliyun.com,所以官方案例。的基础上新建一个子模块,名字叫 nacos-config。可以看到配置信息几乎实时被修改。可以看到配置信息被正确读取到。记得在父工程添加模块。注意选择自己的版本。
2025-04-01 10:55:31
1260
原创 IDEA 接入 Skywalking Agent ClassNotFoundException
使用 VM options:第一次启动报:改为:上报成功》》
2025-03-27 17:13:31
553
原创 不负热爱--10 万次访问纪念~~
所以,对于一些主流的微服务技术,把它们学好、学精,写写博文,做做笔记,既方便知识的传播,又方便自己以后查阅,还是很有必要的。不同的是,淘宝店卖的是商品,博客卖的是你这个人。有些东西,如果我们自己写出来的时候,都一知半解的,那么分享出来,轻则贻笑大方,重则误人子弟。当时公司叫我落地Sonarqube,CSDN 找了一圈,发现都是基于流水线的,后来自己尝试基于 Git hook 实现了一版,发现效果不错,所以写了一篇博文记录了一下,没想到有 2 千多的访问量,后面就开始陆陆续续、认认真真地写博客了。
2025-03-19 16:41:12
400
1
原创 Java 生成图形验证码
图形验证码是一种广泛应用于互联网领域的安全验证机制,它通过向用户展示包含字符、数字、图形等信息的图片,要求用户正确识别并输入其中的内容,以此来区分用户是人类还是机器程序。今天,我们来分析一下 vue3-element-admin 前后端代码,以便抽离出一套通用的图形验证码实现。vue3-element-admin 的前后端环境搭建,可以看。让我们致敬开源的力量!
2025-03-11 16:46:06
778
原创 vue3-element-admin 前后端本地启动联调
点击验证码,能进入后端 com.youlai.boot.shared.auth.controller.AuthController#getCaptcha 断点中,就证明前后端启动成功,可以愉快地玩耍拉~~脚本完成数据库创建、表结构和基础数据的初始化。修改MySQL、Redis连接为本地配置;的 main 方法完成后端项目启动;验证项目启动是否成功。
2025-03-11 12:28:30
647
原创 Docker 安装 Nacos 2.1.1(单机版)
例如,在上面的例子中,Nacos 容器可以通过 mysql 这个名称来访问 MySQL 容器,而不需要知道其具体的 IP 地址。此外,当某个容器重启后,它的 IP 地址可能会改变,但是容器名称不会变,因此使用名称来进行容器间通信更加稳定可靠。这里的 mysql_nacos_network 是你的自定义网络的名字,你可以根据需要更改它。这种方式适合于 mysql 容器已经创建,且没有创建网络的情况,当 mysql 容器重启时,IP 是会变的,这个时候,nacos 就连不上了。注意不能写 127.0.0.1。
2025-03-06 23:56:50
1334
原创 Docker 安装 Redis 7.0.10
因为该配置和 docker run 中 -d 参数冲突,会导致容器一直启动失败,所以要设置为 no,默认也是 no。1、允许 redis 远程连接,开启表示绑定本机IP,所以必须注释掉。2、开启 redis 验证,开启表示远程连接 redis 需要密码。daemonize yes 表示后台运行。持久化,默认 no,可打开。
2025-03-06 14:06:36
1007
原创 Java 调试模式下 Redisson 看门狗失效
前几天在做分布式锁测试:在调试模式下,lock.lock() 之后打上断点,想测试一下在当前线程放弃锁之前,别的线程能否获取得到锁。发现调试模式下,看门狗机制失效了,Redis 上 30 秒后,锁就没了:看门狗失效尝试改为 Thread.sleep 之后就可以了:看门狗正常会现有一个 30 秒的锁,倒计时到 20 秒的时候,又续期为 30 秒,就这样跑了 40 秒以后,锁释放。
2025-02-27 13:58:11
345
原创 Spring Retry 实现乐观锁重试
一张简单的秒杀商品SKU表。使用 version 字段做乐观锁。使用 unsigned 关键字,限制 int 类型非负,防止库存超卖。该方法的目的,是为了进行库存更新,当乐观锁版本号有冲突时,对方法进行休眠重试。该方法在测试环境还能正常跑,到了生产环境,却频繁报"请刷新后重新取消!仔细分析后发现,测试环境的MYSQL数据库全局隔离级别是,READ-COMMITTED(读已提交)。而生产环境是 REPEATABLE_READ(可重复读)。
2025-02-26 17:49:49
744
原创 K8S Deployment 实现 金丝雀(灰度) 发布
Deployment pause 的金丝雀发布是一种伪金丝雀发布。在滚动升级过程中,想要在⼀个确切的位置暂停滚动升级无法做到。无法实现流量的按比例分配。需要恢复更新才能执行回滚。相当于将有问题的版本全部更新完才能回滚,将影响面扩大化了。在现代云原生环境中,有许多其他工具和技术可以帮助实现金丝雀发布,如Kubernetes的服务网格Istio、负载均衡器配置等。这些工具允许细粒度控制流量分配,使得从A/B测试到完整的金丝雀发布变得更为容易实现。
2025-02-06 12:30:48
1239
2
自己动手写Struts.pdf
2013-05-04
datax Cassandra 导入 lindorm 引擎
2024-02-03
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人