容器引擎说明——Contianerd与Docker的区别以及Containerd换源操作 容器引擎是Kubernetes最重要的组件之一,负责管理镜像和容器的生命周期。Kubelet通过Container Runtime Interface (CRI) 与容器引擎交互,以管理镜像和容器。表1 容器引擎对比。
夜莺监控使用指南 本文用于解决在部署和应用夜莺监控中遇到的一些问题以及官方文档缺失的某些步骤可能会遇到的坑。自带的插件配置已经比较完善了,但是更改配置后,需要重启。这样在监控前端才能看到插件的监控数据。前端已经可以看到安装了。机器的相关监控信息。
使用containerd作为容器运行时拉取镜像的方法 k8s v1.24版本后默认使用containerd作为容器运行时,很多镜像库使用的是gcr.io,国内可能无法成功拉取。接下来将通过搭建Metrics Server来演示该情况的解决方法。
【The connection to the server localhost:8080 was refused - did you specify the right host or port?】 k8s报错:The connection to the server localhost:8080 was refused - did you specify the right host or port?
使用curl发送带有多个参数的请求遇到的问题 问题:当我使用curl命令发送GET请求且带有多个参数curl 127.0.0.1:8000/api/v1/tags?state=2&name=1这样写参数只能捕获到第一个,且会报错,:'name' is not recognized as an internal or external command, operable program or batch file.原因是cmd把&识别为应用程序。解决方法:网上有些解决方法是使用\对&进行转义,即:curl 127.
golang性能调优工具pprof使用注意事项 前言pprof是一个非常强大的golang性能调优工具,在win10环境下使用其web可视化功能时可能会出现问题,这里记录下解决方案。问题当我们输入web后应该会弹出web可使界面,但是如果没有安装过gvedit会报错:Failed to execute dot. Is Graphviz installed? Error: exec: "dot": executable file not found in %PATH%解决方案gvedit官网:https://graphviz.gitlab.i
保存微信公众号付费文章至本地的方法 保存微信公众号付费文章至本地的方法微信公众号付费文章完成付费后,并不能右键复制,所以很多优质文章无法保存。本文将详述如何将微信公众号付费文章保存至本地。工具:1. fiddler 用于抓包2. https://zaixianwangyebianji.bmcx.com/ 用于将html文本转换为正常的文章1、抓包打开fiddler工具——选项——HTTPS寻找包含s?__biz=&mid=字段的URL寻找文章主体部分,可以参考查找<div class="rich_m
Golang调度器GMP学习笔记(二) 调度器的设计策略复用线程:避免频繁的创建、销毁线程work stealing当本线程无可运行的G时,尝试从其他线程绑定的P偷取G,而不是销毁线程hand off当本线程因为G进行系统调用阻塞时,线程释放绑定的P,把P转移给其他空闲的线程执行利用并行GOMAXPROCS抢占Go中,一个goroutine最多占用CPU 10ms,防止其他goroutine被饿死。其他语言的协程要等待一个协程主动让出CPU才执行下一个协程全局G队列在新的调度器中依然有全局G队列,
Golang调度器GMP学习笔记(一) 调度器的由来单进程时代的问题单一执行流程,计算机只能一个任务一个任务处理进程阻塞所带来的CPU时间浪费多进程、多线程的问题设计变得复杂进程/线程的数量越多,切换成本就越大多线程伴随着同步竞争(锁、资源冲突等)多进程、多线程的壁垒高内存占用高CPU调度消耗协程的问题N:1无法利用多个CPU出现阻塞的瓶颈1:1和多线程/多进程模型无异切换协程成本代价反而变得昂贵M:N能够利用多核过
Flask之前后端分离restful api学习笔记(二)—— 自定义错误返回、AOP思想解决全局错误返回 具体源码:https://github.com/LMFrank/Flask_api自定义错误返回Flask_api/app/libs/error.pyfrom flask import request, jsonfrom werkzeug.exceptions import HTTPExceptionclass APIException(HTTPException): code = 500 msg = 'Sorry, we make a mistake!' error_
Flask之前后端分离restful api学习笔记(一)——Redprint 该项目参考https://coding.imooc.com/class/220.html,深入理解Flask前后端分离场景,在Flask框架基础上进行了一定的扩展来满足需求。具体源码:https://github.com/LMFrank/Flask_apiRedpointBlueprint(蓝图)的缺点:Blueprint本身不是用来拆分视图函数的,应该是用来模块级别的拆分写路由时可能过于繁琐(v1/book/get和v1/book/delete)当然,上述并不满足restful风格,但
在循环迭代器变量上使用goroutines所引发的问题 问题在爬虫项目中,有一步开启了goroutine,并且内部使用了循环变量/*...*/for _, item := range result.Items { go func() { e.ItemChan <-item }()}/*...*/我希望能够按照循环输出不同的item,但实际输出了很多相同的item,这就是在循环迭代器变量上使用goroutines所引发的问题实例代码:for i := 0; i < 10; i++ { fmt.Println(i
使用requests时报错:requests.exceptions.SSLError: HTTPSConnectionPool 示例代码:import requestsr = requests.get('https://www.12306.cn')print(r.status_code)报错:requests.exceptions.SSLError: HTTPSConnectionPool(host='某某某网站', port=443): Max retries exceeded with url: /login/ (Caused by SSLError(SSLError("bad handshake: Error([(
Sql经典50题练习(未完) 文章目录Sql经典50题建表插入数据题目1. 简单查询2. 汇总分析3. 复杂查询Sql经典50题建表学生表CREATE TABLE student (s_id VARCHAR(30),s_name VARCHAR(30) NOT NULL,s_birth date NOT NULL,s_sex VARCHAR(10) NOT NULL,PRIMARY KEY(s_id));成绩表CREATE TABLE score (s_id VARCHAR(30),c_id V
Redis总结(二)—— 缓存穿透、缓存击穿、缓存雪崩 文章目录1. 缓存穿透2. 缓存击穿3. 缓存雪崩4. 应对总结1. 缓存穿透同一时刻,大量的并发请求数据库中不存在的信息,他既不会命中缓存,也不会命中数据库,但是他会查找数据库解决方案:在接口层增加校验,比如用户鉴权校验,参数做校验,不合法的参数直接代码Return,比如:id 做基础校验,id <=0的直接拦截等当数据库查询结果为空时,数据也被缓存,但缓存有效期设置较短,以免影响正常数据的缓存布隆过滤器:利用高效的数据结构和算法快速判断出你这个Key是否在数据库中存在,不存
Redis总结(四)—— 复制、哨兵 文章目录1. 复制2. 哨兵1. 复制Redis的复制功能分为同步(sync)和命令传播(command propagate)两个操作:同步:将从服务器的数据库状态更新至主服务器当前所处的数据库状态命令传播:在主服务器的数据库状态被修改, 导致主从服务器的数据库状态出现不一致时, 让主从服务器的数据库重新回到一致状态复制过程:从节点执行 slaveof [masterIP] [masterPort],保存主节点信息。从节点中的定时任务发现主节点信息,建立和主节点的 Sock