自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

matrixlzp的博客

当机器像人一样思考,编程技巧将会过时

  • 博客(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

原创 Nginx 使用 Keepalived 搭建 nginx 高可用

两台装有 nginx 的 CentOS 虚拟机。

2025-05-11 18:11:40 1389

原创 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 日志配置

在 order-openfeign 中,定义一个配置类@Bean。

2025-04-26 11:44:08 830

原创 OpenFeign 快速开始

我们今天来学习 OpenFeign,我们将会搭建一个 order-openfeign 服务,通过 openfeign 调用 user 服务。

2025-04-26 11:42:54 918

原创 K8S Service 原理、图例——深度好文

一组功能相同的 pod。

2025-04-25 16:07:02 1677 1

原创 Seata 分布式事务 快速开始

假设现在有这么order、product,order 通过 feign 调用 product。

2025-04-22 17:18:41 974

原创 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 配置中心权限管理

记得 开启 权限校验,其他的在界面操作就可以,很简单。

2025-04-01 11:00:04 527

原创 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 安装 Mysql 8.0.30

【代码】Docker 安装 Mysql 8.0.30。

2025-03-06 16:22:15 292

原创 Docker 安装 minio

【代码】Docker 安装 minio。

2025-03-06 15:33:25 394

原创 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

原创 Docker 安装常用软件集合

Docker 安装 Mysql 5.7Docker 安装 RabbitMQ 3.12.0

2025-03-06 10:29:47 201

原创 Docker 安装 Rabbitmq

【代码】Docker 安装 Rabbitmq。

2025-03-06 10:03:23 561

原创 Python 课堂点名桌面小程序

人生苦短,我用 Python

2025-02-28 17:43:08 496

原创 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

自己动手写Struts.pdf 只有从第四章开始,挺好的一本书。如果大家喜欢的话,可以去当当网买,我本人也买了一本,就是工作的时候看pdf不教快。对于有兴趣研究Struts源码的朋友很有帮助。

2013-05-04

sonar-scanner-cli-5.0.1.3006-linux.zip

sonar scanner linux

2024-03-11

datax Cassandra 导入 lindorm 引擎

github上的 datax lindorm 引擎的 writter 暂时不支持 BIGINT 类型导入,这个包是找阿里客服定制的。

2024-02-03

空空如也

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

TA关注的人

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