HPA 使用自定义指标进行伸缩
HPA 使用自定义指标进行伸缩Kubernetes 默认提供 CPU 和内存作为 HPA 弹性伸缩的指标,如果有更复杂的场景需求,比如基于业务单副本 QPS 大小来进行自动扩缩容,可以考虑自行安装 prometheus-adapter 来实现基于自定义指标的 Pod 弹性伸缩。
实现原理Kubernetes 提供了 Custom Metrics API 与 External Metrics API 来对 HPA 的指标进行扩展,让用户能够根据实际需求进行自定义。
prometheus-adapter 对这两种 API 都有支持,通常使用 Custom Metrics API 就够了,本文也主要针对此 API 来实现使用自定义指标进行弹性伸缩。
前提条件
部署有 Prometheus 并做了相应的自定义指标采集。
已安装 helm 。
业务暴露监控指标这里使用Promethues+SpringBoot结合的指标暴露服务,
该示例程序暴露了 httpserver_requests_total 指标,记录 HTTP 的请求,通过这个指标可以计算出该业务程序的 QPS 值。
部署业务程序将前 ...
HPA 使用自定义指标进行伸缩
Spring的IOC容器
Promethues结合Springboot
Promethues结合Springboot项目地址:https://gitee.com/sssuperbear/promethues-metricdemo.git
Metrics指标类型以及使用场景:
Counter,只增不减的计数器
Gauge,可增可减的仪表盘
Histogram,自带buckets区间用于统计分布统计图
Summary, 客户端定义的数据分布统计图 除了上述方法我们也可以通过拦截器/过滤器:用于统计所有应用请求的情况等
导入依赖12345678910<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId></dependency><dependency> <groupId>io.micrometer</groupId> <artifactId>microme ...
Matplotlib绘图技巧
Matplotlib绘图技巧x轴y轴有小数123from matplotlib.ticker import MaxNLocatorplt.gca().xaxis.set_major_locator(MaxNLocator(integer=True))plt.gca().yaxis.set_major_locator(MaxNLocator(integer=True))
Python中Matplotlib的点(绘制散点图)
常用标记点形状:
12345678910111213141516171819202122‘.’:点(point marker)‘,’:像素点(pixel marker)‘o’:圆形(circle marker)‘v’:朝下三角形(triangle_down marker)‘^’:朝上三角形(triangle_up marker)‘<‘:朝左三角形(triangle_left marker)‘>’:朝右三角形(triangle_right marker)‘1’:(tri_down marker)‘2’:(tri_up marker)‘3’:(tri_le ...
一些简单题
NC120 二进制中1的个数描述
输入一个整数 n ,输出该数32位二进制表示中1的个数。其中负数用补码表示。
示例1
输入:
110
返回值:
12
说明:
1十进制中10的32位二进制表示为0000 0000 0000 0000 0000 0000 0000 1010,其中有两个1。
示例2
输入:
1-1
返回值:
132
说明:
1负数使用补码表示 ,-1的32位二进制表示为1111 1111 1111 1111 1111 1111 1111 1111,其中32个1
思路:
计算机中存储数据都是补码的形式
正数的反码和补码是它本身
负数的反码是除符号位外的相反数,补码是反码加一
补码为反码+1
负数在计算机中存储形式为补码
负数右移符号位补1
采用与位左移代替数字右移
解答:
1234567891011public class Solution { public int NumberOf1(int n) { int ans = 0; int flag = 1; while ...
论文添加引用标签
论文添加引用标签设置引用序号
References中选中引用的文章
定义新编号格式
在编号格式中选择文献引用序号[1]
序号引用插入文章中
鼠标插入要引用的位置
点击插入——交叉引用
选择你引用的文章编号
更新序号
右键需要更新的序号点击更新域
对所有引用更新
ctrl+a全选文章
按F9快捷更新
参考
word中自动生成参考文献引用及自动更新文献编号
递归
NC68 跳台阶描述一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个 n 级的台阶总共有多少种跳法(先后次序不同算不同的结果)。
数据范围:0≤n≤40
要求:时间复杂度:$O(n)$ ,空间复杂度: $O(1)$
示例1输入:
12
返回值:
12
说明:
1青蛙要跳上两级台阶有两种跳法,分别是:先跳一级,再跳一级或者直接跳两级。因此答案为2
示例2输入:
17
返回值:
121
示例3输入:
10
返回值:
10
思路:
你可以想如果青蛙当前在第n级台阶上,那它上一步是在哪里呢?
显然,由于它可以跳1级台阶或者2级台阶,所以它上一步必定在第n-1,或者第n-2级台阶,也就是说它跳上n级台阶的跳法数是跳上n-1和跳上n-2级台阶的跳法数之和。
设跳上 $i$级台阶有 $f(n)$ 种跳法,则它跳上n级的台阶有$f(n)=f(n-1)+f(n-2)$种跳法。
解答:123456789101112public class Solution { public int jumpFloor(int target) { ...
堆栈
NC76 用两个栈实现队列用两个栈来实现一个队列,使用n个元素来完成 n 次在队列尾部插入整数(push)和n次在队列头部删除整数(pop)的功能。 队列中的元素为int类型。保证操作合法,即保证pop操作时队列内已有元素。
数据范围: n\le1000n≤1000
要求:存储n个元素的空间复杂度为 O(n)O(n) ,插入与删除的时间复杂度都是 O(1)O(1)
示例1
输入:
1["PSH1","PSH2","POP","POP"]
返回值:
11,2
说明:
1234"PSH1":代表将1插入队列尾部"PSH2":代表将2插入队列尾部"POP“:代表删除一个元素,先进先出=>返回1"POP“:代表删除一个元素,先进先出=>返回2
示例2
输入:
1["PSH2","POP","PSH1","POP"]
返回值:
12,1
思路:
pu ...
手机拍照技巧
自拍
灯光在头顶,正午拍照,光源在头顶,脸上会有非常明显的三角形投影,不适合自拍。
脸部朝向灯光的方向,避免顶光在脸部形成强烈的投影
带个帽子
室内怎么让自拍照更美?靠近窗户的时候,逆光,脸部光线不好。
换个方向,面向光源,逆光自拍会看到脸部的瑕疵(颗粒,皱纹等等),顺光自拍可以减少脸部的瑕疵。
自拍角度决定你的胖瘦。
低于30°的仰拍角,容易拍出圆乎乎的大脸
手机保持30-45°的仰拍角度,更容易拍出巴掌脸与尖下巴
脸大脸圆?学会遮挡术
利用树叶花朵等作为前景,虚化并遮住部分脸,即显得脸小又增加画面趣味。(借助道具,手、围巾、帽子、花花草草。)
还可以用双手或者单手托脸既可以遮住部分脸又显得可爱
借助道具,比如饮料杯遮住部分脸
怎么让自拍照看起来不像自拍照
借助手机自拍杆+定时遥控器
放在桌子或者窗台+定时自拍
全身照瞬间拥有大长腿
错误角度:俯拍容易拍的比本人显矮
蹲下来采用仰拍角度
脚与地面的留白一定要少留地面
拍照的构图
黄金分割,拍摄人像不知道把任务放置于画面哪个位置的时候,置于黄金分割点是最稳妥的构图方法。
...
PsTips
[ 画笔增大
] 画笔减小
ctrl+i 反向
ctrl+t 自由变换工具
调出红色非选区遮罩:快捷键shift+alt + 点