yapi开放接口平台部署文档
yapi开放接口平台部署文档介绍YApi 是高效、易用、功能强大的 api 管理平台,旨在为开发、产品、测试人员提供更优雅的接口管理服务。可以帮助开发者轻松创建、发布、维护 API,YApi 还为用户提供了优秀的交互体验,开发人员只需利用平台提供的接口数据写入工具以及简单的点击操作就可以实现接口的管理。
特性:
基于 Json5 和 Mockjs 定义接口返回数据的结构和文档,效率提升多倍
扁平化权限设计,即保证了大型企业级项目的管理,又保证了易用性
类似 postman 的接口调试
自动化测试, 支持对 Response 断言
MockServer 除支持普通的随机 mock 外,还增加了 Mock 期望功能,根据设置的请求过滤规则,返回期望数据
支持 postman, har, swagger 数据导入
免费开源,内网部署,信息再也不怕泄露了
yapi镜像生成由node基础镜像封装官方部署应用
123456789101112# Dockerfile 文件FROM node:12-alpineCOPY repositories /etc/apk/repositoriesRUN n ...
mysql存储性能测试
mysql存储性能测试本次安装是在机械硬盘上用的mysql 5.7.29版本
1234567891011121314# mysqlslap 参数-concurrency代表并发数量,多个可以用逗号隔开,concurrency=10,50,100, 并发连接线程数分别是10、50、100个并发。--engines代表要测试的引擎,可以有多个,用分隔符隔开。--iterations代表要运行这些测试多少次。--auto-generate-sql 代表用系统自己生成的SQL脚本来测试。--auto-generate-sql-load-type 代表要测试的是读还是写还是两者混合的(read,write,update,mixed)--number-of-queries 代表总共要运行多少次查询。每个客户运行的查询数量可以用查询总数/并发数来计算。--debug-info 代表要额外输出CPU以及内存的相关信息。--number-int-cols :创建测试表的 int 型字段数量--auto-generate-sql-add-autoincrement : 代表对生成的表自动添加auto_in ...
kubernetes CSI
kubernetes CSI容器存储接口(CSI)是用于将任意块和文件存储系统暴露给诸如Kubernetes之类的容器编排系统(CO)上的容器化工作负载的标准。使用CSI的第三方存储提供商可以编写和部署在Kubernetes中公开新存储系统的插件,而无需接触核心的Kubernetes代码
CSI实现中的组件分为两部分:
各云厂商or开发者自行开发的组件(需要实现CSI Identity,CSI Controller,CSI Node RPC接口)
由k8s官方维护的一系列external组件负责注册CSI driver 或监听k8s对象资源,从而发起csi driver调用,比如(node-driver-registrar,external-attacher,external-provisioner,external-resizer,external-snapshotter,livenessprobe)
1234567891011121314151617# node-driver-registrarCSI node-driver-registrar是一个sidecar容器,可从CS ...
kubernetes的资源备份方案
kubernetes的备份方案采用本地minikube进行验证,安装方式如下
1234curl -Lo minikube http://kubernetes.oss-cn-hangzhou.aliyuncs.com/minikube/releases/v1.16.0/minikube-linux-amd64 && chmod +x minikube sudo apt-get install conntrack# 使用了本机的dockerminikube start --vm-driver=none --registry-mirror=https://registry.docker-cn.com
集群资源备份veleroVelero 是一个云原生的灾难恢复和迁移工具,它本身也是开源的, 采用 Go 语言编写,可以安全的备份、恢复和迁移Kubernetes集群资源和持久卷
Velero 支持两种关于后端存储的 CRD,分别是 BackupStorageLocation 和 VolumeSnapshotLocationBackupStorageLocation 主要用来定义 ...
helm3使用记录
helm-proxyhelm3使用
查询helm repo listhelm repo list
添加helm repohelm repo add stable https://kubernetes-charts.storage.googleapis.com/
更新helm repohelm repo update
在hub上搜索,相当于helm提供的一个公共仓库,类似docker hubhelm search hub mysql
在repo上搜索,共有仓库之外,用户自己添加的helm仓库helm search repo mysql
部署stable/mysqlhelm install -name mysql stable/mysql -n default
部署应用列表helm list
查看应用当前状态helm status mysql
删除部署应用helm uninstall mysql
从hub拉取charthelm pull https://hub.helm.sh/charts/incubator/mysqlha
从hub拉取charthelm pull s ...
operator开发
operator开发kubebuilderkubebuilder 2.3.1k3d v3.2.1k3s v1.19.3-k3s2
12345678# crdapiVersion: etcd.ydzs.io/v1alpha1kind: EtcdClustermetadata: name: demospec: size: 3 # 副本数量 image: cnych/etcd:v3.4.13 # 镜像
初始化项目kubebuilder init –domain ydzs.io –owner cnych –repo github.com/cnych/etcd-operator
创建APIkubebuilder create api –group etcd –version v1alpha1 –kind EtcdCluster
编辑 Operator 的结构体修改文件 api/v1alpha1/etcdcluster_types.go 中的 EtcdClusterSpec 结构体
1234567type EtcdClusterSpec struct { // INSERT AD ...
Linux主机创建swap空间
Linux主机swap空间swap交换空间实际上是一个磁盘分区,在安装操作系统时,默认划分出物理内存的1~2倍空间用于交换分区,它类似于 Windows 的虚拟内存。系统会把一部分硬盘空间虚拟成内存使用,将系统内非活动内存换页到 SWAP,以提高系统可用内存。
启用swap分区,一定程度上可以降低物理内存的使用压力,但如果云服务器上运行的应用确实需要更多的内存,还是需要购买物理内存。
启用swap分区123456789101112131415161718# 如果未启用swap分区功能,则新建一个专门的文件用于swap分区dd if=/dev/zero of=/var/blockd.swap bs=1M count=8192# 通过mkswap命令将上面新建出的文件做成swap分区mkswap /var/blockd.swap# 启用此交换分区的交换功能swapon /var/blockd.swap# 修改内核参数 /proc/sys/vm/swappiness # 当 swappiness为 0 时,表示最大限度的使用物理内存,物理内存使用完毕后,才会使用 SWAP 分区;当 swap ...
kubernetes安装使用configmap挂载配置文件遇到的问题
kubernetes安装使用configmap挂载配置文件遇到的问题问题背景在容器部署的tomcat应用中文件/usr/local/apache-tomcat-7.0.104/webapps/ROOT/WEB-INF/conf/ds.properties挂载配置成为configmap方便修改
1234567891011121314151617181920212223242526272829303132# configmapapiVersion: v1data: ds-properties: |- #for oracle jdbc.jdbcUrl=jdbc:oracle:thin:@//127.0.0.1:1521/orcl jdbc.driverClass=oracle.jdbc.driver.OracleDriver jdbc.username=test jdbc.password=test jdbc.minPoolSize=5 jdbc.maxPoolSize=10 jdbc.validation=SELECT 1 FROM DUA ...
go 面试题
go问答go中的协程与线程的区别协程(coroutine)是Go语言中的轻量级线程实现,由Go运行时(runtime)管理参考 http://vinllen.com/gozhong-de-xie-cheng-goroutineyu-xian-cheng-de-qu-bie/1 栈的大小(线程的栈有 8 MB,而go协程栈的大小通常只有 2~4 KB)2 goroutine没有id3 GOMAXPROCS4 goroutine调度(上下文切换代价、由内核还是调度器完成、是否支持垃圾回收)
节省 CPU:避免系统内核级的线程频繁切换,造成的 CPU 资源浪费。好钢用在刀刃上。而协程是用户态的线程,用户可以自行控制协程的创建于销毁,极大程度避免了系统级线程上下文切换造成的资源浪费
节约内存:在 64 位的Linux中,一个线程需要分配 8MB 栈内存和 64MB 堆内存,系统内存的制约导致我们无法开启更多线程实现高并发。而在协程编程模式下,可以轻松有十几万协程,这是线程无法比拟的
稳定性:前面提到线程之间通过内存来共享数据,这也导致了一个问题,任何一个线程出错时,进程中的所有线程 ...
kong 0.14到2.0版本 API变更
kong 0.14到2.0X版本 API变更Service Object对象实体Json Demo
12345678910111213141516{ "id": "9748f662-7711-4a90-8186-dc02f10eb0f5", "created_at": 1422386534, "updated_at": 1422386534, "name": "my-service", "retries": 5, "protocol": "http", "host": "example.com", "port": 80, "path": "/some_api", "connect_timeout": 60000, & ...