有4个关键点:
- 对于导出数据中任意一行,尽量做到只做一次数据库查询,如果
Django原生不支持,那就写SQL语句 - 只查询导出的字段,不要查询不需要的字段
- 分批获取数据,建议每次获取 10000 行(并非绝对,可以先用 SQL 语句在数据库查询,取一个较优的数值)
- 使用
StreamingHttpResponse做流式响应(文本文件可以边查边响应,二进制文件就在临时文件生成之后再响应)
1 | from django.db.models import Q |
有4个关键点:
Django 原生不支持,那就写 SQL 语句StreamingHttpResponse 做流式响应(文本文件可以边查边响应,二进制文件就在临时文件生成之后再响应)1 | from django.db.models import Q |
Kaniko 是一种在容器或 Kubernetes 集群内从 Dockerfile 构建容器镜像的工具。
Kaniko 不依赖于 Docker 守护进程,而是完全在用户空间中执行 Dockerfile 中的每个命令。
这使得在无法轻松或安全地运行 Docker 守护程序的环境中构建容器镜像成为可能,例如标准的 Kubernetes 集群。
下面是一个使用 Docker 构建并将镜像上传到 gcr.io 服务器的示例:
1 | docker run \ |
Cryptography 是 Python 中的一个加密库,它只能在 Python3.6+、PyPi3 7.2+ 上使用。
可以直接使用下面命令安装:
1 | pip install cryptography |
1 | from cryptography.hazmat.primitives.asymmetric import rsa |
可以生成多个格式的文件。
导出私钥:
1 | from cryptography.hazmat.primitives.serialization import Encoding, PrivateFormat, NoEncryption |
GoPath 是 Golang 的工作空间,所有的 go 文件都必须放在 GoPath 目录下,才能编译运行。
这样做有以下明显的缺点:
Golang 包混在一起,会给我们的项目文件管理带来一定的麻烦。GoPath 都需要下载依赖,那么磁盘中重复的依赖就会非常多,会占用我们大量的磁盘空间。GoModule 是 go1.11 初步引入,go1.12 正式引入的概念,它用来管理项目文件。
但是在 go1.11、go1.12 中默认是关闭的,可以设置 GO111MODULE=on 来开启 GoModule。
从 go1.13 开始,Golang 默认开启 GoModule,它会根据项目结构中是否包含 go.mod 文件来自动判断。
由此,引出一个疑问:有了 GoModule 之后,GoPath 是否无用了?
其实不然,在有了 GoModule 之后,GoPath、GoModule 可以分别负责不同的职责:
GoPath 管理 Golang 依赖GoModule 管理项目文件在使用
GoModule时,需要先执行命令go mod init 模块名进行初始化,例如:go mod init github.com/user/example
AssertionError [ERR_ASSERTION]: Task function must be specified
gulpfile.js 代码如下:
1 | gulp.task('default', ['build'], () => {}); |
执行抛出异常:
1 | AssertionError [ERR_ASSERTION]: Task function must be specified |
经过查找,上述写法只能用于 gulp4 之前的版本,gulp4 之后改用以下写法:
1 | gulp.task('default', gulp.parallel('build'), () => {}) // 并行 |
Postman 提供了您可以在请求脚本中使用的 JavaScript API。 pm 对象提供了测试请求和响应数据的大部分功能,Postman 对象提供了一些额外的工作流控制。
require 方法允许你使用沙箱内置库模块。
x509: cannot validate certificate for
<ipaddress>because it doesn’t contain any IP SANs
一般情况下,证书会包含一些信息,如国家、机构、ip、域名等等。
这个问题发生的时机在客户端访问服务器,如果证书中没有包含当前访问的ip、域名等信息时,就会产生这个问题。
SkyWalking 是一款分布式链路追踪系统。
OpenResty 是一个基于 Nginx 与 Lua 的高性能 Web 平台, 其内部集成了大量精良的 Lua 库、第三方模块以及大多数的依赖项。 用于方便地搭建能够处理超高并发、扩展性极高的动态 Web 应用、Web 服务和动态网关。
由于 pod 内容器共享一个网络命名空间(network namespace),
故 pod 内容器之间可以直接使用 localhost 互相访问。
| address | description |
|---|---|
{service_name}.{namespace}.svc.cluster.local |
cluster.local 指的是集群域名 |
{service_name}.{namespace}.svc |
集群内访问 svc |
{service_name}.{namespace} |
集群内访问 svc |
{service_name} |
集群内同一 namespace 内访问 svc |