- 博客(100)
- 资源 (1)
- 收藏
- 关注
原创 Nacos config 配置中心 基于 profile 配置
在使用 Nacos 配置中心的时候,如果遇到多套环境下的不同配置,其实有很多种解决办法:1、一种是基于命名空间的方案。2、另一种,则是基于 profile 的方案。
2025-04-01 16:10:11
614
原创 Nacos config 配置中心 快速开始
spring.cloud.alibaba.com 已移步到 sca.aliyun.com,所以官方案例。的基础上新建一个子模块,名字叫 nacos-config。可以看到配置信息几乎实时被修改。可以看到配置信息被正确读取到。记得在父工程添加模块。注意选择自己的版本。
2025-04-01 10:55:31
934
原创 IDEA 接入 Skywalking Agent ClassNotFoundException
使用 VM options:第一次启动报:改为:上报成功》》
2025-03-27 17:13:31
483
原创 不负热爱--10 万次访问纪念~~
所以,对于一些主流的微服务技术,把它们学好、学精,写写博文,做做笔记,既方便知识的传播,又方便自己以后查阅,还是很有必要的。不同的是,淘宝店卖的是商品,博客卖的是你这个人。有些东西,如果我们自己写出来的时候,都一知半解的,那么分享出来,轻则贻笑大方,重则误人子弟。当时公司叫我落地Sonarqube,优快云 找了一圈,发现都是基于流水线的,后来自己尝试基于 Git hook 实现了一版,发现效果不错,所以写了一篇博文记录了一下,没想到有 2 千多的访问量,后面就开始陆陆续续、认认真真地写博客了。
2025-03-19 16:41:12
369
原创 Java 生成图形验证码
图形验证码是一种广泛应用于互联网领域的安全验证机制,它通过向用户展示包含字符、数字、图形等信息的图片,要求用户正确识别并输入其中的内容,以此来区分用户是人类还是机器程序。今天,我们来分析一下 vue3-element-admin 前后端代码,以便抽离出一套通用的图形验证码实现。vue3-element-admin 的前后端环境搭建,可以看。让我们致敬开源的力量!
2025-03-11 16:46:06
709
原创 vue3-element-admin 前后端本地启动联调
点击验证码,能进入后端 com.youlai.boot.shared.auth.controller.AuthController#getCaptcha 断点中,就证明前后端启动成功,可以愉快地玩耍拉~~脚本完成数据库创建、表结构和基础数据的初始化。修改MySQL、Redis连接为本地配置;的 main 方法完成后端项目启动;验证项目启动是否成功。
2025-03-11 12:28:30
520
原创 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
1076
原创 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
914
原创 Java 调试模式下 Redisson 看门狗失效
前几天在做分布式锁测试:在调试模式下,lock.lock() 之后打上断点,想测试一下在当前线程放弃锁之前,别的线程能否获取得到锁。发现调试模式下,看门狗机制失效了,Redis 上 30 秒后,锁就没了:看门狗失效尝试改为 Thread.sleep 之后就可以了:看门狗正常会现有一个 30 秒的锁,倒计时到 20 秒的时候,又续期为 30 秒,就这样跑了 40 秒以后,锁释放。
2025-02-27 13:58:11
296
原创 Spring Retry 实现乐观锁重试
一张简单的秒杀商品SKU表。使用 version 字段做乐观锁。使用 unsigned 关键字,限制 int 类型非负,防止库存超卖。该方法的目的,是为了进行库存更新,当乐观锁版本号有冲突时,对方法进行休眠重试。该方法在测试环境还能正常跑,到了生产环境,却频繁报"请刷新后重新取消!仔细分析后发现,测试环境的MYSQL数据库全局隔离级别是,READ-COMMITTED(读已提交)。而生产环境是 REPEATABLE_READ(可重复读)。
2025-02-26 17:49:49
711
原创 K8S Deployment 实现 金丝雀(灰度) 发布
Deployment pause 的金丝雀发布是一种伪金丝雀发布。在滚动升级过程中,想要在⼀个确切的位置暂停滚动升级无法做到。无法实现流量的按比例分配。需要恢复更新才能执行回滚。相当于将有问题的版本全部更新完才能回滚,将影响面扩大化了。在现代云原生环境中,有许多其他工具和技术可以帮助实现金丝雀发布,如Kubernetes的服务网格Istio、负载均衡器配置等。这些工具允许细粒度控制流量分配,使得从A/B测试到完整的金丝雀发布变得更为容易实现。
2025-02-06 12:30:48
1027
2
原创 K8S Deployment 控制器 理论+代码+图例=深入浅出
今天我们来实验 Deployment 控制器(也叫工作负载)。Deployment 是一个非常重要的资源对象,它为 Pod 和 ReplicaSet 提供了,常用于管理无状态应用程序的部署和更新。为 Pod 和 ReplicaSet 提供了声明式的更新能力。所谓指的是用户只需描述,比如定义 Deployment、Service 等资源的 YAML 文件,详细说明资源的属性、副本数量、使用的镜像等信息。Kubernetes 系统会自动对比当前资源的和,然后采取必要的操作,使逐渐趋近并最终达到。
2025-02-05 22:30:41
856
原创 K8S Deployment 实现 蓝绿 发布
蓝绿发布(Blue - Green Deployment)是一种软件部署策略,旨在最大程度减少应用程序停机时间,确保新老版本系统平稳过渡。
2025-02-05 15:18:09
1112
原创 K8S ReplicaSet 控制器
metadata:spec:selector:template:metadata:labels:spec:ports:replicas: 3 副本为3image: hellok8s:1.0 镜像的版本是 1.0selector.matchLabels 必须跟 template.metadata.labels 相匹配。执行并查看# 查看 rsDESIRED 表示期望的副本数是 3。CURRENT 表示当前在运行的副本数是 3。READY 表示当前就绪的副本数是 3。查看 Pod。
2025-01-31 12:03:03
1077
1
原创 K8S 启动探测、就绪探测、存活探测
官网介绍如下1、启动探测 startupProbe检查容器内的应用是否已启动。如果配置了启动探测,它会禁用存活探测和就绪探测,直到启动探测成功为止。如果启动探测失败,kubelet 会将容器杀死,并依据容器重启策略进行重启。如果容器没有提供启动探测,则默认状态为 Success(成功)。这类探针仅在启动时执行,不像存活探针和就绪探针那样周期性地运行。2、就绪探测 readinessProbe决定何时容器准备好开始接受流量。
2025-01-23 16:07:54
1467
1
原创 K8S 容器重启策略
今天我们来实验容器重启策略。如下:Pod的spec中包含一个字段,其可能取值包括Always、OnFailure和Never。默认值是Always。Pod的重启策略(restartPolicy)应用于Pod中的应用容器(也叫主容器,spec.containers定义的容器)和常规的Init容器(初始化容器)。AlwaysOnFailureNever所谓容器终止,就是指容器内运行的主进程终止。假设有如下三个节点的K8S集群:k8s31master是控制节点。
2025-01-19 22:57:29
1244
原创 K8S 亲和性与反亲和性 深度好文
今天我们来实验 pod 亲和性。官网描述如下:一、镜像准备1.1、镜像拉取docker pull tomcat:8.5-jre8-alpinedocker pull nginx:1.14.21.2、镜像导出docker save -o tomcat-8.5-jre8-alpine.tar.gz docker.io/library/tomcat:8.5-jre8-alpinedocker save -o nginx-1.14.2.tar.gz docker.io/lib
2025-01-16 21:29:11
1128
1
原创 K8S 节点选择器
给某个资源打上标签语法:kubectl label [pod|node] 资源名称 key1=value1 key2=value2nodeName 使用节点名称进行匹配nodeSelector 使用节点标签进行匹配同时使用 nodeName 跟 nodeSelector 需要都满足,pod 才能被正确调度删除资源的标签语法:kubectl label [pod|node] 资源名称 key-
2025-01-15 14:57:17
1458
1
原创 Docker save load 镜像 tag 为 <none>
使用docker save -o 镜像文件 镜像ID容易丢失 tag 信息。推荐使用docker save -o 镜像文件 镜像TAG的方式来导入导出镜像。
2025-01-14 20:44:40
551
原创 Linux 给命令创建别名 alias,提高运维效率
最简单和最常用的方法是使用 alias 和 shell 函数来创建命令的缩写。对于大多数用户来说,这两种方法已经足够满足日常需求。
2025-01-08 17:17:47
992
原创 CentOS7 kubeadm 安装 k8s1.31.3
不过需要注意的是,ntpdate 已经被认为是过时的工具,在较新的 Linux 发行版中推荐使用 chrony 或 systemd-timesyncd 来代替,这些工具提供了更先进的特性和服务管理功能,可以持续保持系统时间的准确性。kubelet: 安装在集群所有节点上,用于启动Pod的,kubeadm安装k8s,k8s控制节点和工作节点的组件,都是基于pod运行的,只要pod启动,就需要kubelet。taints: 控制节点的 taints,即节点的标记,用于限制哪些 Pod 可以调度到该节点。
2025-01-06 18:03:45
622
原创 Linux 中 sysctl 和 systemctl 有什么区别?
sysctl主要用于调整内核参数,影响的是操作系统的核心行为。systemctl则是 systemd 的接口,用于控制系统和服务的状态及生命周期。两者虽然名称相似,但功能和应用场景完全不同。
2025-01-02 22:45:57
578
原创 Linux 系统中 .d 目录有什么用?
d目录是 Linux 系统设计中的一个重要概念,它体现了 Unix 哲学中的“一切皆文件”原则,并促进了配置管理的灵活性和可维护性。理解.d目录的工作方式可以帮助你更好地组织和管理系统的配置,同时也让你更容易理解和调试复杂的系统设置。
2025-01-02 20:50:12
747
原创 Linux 笔记 SELinux 常见操作与介绍
SELinux(Security-Enhanced Linux)是 Linux 操作系统中的一种安全模块,旨在提供更细粒度的访问控制。它最初由美国国家安全局(NSA)开发,目的是增强 Linux 系统的安全性。SELinux 通过强制访问控制(MAC, Mandatory Access Control)来补充传统的自主访问控制(DAC, Discretionary Access Control),从而限制进程和用户只能访问它们明确被允许访问的资源。
2024-12-29 22:14:59
969
原创 Java 责任链模式 减少 if else 实战案例
先说缺点:责任链的缺点,是造成类的膨胀。大家仔细观察上面的代码,会发现,责任处理类,好像是把刚开始的 if else 伪代码,分到一个个处理类里面去了而已。而且使用设计模式,它甚至并没有提高代码的执行效率。优点:写代码并不是做外包,写完就扔,它还得考虑可读性、可维护性和可扩展性。可维护性和可扩展性的前提,就是可读性。一段代码如果过几天,连自己都看不明白,那这种代码,它基本就没有什么可维护性了。
2024-11-14 10:59:54
1117
原创 Python 常见 Iterable 可迭代对象(建议收藏)
我们知道,可以直接作用于for循环的对象,像 list,tuple,dict 等;统称为 可迭代对象:Iterable。那 Python 中有哪些常见的 可迭代对象呢?可以通过模块的Iterable类型判断。
2024-11-02 00:05:03
1642
原创 Python 判断键是否存在字典中(新手入门、实战案例)
过尽千帆,依然算法。1、在Python3中,方法已经被废弃,不能再被使用。2、在实际开发中,可以使用in关键字或dict.get()方法来判断键是否存在。3、推荐用 in 关键字,简洁、高效,不容易出错。
2024-10-26 21:50:18
716
原创 Python list 数据去重 (新手入门、实战案例)
如果按列表原来的顺序,输出应该是 [5, 4, 3, 2, 1],结果是 [1, 2, 3, 4, 5]假设有这么一个列表 ['厦门中山路', '厦门医学院', '厦门鼓浪屿', '厦门软件园']['厦门', '中山路', '医学院', '鼓浪屿', '软件园']这种方法简单快捷,但会改变列表中元素的顺序,因为集合是无序的。希望找出列表中的中文分词,并输出无重复分词。
2024-10-24 09:41:24
427
datax Cassandra 导入 lindorm 引擎
2024-02-03
自己动手写Struts.pdf
2013-05-04
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人