自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(39)
  • 收藏
  • 关注

原创 使用containerd作为容器运行时拉取镜像的方法

k8s v1.24版本后默认使用containerd作为容器运行时,很多镜像库使用的是gcr.io,国内可能无法成功拉取。接下来将通过搭建Metrics Server来演示该情况的解决方法。

2022-12-06 16:47:04 2656

转载 Linux端口是否运行,端口监听

Linux端口是否运行,端口监听

2022-11-15 17:07:38 302

转载 kubernetes中 kube-proxy 的代理模块

kube-proxy 代理模块的四种实现方案

2022-10-19 16:54:45 250

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

2022-09-05 11:28:33 469

原创 记录minikube start无法进行的问题

记录minikube start无法进行的问题。

2022-08-04 16:26:33 514

原创 MySQL8.0新增用户及修改加密规则

Mysql8.0相较于5.6版本在新增用户以及加密规则都有更改,记录下踩坑

2022-07-08 10:05:30 1281

原创 使用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.

2021-06-07 18:31:58 2201

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

2021-06-01 16:45:53 1282

原创 保存微信公众号付费文章至本地的方法

保存微信公众号付费文章至本地的方法微信公众号付费文章完成付费后,并不能右键复制,所以很多优质文章无法保存。本文将详述如何将微信公众号付费文章保存至本地。工具:1. fiddler 用于抓包2. https://zaixianwangyebianji.bmcx.com/ 用于将html文本转换为正常的文章1、抓包打开fiddler工具——选项——HTTPS寻找包含s?__biz=&mid=字段的URL寻找文章主体部分,可以参考查找<div class="rich_m

2021-01-03 13:01:55 11153 3

原创 Golang调度器GMP学习笔记(二)

调度器的设计策略复用线程:避免频繁的创建、销毁线程work stealing当本线程无可运行的G时,尝试从其他线程绑定的P偷取G,而不是销毁线程hand off当本线程因为G进行系统调用阻塞时,线程释放绑定的P,把P转移给其他空闲的线程执行利用并行GOMAXPROCS抢占Go中,一个goroutine最多占用CPU 10ms,防止其他goroutine被饿死。其他语言的协程要等待一个协程主动让出CPU才执行下一个协程全局G队列在新的调度器中依然有全局G队列,

2020-09-10 15:40:18 216

原创 Golang调度器GMP学习笔记(一)

调度器的由来单进程时代的问题单一执行流程,计算机只能一个任务一个任务处理进程阻塞所带来的CPU时间浪费多进程、多线程的问题设计变得复杂进程/线程的数量越多,切换成本就越大多线程伴随着同步竞争(锁、资源冲突等)多进程、多线程的壁垒高内存占用高CPU调度消耗协程的问题N:1无法利用多个CPU出现阻塞的瓶颈1:1和多线程/多进程模型无异切换协程成本代价反而变得昂贵M:N能够利用多核过

2020-09-08 16:08:52 193

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

2020-08-17 11:24:25 460 1

原创 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风格,但

2020-08-17 11:23:16 518

原创 在循环迭代器变量上使用goroutines所引发的问题

问题在爬虫项目中,有一步开启了goroutine,并且内部使用了循环变量/*...*/for _, item := range result.Items { go func() { e.ItemChan <-item }()}/*...*/我希望能够按照循环输出不同的item,但实际输出了很多相同的item,这就是在循环迭代器变量上使用goroutines所引发的问题实例代码:for i := 0; i < 10; i++ { fmt.Println(i

2020-07-22 22:38:51 2361 1

原创 使用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([(

2020-07-20 22:02:50 3335

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

2020-07-02 22:50:16 410

原创 Redis总结(二)—— 缓存穿透、缓存击穿、缓存雪崩

文章目录1. 缓存穿透2. 缓存击穿3. 缓存雪崩4. 应对总结1. 缓存穿透同一时刻,大量的并发请求数据库中不存在的信息,他既不会命中缓存,也不会命中数据库,但是他会查找数据库解决方案:在接口层增加校验,比如用户鉴权校验,参数做校验,不合法的参数直接代码Return,比如:id 做基础校验,id <=0的直接拦截等当数据库查询结果为空时,数据也被缓存,但缓存有效期设置较短,以免影响正常数据的缓存布隆过滤器:利用高效的数据结构和算法快速判断出你这个Key是否在数据库中存在,不存

2020-07-01 22:39:16 175

原创 Redis总结(四)—— 复制、哨兵

文章目录1. 复制2. 哨兵1. 复制Redis的复制功能分为同步(sync)和命令传播(command propagate)两个操作:同步:将从服务器的数据库状态更新至主服务器当前所处的数据库状态命令传播:在主服务器的数据库状态被修改, 导致主从服务器的数据库状态出现不一致时, 让主从服务器的数据库重新回到一致状态复制过程:从节点执行 slaveof [masterIP] [masterPort],保存主节点信息。从节点中的定时任务发现主节点信息,建立和主节点的 Sock

2020-07-01 22:36:18 174

原创 Redis总结(三)—— 持久化

文章目录1. 高可用2. 持久化1. RDB3. AOF4. 持久化选择1. 高可用持久化:持久化是最简单的高可用方法(有时甚至不被归为高可用的手段),主要作用是数据备份,即将数据存储在硬盘,保证数据不会因进程退出而丢失。复制:复制是高可用Redis的基础,哨兵和集群都是在复制基础上实现高可用的。复制主要实现了数据的多机备份,以及对于读操作的负载均衡和简单的故障恢复。缺陷:故障恢复无法自动化;写操作无法负载均衡;存储能力受到单机的限制。哨兵:在复制的基础上,哨兵实现了自动化的故障恢

2020-07-01 22:33:32 180

原创 Redis总结(一)—— 基础

文章目录1. Redis是什么2. Redis和Memcached对比3. Redis为什么快4. 为什么是单线程5. 5种数据类型1. String2. Hash3. List4. Set5. Sorted Set6. 内存回收和内存共享1. 内存回收2. 内存淘汰策略3. 内存共享1. Redis是什么Redis是C语言开发的一个高性能键值对的内存数据库,它属于NoSQL2. Redis和Memcached对比数据类型支持不同Redis支持5种数据类型,Memcached只支持key-va

2020-07-01 22:32:07 186

原创 后续文章将在博客园更新

我的博客园地址:https://www.cnblogs.com/LMFrank/

2020-06-26 22:07:21 154

原创 MySQL总结(一)—— 架构、数据类型、引擎

文章目录1. 关系型数据库2. Mysql架构3. 数据类型3. Mysql存储引擎1. 关系型数据库关系型数据库(Relational database)是指基于关系模型的数据库。关系模型由关系数据结构、关系操作集合、关系完整性约束三部分组成。完整性约束:实体完整性:表的主键字段不能为空参照完整性:外键参照的完整性用户完整性:基于业务需要自定义的约束2. Mysql架构连接层:最上层是一些客户端和连接服务。主要完成一些类似于连接处理、授权认证、及相关的安全方案。在该层上引入

2020-06-25 16:50:54 185

原创 学习计算机基础以及编程语言的书籍、视频、专业课推荐

计算机入门视频:【计算机科学速成课】[40集全/精校] - Crash Course Computer Science:树莓派出的课程,各个学科都有速成系列。该课程每集短小精悍,抽象的思想贯穿始终。可以作为入门课程,了解整个CS的概况。官网链接:https://cs50.harvard.edu/college/2020/spring/CS50:哈佛大学的CS50,一门非常好的通识类课程,老师很有激情操作系统视频操作系统哈尔滨工业大学李治军老师南京大学 计算机系统基础(一)主讲:袁春

2020-05-20 00:19:43 425

原创 python动态类型在django-redis里的坑

问题在django项目有如下场景:使用django-redis从redis中读取数据并且与请求数据完成比对,比如短信验证码的比对。依赖包:django-redis==4.11.0djangorestframework==3.11.0SMSCodeView.check_SMSCode方法:def check_SMSCode(mobile): """ 获取短信验证码 ...

2020-04-25 00:41:59 387

原创 使用docker-compose连接mysql以及8.0版本遇到的身份验证问题解决方案

docker-compose使用Docker部署环境非常方便,Compose项目是 Docker 官方的开源项目,负责实现对 Docker 容器集群的快速编排。它允许用户通过一个单独的docker-compose.yml模板文件(YAML 格式)来定义一组相关联的应用容器为一个项目。部署mysql容器根据我的习惯,我将容器放在/usr/local/docker目录下:$ mkdir my...

2020-04-09 15:41:53 2077

原创 docker-compose下载太慢解决方法

从github上下载docker-compose会很慢,或者直接报错网上有提供加host的方法:进入/etc/host,加上54.231.98.184 github-com.s3.amazonaws.com但是仅仅是能ping通,但依然显示connection refused。所以还是直接换源下载方便:$ curl -L https://get.daocloud.io/docker/co...

2020-04-06 15:14:51 4945

原创 打造Win10+WSL开发环境(2)

文章目录前言正文1. WSL2更新了什么2. Pycharm远程开发2.1 远程服务器的同步设置2.2 设置远程解释器3. 以FastAPI模块示例4. Pycharm自带的REST调试功能小结前言  由于VMware装的虚拟机是挂载在机械硬盘上,启动很慢,加之最近在修改配置文件时搞崩了一直使用的环境(还好有备份完整的虚拟机),所以对于使用VMware开发越来越觉得不爽。在之前的文章中,我详细...

2020-03-22 17:58:19 4299

原创 WSL安装的Ubuntu下vim方向键失效问题解决

网上的诸多办法尝试后还是这个有用:在命令行输入以下命令export TERM=sun-color参考:https://blog.csdn.net/enoch612/article/details/53263334

2020-03-20 17:18:32 997

原创 python学习笔记:多种方法实现装饰器及常见误区

文章目录前言正文1. 闭包2. 装饰器2.1 无参装饰器2.2 被装饰的函数有参数:2.3 装饰器中的return:2.4 带参数的装饰器3. 类装饰器4. wrapt模块常见错误1. 使用functools.wraps()装饰内层函数2. 修改外层变量时记得使用 nonlocal参考前言  大部分的文章在介绍装饰器,基本是以函数实现装饰器为主。事实上,装饰器也可以使用其他方式去实现。正文...

2020-03-19 20:42:38 209

原创 Python学习笔记:使用可变类型时的隐患

前言有时候我们需要初始化一个嵌套着列表的列表,如果我们使用"*"是会带来隐患的,因此需要使用列表推导。示例arrayA = [["_"] * 3] * 3print(arrayA)arrayA[0][0] = 1print(arrayA)...

2020-03-18 17:17:11 179

原创 Python类型注解及inspect模块

前言  在廖雪峰的Python教程web实战day5——编写web框架中使用inspect模块进行函数的检查,这一部分的代码确实比较复杂。因此,结合网上的文章,将我对python注解及inspect模块的理解分享给大家。Python类型注解  在介绍inspect模块之前,先给大家讲解类型注解这个在Python3.5后引入的新特性。  Python是一门动态语言。相较于静态语言需要在申明变...

2020-03-15 17:51:13 818

原创 flask开发微信公众号接入指南

前言之前用flask开发微信公众号时,遇到了诸多问题。因此,写下问题的解决方案供大家参考。服务器开发微信公众号需要一个能够提供公网ip的服务器,我直接在腾讯云买了服务器。当然大家也可以使用其他办法,比如花生壳,可以实现动态域名解析,从而让外网也可以访问本地服务器。购买服务器后,需要配置生产环境,建议使用docker打包自己的开发环境,或者拉取别人的镜像,免去配置环境的烦恼,这样后续的pyt...

2020-02-24 17:21:57 1102

原创 Python:类属性、类方法和静态方法

类属性类属性就是给类对象中定义的属性,通常用来记录与这个类相关的特征,类属性不会用于记录具体对象的特征。示例需求:定义一个Animal类;每个物种都有自己的名字;查看通过这个类创建了多少个物种代码:#!/usr/bin/env python# -*- coding: utf-8 -*-class Animal(object): # 类属性 count =...

2019-09-29 23:45:30 181

原创 Ubuntu虚拟机无法上网的解决方法

问题在使用Ubuntu虚拟机时,有时候会遇到无法上网的情况。解决办法一般有更改网络连接模式(桥接模式/NAT模式切换)、重新设置虚拟机网卡等。但是,最近遇到了以上办法均无法解决的情况,甚至恢复了默认页没有效果。在重装系统前,我推荐尝试以下解决方案。解决方法先上命令sudo service network-manager stopsudo rm /var/lib/NetworkMana...

2019-09-29 23:08:42 1255 3

原创 使用Pycharm关联MySQL时报错 Server returns invalid timezone. Go to ‘Advanced‘ tab and set ‘serverTimezon‘

问题使用Pycharm关联MySQL时报错:Server returns invalid timezone. Go to ‘Advanced’ tab and set ‘serverTimezon’原因这是时区错误,MySQL默认的时区是UTC时区,比北京时间晚8个小时。解决方法进入MySQL安装目录下的bin文件夹,打开cmd,输入:mysql -u root -p如果有...

2019-09-27 01:14:07 702

原创 关于Pycharm无法识别自己写的包的解决办法【图文】

前言网上有很多针对该问题的解答,但是细节并没有讲清楚,所以评论里依然有不少人表示无法解决问题。因此,本文会将解决方案尽量讲清楚。问题描述在pycharm里会出现无法识别自己写的包,例如,有如下文件结构:我们在a.py中写了一个方法func(),希望在b.py中导入这个方法,但是会出现如下问题:解决方法首先,右击你希望引用的文件夹的上级目录,点击Mark Directory as:,选...

2019-09-22 16:19:00 8141 9

原创 Tesserocr安装教程与问题解决【图文】

前言大家在学习爬虫验证码识别时,有时候会用到OCR识别,而tesseracr库即为对tesseract做的python封装。因此,我们需要安装tesseract。在安装过程中,我遇到了一些问题,在这里分享给大家。本篇文章主要是讲win10环境下,tesserocr的安装。安装步骤1、安装tesseract在win10下,安装tesseract可以进入该网址进行下载https://digi...

2019-09-10 20:04:23 4383

原创 爬取房天下新房、二手房房源数据(scrapy-redis分布式爬虫)

前言该项目基于Scrapy-Redis框架实现分布式爬虫。其中,我使用了自身电脑(win10)作为master(redis服务器), WSL虚拟机和一台mac作为slave(爬虫服务器),从而实现分布式爬虫。环境搭建开发环境:Win10(WSL-Ubuntu、VBox-Ubuntu) + PyCharm(VSCode) + Cmder + XShellscrapy-redis分布式爬虫需...

2019-09-05 23:38:31 2203 10

原创 打造Win10+WSL开发环境【图文】(1)

1、为什么要使用WSL?在开发过程中,Linux是很有可能要用到的开发环境,而很多新手也想尝试使用Linux。在这里给大家分享一个简单轻量的Linux开发环境——WSL,并且分享配置过程中遇到的一些坑。WSL(Windows Subsystem for Linux)是适用于Linux的Windows子系统这里是引用Windows Subsystem for Linux(简称WSL)是一个为...

2019-09-02 11:40:35 10799

空空如也

空空如也

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

TA关注的人

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