自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

大老表的博客

优雅的python

  • 博客(71)
  • 收藏
  • 关注

原创 flask为每次请求添加一个id标记

场景api日志在打印的过程中,并不是一个请求的日志集中在一起大批量请求的时候,日志打印的很混乱,想要找到单个api请求的日志(很难)需求每次请求之前设置当前api有个特殊的ID,请求另外一个api也生成一个id,并且两个api的id独立,互不影响方法库github地址pip install flask_request_iddemo# coding: utf-8from flask import Flaskapp = Flask(__name__)from flask_

2021-01-19 17:15:21 7233 2

原创 python日志通过不同的等级打印不同的颜色

# coding: utf-8import loggingBLACK, RED, GREEN, YELLOW, BLUE, MAGENTA, CYAN, WHITE = range(8)RESET_SEQ = "\033[0m"COLOR_SEQ = "\033[1;%dm"COLORS = { 'WARNING': GREEN, 'INFO': WHITE, 'DEBUG': BLUE, 'CRITICAL': YELLOW, 'ERROR': RED

2021-01-12 16:40:58 5733 2

原创 k8s二进制安装-1,准备工作

准备工作 每台机子都执行关闭selinuxif [[ $(getenforce) -eq 'Enforcing' ]]then setenforce 0;sed -i 's/=enforcing/=disabled/' /etc/selinux/config;fi关闭防火墙systemctl stop firewalldsystemctl disable firewalld关闭swapswapoff -ased -i '/swap/s/^/#/' /etc/fstab添加环境变量

2021-01-08 15:02:14 5099

原创 gunicorn的命令参数解释

gunicorn -w 200 -b host:port uwsgi:application-w-w INT, --workers INT The number of worker processes for handling requests.-w 后面假一个数字表示 处理请求的最大进程数–threads INT同理处理请求的最大线程数-b-b ADDRESS, --bin...

2019-11-22 12:56:43 7693

原创 flask开启异步任务

场景我们的服务在接口中可能会调用一个函数,而这个函数运行的状态我们需要在另外一个接口查看,celery需要消息队列,但是过于复杂,对于不适用消息队列的服务,我们就需要一个异步的操作,开启了那个异步的任务,但是我们能够直接返回创建成功的状态from concurrent.futures import ThreadPoolExecutorexecutor = ThreadPoolExecutor...

2019-09-27 16:36:25 6310

原创 Django中使用Websocket

websocket的配置 Daphne + Channels常规的视图函数进行的是http请求,Django中使用channels库将websocket请求添加到部分子路由中1,在项目同名子目录下添加routing,py文件# mysite/routing.pyfrom channels.routing import ProtocolTypeRouterapplication = P...

2019-09-09 02:07:43 6103

原创 kafka的理论知识(干货)

kafkakafka的组件Created with Raphaël 2.2.0开始producer(发送消息:生产者)kafka集群consumer(消息接受者:消费者)结束kafka依赖zookeeper保证系统可用性集群保存一些mate信息(元)Topics一个topics可以看作为一类信息每个topics分为多个partition(区)每个partition在存储层面是a...

2019-09-09 01:55:50 5096

原创 Django中对路由接口可视化的插件使用

配置环境pip install drf_yasgpip install drf_generatorspip install packaging配置路由from drf_yasg import openapi # from rest_framework import permissionsfrom drf_yasg.views import get_schema_view...

2019-09-06 01:06:19 5384 1

原创 centos安装指定版本的openssl

下载地址官网地址:https://www.openssl.org/source腾讯云地址:http://mirrors.cloud.tencent.com/openssl/source/这里以openssl-1.1.1e为例下载安装包wget https://mirrors.cloud.tencent.com/openssl/source/openssl-1.1.1e.tar.gz安装依赖yum install -y zlib zlib-develyum install -y gcc

2021-12-22 17:00:04 2714

原创 使用openssl签发服务端、客户端证书

1,生成ca证书1,生成ca.keyopenssl genrsa -out ca.key 10242,生成csr文件openssl req -new -out ca.csr -key ca.key3,创建根证书,有效期10年openssl x509 -req -in ca.csr -out ca.crt -signkey ca.key -CAcreateserial -days 36502,生成服务端证书1,生成服务端私钥server.keyopenssl genrs

2021-12-22 16:52:13 1351

原创 python 加密字符串

from Crypto.Cipher import AESimport base64BLOCK_SIZE = 16 # Bytespad = lambda s: s + (BLOCK_SIZE - len(s) % BLOCK_SIZE) * \ chr(BLOCK_SIZE - len(s) % BLOCK_SIZE)unpad = lambda s: s[:-ord(s[len(s) - 1:])]def aesEncrypt(key, data):

2021-05-24 18:19:53 1781

原创 pip 按照requirements.txt安装到对应的package名称的文件中

假设requirement.txt中的celery==4.0.2当我需要离线下载requirements.txt中的内容,并且按照库名创建一个文件,并将这个版本放到这个目录下#!/bin/bashfile_name=$1base_dir=$2for package_name in `cat $file_name` ; do echo $package_name arr=(`echo $package_name | tr '==' ' '`) dir_name=$

2021-03-29 13:36:47 1293

原创 k8s二进制安装-14,部署corndns

下载corednswget http://xxxx/network/coredns.yamlkubectl apply -f coredns.yaml

2021-02-17 09:34:39 5200 2

原创 k8s二进制安装-13,授权apiserver访问kubelet

cat > apiserver-to-kubelet-rbac.yaml << EOFapiVersion: rbac.authorization.k8s.io/v1kind: ClusterRolemetadata: annotations: rbac.authorization.kubernetes.io/autoupdate: "true" labels: kubernetes.io/bootstrapping: rbac-defaults name

2021-02-17 09:33:34 5448

原创 k8s二进制安装-12,部署网络插件

flannel和calico的选型flannel优点: 部署简单,将网络配置生效在本机的iptables中缺点: 依赖docker网络,长时间不使用,会和docker0桥不在同一个网段,kube-proxy无法代理容器内部的网络calico优点: 支持ipvs和ipv6,将所有的网络规则写入etcd数据库中缺点: 部署复杂,保罗多种网络配置,需要一点的网络支持才能使用二进制和pod管理的选型网路组件在k8s中很重要,但是一般都是最后一步部署,完全你可以依赖的k8s环境进行自动部署网

2021-02-17 09:32:27 5102

原创 k8s二进制安装-11,cni配置

下载cni网络wget http://xxxx/1.18/cni-plugins-linux-amd64-v0.8.6.tgz安装mkdir -p /opt/cni/bintar zxvf cni-plugins-linux-amd64-v0.8.6.tgz -C /opt/cni/bin

2021-02-17 09:31:12 5643

原创 k8s二进制安装-10,安装kube-proxy

创建证书请求文件cd /usr/local/src/ssl/cat > kube-proxy-csr.json <<EOF{ "CN": "system:kube-proxy", "hosts": [], "key": { "algo": "rsa", "size": 2048 }, "names": [ { "C": "CN", "ST": "ShangHai", "L": "ShangHai",

2021-02-17 09:29:08 5539 1

原创 k8s二进制安装-9,安装kubelet

cp /usr/local/src/kubernetes/server/bin/kubelet /opt/kubernetes/bincp /usr/local/src/kubernetes/server/bin/kube-proxy /opt/kubernetes/bin创建配置文件cat > /opt/kubernetes/cfg/kubelet.conf << EOFKUBELET_OPTS="--logtostderr=false \\--v=2 \\--hostn.

2021-02-17 09:26:39 5727

原创 k8s二进制安装-8,安装docker

下载dockerwget http://xxxx/docker-19.03.9.tgztar zxvf docker-19.03.9.tgzmv docker/* /usr/binsystemd管理dockercat > /usr/lib/systemd/system/docker.service << EOF[Unit]Description=Docker Application Container EngineDocumentation=https://docs.do

2021-02-17 09:25:13 5174

原创 k8s二进制安装-7,安装kube-scheduer

cat > /opt/kubernetes/cfg/kube-scheduler.conf << EOFKUBE_SCHEDULER_OPTS="--logtostderr=false \--v=2 \--log-dir=/opt/kubernetes/logs \--leader-elect \--master=127.0.0.1:8080 \--bind-address=127.0.0.1"EOFsystemd管理schedulercat > /usr/lib

2021-02-17 09:24:06 5072

原创 k8s二进制安装-6,安装kube-controller-manager

cat > /opt/kubernetes/cfg/kube-controller-manager.conf << EOFKUBE_CONTROLLER_MANAGER_OPTS="--logtostderr=false \\--v=2 \\--log-dir=/opt/kubernetes/logs \\--leader-elect=true \\--master=127.0.0.1:8080 \\--bind-address=127.0.0.1 \\--allocate-

2021-02-17 09:23:21 5323 1

原创 k8s二进制安装-5,安装kube-apiserver

下载kubernetes 二进制文件cd /usr/local/src/wget http://xxxxx/1.19/kubernetes-server-linux-amd64.tar.gz tar xzf kubernetes-server-linux-amd64.tar.gz kubernetescd kubernetes/server/bin/cp kube-apiserver kube-controller-manager kube-scheduler kubectl /opt/kuber

2021-02-17 09:21:55 6092 2

原创 python协程、协程池、协程锁

如何开启协程from gevent import monkey; monkey.patch_socket()import geventdef f(n): for i in range(n): print gevent.getcurrent(), ig1 = gevent.spawn(f, 5)g2 = gevent.spawn(f, 5)g3 = gevent.spawn(f, 5)g1.join()g2.join()g3.join()协程池from ge

2021-01-22 14:49:20 5726 1

原创 k8s二进制安装-4,安装etcd

安装etcdcd /usr/local/srcwget http://***/etcd-v3.4.9-linux-amd64.tar.gztar zxf etcd-v3.4.9-linux-amd64.tar.gzcd etcd-v3.4.9-linux-amd64cp etcd etcdctl /opt/kubernetes/bin/如果集群部署 将上面的四个文件放到node节点的/opt/kubernetes/bin目录下scp etcd etcdctl node_ip:/opt/k

2021-01-08 15:11:23 5198

原创 k8s二进制安装-3,配置ca证书

生成ca配置证书cat > ca-config.json << EOF{ "signing": { "default": { "expiry": "8760h" }, "profiles": { "kubernetes": { "usages": [ "signing", "key encipherment", "server auth",

2021-01-08 15:09:08 5433

原创 k8s二进制安装-2,安装cfssl

安装之前需要安装wget下载wget地址curl -O http://mirror.centos.org/centos/7/os/x86_64/Packages/wget-1.14-18.el7_6.1.x86_64.rpmyum install wget-1.14-18.el7_6.1.x86_64.rpm -y下载创建证书的cfsslcd /usr/local/srcwget http://***/cfssl/cfssl_linux-amd64 --no-check-certifica

2021-01-08 15:07:26 5648

原创 杀死进程的方法

最直接关机最省时间1,查看还有多少关联的进程ps -ef | grep ping 2,排除grep的pidps -ef | grep ping | grep -v grep-3, 获得所有的pidps -ef |grep ping | grep -v grep | awk '{print $2}'-4,通过这些pid 进行循环删除for i in `ps -e...

2020-01-22 14:46:33 5365

原创 mac Python安装pybloomfilter 出现找不到libcrypto的问题

获取新的库brew update && brew upgrade && brew install opensslcd /usr/local/Cellar/openssl/1.0.2t/libsudo cp libssl.1.0.0.dylib libcrypto.1.0.0.dylib /usr/local/lib/建立新的连接sudo ln -s li...

2019-11-14 19:54:40 5623

原创 tcp协议的自学之路

这两天面试中tcp的只是问了很多,也很杂,很多面试官在问的时候,对于功能问的很多最多的就是能干什么?就是辅助http协议啊,做web你觉得这个东西能干什么前面说了ip 协议就是我们在访问127.0.0.1:5000这个微服务器的时候,127.0.0.1 这个就是本地的ip 访问其他的网址要么就是ip 要门就是ip+端口5000 这个就是端口ip 协议是我们需要从我们的网路访问对方的...

2019-11-10 23:56:30 5119

原创 docker 中配置自己的mysql

分为两个方法创建一个mysql的镜像1 最基础的创建容器的方法docker run -d -p 4306:3306-e MYSQL_USER="cjwcjw" 添加用户-e MYSQL_PASSWORD="pwd123" 设置用户的密码-e MYSQL_ROOT_PASSWORD="rootpwd123" 设置root的密码--name mysql 容器名mysql 镜像名-...

2019-10-30 03:48:15 5310

原创 dockerfile编写前端部署的代码

一般来说前后端分离的话部署就是用nginx做转发也可以把前端的代码做成静态的文件server { listen 80; server_name 0.0.0.0; location / { root /usr/share/nginx/html; index index.html index.htm; }}...

2019-10-18 11:06:23 5857

原创 docker-compose.yaml的编写

当我们打包好了镜像的时候,一个一个区整理的时候,也是很浪费功夫,尤其是我们修改了一些代码的时候version: "2"services: mysql: image: harbor.pinlandata.com/pinlan/anji-standalone:mysql hostname: mysql ports: -...

2019-10-18 11:05:17 5459

原创 dockerfile的编写

前面有一些docker的常用命令,这篇文章是我这段时间的一些收获吧,dockerfile的编写,利用dockerfile打包自己想要的镜像(后台的服务)dockerfile可以帮助我们直接打包好我们在服务器上面的操作,这是一种很NB(流氓)的操作,一般我们在服务器部署的时候,会有很多的命令去提前部署,但是docker 镜像打包好了之后,不要启动这个镜像,就可以省去很多的准备工作1, FROM...

2019-10-18 10:51:39 5248

原创 pandas读取sql 保存到excal中

之前也有类似的项目,用的插件过于傻瓜 ,新学的一个小技能pandas具体内层怎么实现,没有深究,但是怎么使用,在下面做出解释import pandas as pdimport pymysqldef fun() return datasql = ""conn = pymysql.connect(database = "",user="",password="",host="",port=...

2019-09-27 16:45:33 5040

原创 centos安装mongodb

-/etc/yum.repos.d/mongodb-org-4.0.repo[mongodb-org-4.0]name=MongoDB Repositorybaseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.0/x86_64/gpgcheck=1enabled=1gpgkey=https://www...

2019-09-09 06:33:21 4891

原创 linux配置zsh终极篇(效率的开始)

安装sudo yum install zsh或者sudo apt-get install zshoh-my-zshsudo wget https://github.com/robbyrussell/oh-my-zsh/raw/master/tools/install.sh -O - | sh切换终端(需要重新进入终端)chsh -s /usr/local/bin/zsha...

2019-09-09 04:16:50 6304

原创 Centos安装python3并设为默认

"""编译安装$ sudo mkdir /usr/local/python3 # 创建安装目录# 下载 Python 源文件$ wget --no-check-certificate https://www.python.org/ftp/python/3.6.0/Python-3.6.0.tgz# 注意:wget获取https的时候要加上:--no-check-certificate...

2019-09-09 02:26:39 5628

原创 mongo数据库的操作(aggtegate聚合操作详解)

"""conn = pymongo.Connection()collection = conn.dbname.collection_name#match用户筛选,相当于sql语句中的where后面的表达式match = {}match['date'] = { '$gte' : '2015-08-21', #大于等于2015年8月21日的 '$lte' : '2015-0...

2019-09-09 02:04:41 5284

原创 mongo数据库的操作(基础篇)

远程登录mongo 地址:端口/库名 -u 用户名 -p 密码查看数据库列表show dbs进入数据库use 数据库名查看当前所在的数据库db创建数据库插入数据,就能创建数据库删除数据库use 数据库名db.dropDatabases()集合的操作(表)列出所有的表show collections创建集合db.createCollection('表...

2019-09-09 02:03:18 5360

原创 mongo数据库的操作(update和insert)

"""update() 方法用于更新已存在的文档。语法格式如下:db.collection.update( <query>, <update>, { upsert: <boolean>, multi: <boolean>, writeConcern: <document> })...

2019-09-09 02:02:04 6925

空空如也

空空如也

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

TA关注的人

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