同花顺做了一张2024年度资产收益图,大家可以看看
LeetCode cheetsheet for C++
数组(vector)
初始化
1 | vector<int> v(size); |
遍历数组
1 | for (int i = 0; i < vec.size(); ++i) { |
数组追加到另一个数组
1 | vec1.insert(vec1.end(), vec2.begin(), vec2.end()); |
排序数组+去重
1 | sort(nums.begin(), nums.end()); |
逆序排序
1 | sort(nums.begin(), nums.end(), greater<int>()); |
二维vector初始化
1 | vector<vector<bool>> visited(rows, vector<bool>(cols, false)); |
使用 Docker Compose 在单节点部署多容器
Docker Compose 是什么
Docker Compose 是一个用于运行多容器应用的工具, 通过一个docker-compose.yml
文件, 配置应用的服务、网络和卷,然后使用简单的命令启动或停止所有服务
为什么需要 Docker Compose
当你有一个包含多个相互依赖的容器应用时,手动管理每个服务的启动、停止以及配置会比较复杂且容易出错
Docker Compose 提供了一种更简便的方法, 在单节点部署多个容器, 使得开发测试环境的一致性得到保证,同时简化了部署过程
示例: 使用Docker Compose 部署一个WordPress站点
下面演示如何使用 Docker Compose 在单个节点上部署一个包含 WordPress 和 MySQL 的简单网站。
1. 安装Docker Compose
官网上查找匹配版本安装, 我直接取最新版本安装
1 | curl -L "https://github.com/docker/compose/releases/download/v2.34.0/docker-compose-linux-x86_64" -o /usr/local/bin/docker-compose |
手把手教你搭建Docker私有仓库
Kubernetes滚动更新实践
前言
在我之前的项目中,对微服务升级采用的做法是删除整个namespace, 再重新应用所有yaml。 这种方式简单粗暴,但是不可避免的导致服务中断,影响了用户体验
为了解决更新服务导致的服务中断问题, Kubernetes提供了一种有效的服务升级方式 —— 滚动更新(Rolling Update)
什么是滚动更新(RollingUpdate)
滚动更新是一种部署策略。 允许用户逐步替换旧的Pod实例为新版本,而不是一次性替换所有Pod,从而实现零停机时间的部署更新。 解决了如下问题:
- 最小化停机时间, 滚动更新可以在不完全停止服务情况下进行,提高用户体验
- 故障恢复, 如果新版本出现问题,可以迅速回滚到之前的稳定版本
- 平滑流量迁移, 避免瞬间全部更新导致的流量冲击和服务中断
RollingUpdate策略有两个重要参数:
- maxUnavailable, 滚动更新时最多可以有多少个Pod不可用。 默认值为25%,这意味着如果有一个包含4个Pod的服务, 更新期间至少有3个Pod可用
- maxSurge, 滚动更新时可以临时超出期望副本数的额外Pod数, 默认值为25%
说明: 对于关键业务, 可以用保守的设置, 比如maxUnavailable=0, maxSurge=1; 较大的maxSurge可以加快更新速度,但增加了集群压力; 根据实际情况调整这两个参数
实践案例
写一个简单的微服务, Pod副本数设置为5, 观察Kubernetes滚动更新过程
过去15年A股的收益率如何?
来看一张经典的图
Rocky Linux 9安装RabbitMQ
环境准备
Rocky Linux 9
安装步骤
安装Signing Keys(签名密钥)
1 | rpm --import https://github.com/rabbitmq/signing-keys/releases/download/2.0/rabbitmq-release-signing-key.asc |
创建repo文件
在/etc/yum.repos.d/目录下创建一个名为rabbitmq.repo的文件,并添加以下内容:
VMware ESXi导出OVA文件中含有ISO文件,如何去除这个ISO
本文字数: 1.2k 阅读时长 ≈ 1 分钟
问题描述
我在VMware ESXi上,用官方Rockylinux minimal ISO装了一台Linux机器。导出OVA文件发现大小有3个G。查看OVA文件,发现有个ISO文件占了2G,这个ISO文件用不到,如何删除?
1 | # tar tvf va.ova |
解决方法
Poweroff虚拟机,修改虚拟机配置,把光驱删掉,再重新导出OVA即可
判断SSH的公钥和私钥是否为一对的方法
使用sshkey-gen命令判断
使用ssh-keygen -y命令可以从私钥文件中提取公钥。例如: 你的私钥文件是id_rsa,执行如下命令:
1 | ssh-keygen -y -f id_rsa > extracted_pubkey.pub |
将提取的公钥保存到extracted_pubkey.pub文件。再和你的公钥文件比较,看文件内容是否相同
1 | diff extracted_pubkey.pub id_rsa.pub |
Python Cheetsheet
整理如下内容:
- 数据结构和算法
- 常用库和使用方法示例
- Flask cheetsheet