有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 |