自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 docker容器中不建议多个进程

1、每个容器中只运行一个应用程序,则水平伸缩将变得十分容易。例如,当你需要一个Tomcat容器,可以从现有的容器再扩展出一个,但如果你的这个容器中不仅有Tomcat,还有MySQL等其他应用程序,事情就会变得复杂起来。2、每个容器中只运行一个应用程序,可以轻松地将其重新用于其他项目或目的,极大增加复用度。3、每个容器中只运行一个应用程序,出现故障时开发人员能方便地对该故障容器进行问题排查,而不必对整个系统的各个部分进行排查,这也使得其更具有可移植性和可预测性。4、每个容器中只运行一个应用程序,升

2021-11-22 11:37:03 1244

原创 Docker常用命令实操

docker 常用命令实操

2021-08-01 11:19:32 230

原创 记一次自动创建禅道用户实践

背景需求:实现自己的研发协同平台,可以一键免密登录禅道、自动创建禅道用户,从而打通各个系统,达到统一化管理。禅道版本:专业版 9.0.3python版本:3.8.0实践1. 打开禅道后台管理页面,查看禅道API接口针对上述需求,开始进行摸索。因禅道数据库管理严格,不能直接操作数据库写入数据,且为了更友好,决定通过禅道提供的API,进行用户创建。这里不得不吐槽一下禅道的API接口,虽然提供了创建用户的这个API地址,但是参数很明显不全,我创建用户的用户名,...

2021-02-09 10:24:45 1452

转载 Dockerfile概述

Dockerfile文件总结1.Dockerfile文件总结Dockerfile由一行行命令语句组成,并且支持以#开头的注释行。一般地,Dockerfile分为四部分:基础镜像信息、维护者信息、镜像操作指令和容器启动时执行指令。 四部分 指令 基础镜像信息 FROM 维护者信息 MAINTAINER 镜像操作指令 RUN、COPY、...

2021-01-19 09:53:13 165

原创 git常用命令

重置客户端账号密码git config --system --unset credential.helper

2020-07-14 10:17:13 148

原创 python requests post传参data和json的区别

json不管参数是str还是dict类型,如果不指定headers中的content-type,默认为application/json,当参数为dict类型时,request.body中内容为b'{"name":"zhubaoxiang"}' 当参数类型为str时,request.body中内容为b'"{\\"name\\":\\"zhubaoxiang\\"}"',可以看到,json默认会帮你json dumps一下。我们观看requests源码也得出相同结论: def prepare_b

2020-06-23 09:57:46 1039

转载 Nginx与F5会话保持介绍

Nginx是一个很高效稳定的软负载均衡器,最新的版本可以负载均衡HTTP(s),TCP,UDP等多种协议的链接。一般访问量比较大一点的Web站点都会用NGINX做HTTP协议的Web负载均衡,其后端一般是多个PHP或者JAVA中间件。另外NGINX还可以和Keepalived配合防止均衡器的单点故障,这一点要强于F5,A10这一类的硬件负载均衡设备。但是F5,A10等硬件负载均衡器虽然价格昂贵...

2019-12-24 16:12:50 2113

转载 MySQL索引失效情况

1、like是以%开头的查询语句在使用LIKE关键字进行查询的语句中,如果匹配字符串的第一个字符为“%”,索引不会起作用。只有“%”不再第一个位置,索引才会起作用。举例:已知name字段上有索引websites_index。第1个查询语句执行后,rows为5,表示扫描了表中所有的4条数据;第2个查询语句3执行后,rows为1,表示只扫描了1条纪录;第一个查询语句索引没有起到作用。...

2019-12-09 09:34:30 297

原创 Django请求生命周期

django的请求生命周期如下图,记录笔记,后续翻阅。

2019-12-04 19:32:35 171

转载 Elasticsearch Doc与segment原理

0x01 摘要本文主要讲下ES中Doc(文档)和Segment(段)的底层原理。0x02 Doc概念2.1 术语介绍首先我们说几个ES中跟Doc相关的概念,以免后面混淆:Index(索引)这里指ES的索引概念,有1个或多个type,由若干shard分片组成Shard(分片)是一个Lucene索引。一个ES Index分为多个Shard,可分布到不同节点上Doc(文档)...

2019-12-01 22:57:58 579

转载 Elasticsearch各节点分工

ES各种节点的分工1. 客户端节点  当主节点和数据节点配置都设置为false的时候,该节点只能处理路由请求,处理搜索,分发索引操作等,从本质上来说该客户节点表现为智能负载平衡器。独立的客户端节点在一个比较大的集群中是非常有用的,他协调主节点和数据节点,客户端节点加入集群可以得到集群的状态,根据集群的状态可以直接路由请求。2. 数据节点  数据节点主要是存储索引数据的节点,主要对文...

2019-11-30 18:24:27 376

转载 Elasticsearch写入原理详解

实时性Elasticsearch的主要应用场景就是实时,但Elasticsearch本身并非实时而是near-real-time(近实时)。Index的实时性是由refresh控制的,默认是1s,最快可到100ms,那么也就意味着Index doc成功后,需要等待一秒钟后才可以被搜索到。Elasticsearch中的Get请求也能保证是实时的,因为Get请求会直接读内存中尚未Flush到磁...

2019-11-30 17:00:57 1284 1

转载 You know, for search

Elasticsearch作为当前流行的分布式搜索引擎,被广泛应用于日志检索,指标采集,APM,安全分析等领域。本文将对Elastic Stack的发展历程,基本原理,产品生态,主要功能和应用场景进行总结,以帮助大家对Elastic生态的前世今生能有一个清晰的了解。1. 发展历程1.1 美好的事物总有一个浪漫的开始许多年前,一个叫Shay Banon的年轻人想为正在学习厨艺的新婚妻子编...

2019-11-25 11:23:11 616

转载 Elasticsearch分布式架构机制

概要本篇主要介绍Elasticsearch的数据索引时的分片机制,集群发现机制,primary shard与replica shard是如何分工合作的,如何对集群扩容,以及集群的容错机制。分片机制前面基本概念一节中,我们有提到建立索引时,会自动将数据拆分到多个分片(shard)中,默认数量是5,这个就是索引数据分片机制。我们在往Elasticsearch集群插入数据,并没有关心过数据最...

2019-11-25 10:49:20 185 1

原创 django ORM 正向查询与反向查询

现有三张表关系如下:from django.db import models# Create your models here.from django.db import modelsclass BaoModel(models.Model): age = models.IntegerField() address = models.CharField(max_le...

2019-07-20 15:25:20 3770

原创 rest_framework学习之序列化(Serializer)

什么是序列化?在我看来,序列化就是将复杂的对象数据转化为简单的通用数据格式(如json),这么一个过程就是序列化。反序列化同理。我们看下DRF对序列化解释,序列化器允许将复杂数据(如查询集和模型实例)转换为原生Python数据类型,然后可以轻松地将其呈现为JSON、XML或其他内容类型。序列化器还提供反序列化,允许在首先验证传入的数据之后将解析后的数据转换回复杂类型。PS:还是官方专业...

2019-07-01 21:12:33 1274 1

原创 rest_framework学习之分页(Pagination)

DRF提供了默认的分页空间给开发者使用,只有在使用通用视图(generic views)或视图集(viewsets)时才会自动触发分页控件,若使用的是APIView,需要自己实现分页API,可参考GenericAPIView源码。使用generic views来默认调用pagination我们可以在settings.py中设置全局的分页控件配置,如下:REST_FRAMEWORK ...

2019-06-29 10:40:06 1408

原创 rest_framework学习之解析器(Parsers)

概述什么是解析器?在DRF中,解析器是一个类列表,当每次接收到请求时,RDF会根据请求头中的Content-type,来指定使用哪钟解析方法去解析数据。当content-type与解析器列表均不匹配时,则会报解析失败。我们可以在settings.py中全局设置解析器列表,如下:REST_FRAMEWORK = { 'DEFAULT_PARSER_CLASSES': ( ...

2019-06-21 11:40:07 1285

转载 python中的select模块介绍

python中的select模块介绍:Python中的select模块专注于I/O多路复用,提供了select poll epoll三个方法(其中后两个在Linux中可用,windows仅支持select),另外也提供了kqueue方法(freeBSD系统)select方法:进程指定内核监听哪些文件描述符(最多监听1024个fd)的哪些事件,当没有文件描述符事件发生时,进程被阻...

2019-06-18 15:39:48 2243

原创 rest_framework学习之认证(Authentication)&权限(Permissions)

认证和权限控制是web开发中较为重要的知识点,我们看下django rest_framework的认证和权限是如何实现的概述我们知道,在django中,提供内置的认证与权限方式,通过维护几张数据库表(如auth_user、auth_group、auth_permission等),并提供封装好的方法(如:authenticate()、login()、logout())实现认证与权限。re...

2019-06-15 11:21:25 4645

转载 python的复制,深拷贝和浅拷贝的区别

python的复制,深拷贝和浅拷贝的区别在python中,对象赋值实际上是对象的引用。当创建一个对象,然后把它赋给另一个变量的时候,python并没有拷贝这个对象,而只是拷贝了这个对象的引用一般有三种方法,alist=[1,2,3,["a","b"]](1)直接赋值,默认浅拷贝传递对象的引用而已,原始列表改变,被赋值的b也会做相同的改变>>> b=ali...

2019-06-05 09:43:49 25324 3

转载 MYSQL中建议使用NOT NULL原因

MySQL 官网文档:NULL columns require additional space in the rowto record whether their values are NULL. For MyISAM tables, each NULL columntakes one bit extra, rounded up to the nearest byte.Mysql难以...

2019-06-05 09:20:00 3278

原创 rest_framework学习之view、APIView、GenericAPIView理解

在django和rest_framework项目中我们经常可以看到view、APIView、GenericAPIView,在此记录下三者关系在说之前,先介绍下FBV和CBVFBV(function base view)我们经常写的视图函数都是FBV,如:def index(request): return HttpResponse()CBV(class base v...

2019-05-23 11:30:19 987

转载 django中间件详解

django中间件详解阅读目录 一、什么是中间件 二、中间件的执行流程一、什么是中间件?官方的说法:中间件是一个用来处理Django的请求和响应的框架级别的钩子。它是一个轻量、低级别的插件系统,用于在全局范围内改变Django的输入和输出。每个中间件组件都负责做一些特定的功能。但是由于其影响的是全局,所以需要谨慎使用,使用不当会影响性能。说的直白一点...

2019-05-18 17:16:06 229

转载 TCP三次握手与四次挥手

序列号seq:占4个字节,用来标记数据段的顺序,TCP把连接中发送的所有数据字节都编上一个序号,第一个字节的编号由本地随机产生;给字节编上序号后,就给每一个报文段指派一个序号;序列号seq就是这个报文段中的第一个字节的数据编号。确认号ack:占4个字节,期待收到对方下一个报文段的第一个数据字节的序号;序列号表示报文段携带数据的第一个字节的编号;而确认号指的是期望接收到下一个字...

2019-04-15 17:34:32 161

转载 http长连接与主动断开方

以下内容转载:(http://blog.csdn.net/wangpengqi/article/details/17245349)什么是长连接呢?我们知道,http请求是基于TCP协议之上的,那么,当客户端在发起请求前,需要先与服务端建立TCP连接,而每一次的TCP连接是需要三次握手来确定的,如果客户端与服务端之间网络差一点,这三次交互消费的时间会比较多,而且三次交互也会带来网络流量。当然,...

2019-04-15 17:17:38 7157

转载 微服务架构及幂等性

目录微服务架构 单体应用的优缺点 微服务的优缺点 微服务网关+服务间通信 服务间通信 服务发现 微服务幂等性 微服务架构微服务架构是一种架构概念,旨在通过将功能分解到各个离散的服务中以实现对解决方案的解耦。它的主要作用是将功能分解到离散的各个服务当中,从而降低系统的耦合性,并提供更加灵活的服务支持。和微服务相对应的,这种方式一般被称为单体式开发(M...

2019-04-11 10:18:45 816 1

原创 五种IO模式简介

对于一次IO访问(以read举例),数据会先被拷贝到操作系统内核的缓冲区中,然后才会从操作系统内核的缓冲区拷贝到应用程序的内存地址空间。所以说,当一个read操作发生时,它会经历两个阶段:1. 等待内核缓冲区中数据准备 (Waiting for the data to be ready)2. 将数据从内核缓冲区拷贝到进程中 (Copying the data from the kernel t...

2019-03-15 11:42:56 2680

转载 django请求关于数据库连接池共享问题

但凡介绍数据库连接池的文章,都会说“数据库连接是一种关键的有限的昂贵的资源,这一点在多用户的网页应用程序中体现得尤为突出。对数据库连接的管理能显著影响到整个应用程序的伸缩性和健壮性,影响到程序的性能指标。数据库连接池正是针对这个问题提出来的。数据库连接池负责分配、管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而不是再重新建立一个;释放空闲时间超过最大空闲时间的数据库连接来避免因...

2019-03-05 11:55:02 1639

转载 Python 3.5 协程究竟是个啥

Python 3.5 协程究竟是个啥2016/09/23 · 基础知识 · 2 评论 · 协程原文出处: snarky   译文出处:Yushneng   作为 Python 核心开发者之一,让我很想了解这门语言是如何运作的。我发现总有一些阴暗的角落我对其中错综复杂的细节不是很清楚,但是为了能够有助于 Python 的一些问题和其整体设计,我觉得我应该试着去理解 Python 的核心语...

2018-09-07 10:21:29 409

转载 负载均衡介绍

1.什么是负载均衡?        当一台服务器的性能达到极限时,我们可以使用服务器集群来提高网站的整体性能。那么,在服务器集群中,需要有一台服务器充当调度者的角色,用户的所有请求都会首先由它接收,调度者再根据每台服务器的负载情况将请求分配给某一台后端服务器去处理。那么在这个过程中,调度者如何合理分配任务,保证所有后端服务器都将性能充分发挥,从而保持服务器集群的整体性能最优,这就是负载均衡...

2018-09-04 17:57:18 287

原创 魔术方法和迭代器

--------------------------------------最近有看了书,发现之前写的迭代器笔记错误连连,可见当时还是没有彻底理解该知识点(现在可能也还没有彻底理解 skr skr~~~)。现做如下补充:魔术方法__开头的方法我们称之为魔术方法,魔术方法是python语法的关键。我们都知道在python世界里,万物皆对象,对象由类实例化而来,类中常见的包含属性和方法,...

2018-09-01 10:50:33 192

转载 python2与python3编码

一 什么是编码?基本概念很简单。首先,我们从一段信息即消息说起,消息以人类可以理解、易懂的表示存在。我打算将这种表示称为“明文”(plain text)。对于说英语的人,纸张上打印的或屏幕上显示的英文单词都算作明文。其次,我们需要能将明文表示的消息转成另外某种表示,我们还需要能将编码文本转回成明文。从明文到编码文本的转换称为“编码”,从编码文本又转回成明文则为“解码”。编码问...

2018-08-23 16:48:02 302

转载 Linux日志文件总管——logrotate

Linux日志文件总管——logrotate编译自:http://xmodulo.com/2014/09/logrotate-manage-log-files-linux.html作者: Sarmed Rahman原创:LCTT https://linux.cn/article-4126-1.html译者: joeren本文地址:https://linux.cn/article-4126-1.ht...

2018-03-06 09:29:01 328

转载 ps命令用法

Linux ps命令在Linux下ps命令是用于查看系统上运行的进程的最基本的命令之一。它提供了当前进程的同时,如用户ID,CPU使用率,内存使用率,命令名称等,它不显示实时数据,如top或htop命令的详细信息。但是,即使是功能和输出简单,但它仍然是一个必用的过程管理/监控工具,每一个Linux新手应该知道这一点,好好学习。在这篇文章中,我们将使用ps命令以不同的方式来查看进程、筛选和排

2017-12-18 11:52:48 619

原创 SSH连接步骤与原理

SSH步骤现有两台机器,10.67.1.176(A)和10.67.19.184(B),想要完成A机器免密连接B机器。有如下步骤:生成密钥对利用linux命令ssh-keygen生成密钥对执行命令后会生成id_rsa(私钥)和id_rsa.pub(公钥)两个文件,默认放在当前用户下的.ssh目录下将公钥传给远程主机B生成公私钥后,需要把公钥传给主机B并放在固定路径的文

2017-12-07 11:46:42 6943 4

原创 个人经验:team leader需要做的事和需要具备的能力

任务对功能评估出一个相对较为准确的工作量制定开发计划,功能合理分配评估SE提的需求,指出那些实现难度很大的需求协助SE整理需求有系统设计的能力,开发人员遇到技术难点或方案抉择需能给出建议项目跟踪,风险把控,使其可以正常提交发布能力大局观、风险把控、知人识人用人、学会拒绝。

2017-12-06 17:26:01 3036

原创 https加密传输详解

https加密方式https采用对称加密与非对称加密的混合加密方式混合加密方式原理:1. 服务端将非对称加密的公钥发送给客户端;2. 客户端拿着服务端发来的公钥,对对称加密的key做加密并发给服务端;3. 服务端拿着自己的私钥对发来的密文解密,从来获取到对称加密的key;4. 二者利用对称加密的key对需要传输的消息做加解密传输。数字认证原理上述混合的加密方式还是存

2017-11-30 17:03:40 6135

原创 python 生成器

什么是生成器首先,生成器是函数,它记住上一次返回时在函数体中的位置。对生成器函数的第二次(或第N次)调用跳转至该函数,而上次调用的所有局部变量都保持不变。生成器的特点生成器是一个函数,而且函数的参数都会保留;迭代到下一次调用时,所使用的参数都是第一次所保留下来的,即在整个所有函数调用的参数都是第一次所调用时保留的,而不是新创建的。如何创建一个生产器创建生产器的关键字为yie

2017-11-28 17:21:43 305

原创 python 迭代器

什么是迭代器?迭代器就是重复地去做一些事情,可以简单地理解为循环。迭代器是一个对象,若要实现一个迭代器,类中需要有__iter__()和—__next__()方法,缺一不可。简单的写一个迭代器: class Test(): def __init__(self): self.count = 0 self.a = [1, 2, 3] ...

2017-11-28 15:43:21 297

空空如也

空空如也

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

TA关注的人

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