自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 AES加密相关

AES是一种对称加密算法,即用同一把密钥进行加密与解密。AES加密有以下几个参数需要注意:1.keyAES要求密钥具有16byte、24byte或者32byte,位数越高,加密强度越大,加密轮数依次为10、12、14轮。以128位密钥为例,密钥首先扩展为44个字(32位),前4个字与明文进行一次异或操作。后面40个字分成10组,分别在10轮加密中进行数据异或操作。2.IV初始向量,其作用是对输入明文进行,加密解密需要同样的IV。IV也需要通过随机函数产生以保证安全。3.padding,填充模式。

2020-07-12 11:37:34 1256

原创 CORS相关

CORS,全称Cross Origin Resource Sharing(跨域资源共享)。当浏览器请求不同的域名,不同的协议(http、https),不同的端口时就会发生跨域。CORS请求有两种类型:1.简单请求,简单请求会直接请求服务端,不会触发OPTIONS预检请求请求方法为这三种之一:GET、HEAD、POST允许人为设置字段的头部为:Accept、Accept-Language、Content-Language、Content-Type、DPR、Downlink、Save-Data、Vie

2020-05-20 22:53:13 302

原创 升级go 1.13 遇到的坑

最近将go的版本由1.12升级到了1.13,遇到了两个问题,在一并此记录。一、升级后在goland中debug时,提示Version of Delve is too old for this version of Go,解决方法先获取最新的go dlvgo get -v github.com/derekparker/delve/cmd/dlv然后在goland help -> Edi...

2020-04-19 17:09:53 2040

原创 npm 全局安装路径配置

windows下安装npm之后,默认的全局路径为c:\user\admin\AppData\Roaming。我们需要将其修改为D盘下的某个路径。1.首先在D盘新增两个目录:D:\Program Files\nodejs\node_global、D:\Program Files\nodejs\node_cache,输入以下npm命令修改配置:npm config set prefix "D:\P...

2020-03-25 23:32:05 1983

原创 golang sync.Pool学习

sync.Pool是一个对象池,其目的复用对象结构,当需要新的对象时不用重新构造,而直播去对象池中取出已有的对象。但需要记住的是pool中的对象随时可能会被删除而不发出通知,pool对象的生存周期是两次gc之间。使用方法package mainimport ( "bytes" "sync")var bp sync.Poolfunc init() { bp.New = fun...

2020-02-23 16:52:56 172

原创 nsq源码学习-nsqd

nsqd在执行中同时执行两个协程,一个是queueScanLoop,另一个是lookupLoop。下面先分析queueScanLoop的主要内容。

2020-02-21 13:23:26 241

原创 k8s集群外部pod的5种访问方式

1.hostNetworkhostNetwork直接设置pod,当设置hostNetwork为true时,pod中的容器直接暴露在宿主机的网络环境中,可以直接通过宿主机的网络访问pod中的应用程序,即PodIp就是Node的IP。该模式下,每一个node只能启动一个同deployment的pod。...

2020-02-04 23:10:59 3351

原创 mysql 延迟关联

先通过覆盖索引查询需要的主键,再根据这些主键关联原表获取需要的行数据。

2020-01-18 17:16:40 231 1

原创 mysql锁、事务

innoDB引擎下,update、insert、delete会给涉及到的数据行上排他锁,select默认不加锁。加排他锁可以使用select … for update语句,加共享锁可以使用select … lock in share mode。mysql中的锁可分为两类:1 共享锁与排他锁(Shared and Exclusive Locks)都是行级锁,共享锁也称为读锁,多个连接可以同...

2020-01-02 23:43:33 157

原创 k8s配置中的port、targetPort、nodePort和containerPort区别

portport是k8s集群内部访问service的端口,即通过clusterIP: port可以访问到某个servicenodePortnodePort是外部访问k8s集群中service的端口,通过nodeIP: nodePort可以从外部访问到某个service。targetPorttargetPort是pod的端口,从port和nodePort来的流量经过kube-proxy流入...

2019-12-29 10:03:10 23956

原创 利用kubeadmin搭建单节点k8s环境(ubuntu)

准备工作:1.禁用swapswapoff -a同时将/etc/fstab文件的swap行用#注释(永久禁用)2 关闭防火墙sudo ufw disable3 关闭SELinux,有两种方法临时关闭:setenforce 0永久关闭:修改/etc/selinux/config文件中设置SELINUX=disabled ,然后重启服务器...

2019-12-27 22:53:48 1218 1

原创 awk与xargs命令

最近学习了linux中的awk与xargs两个命令,将要点记录下来以防忘记。awkawk读取文件的每一行,并处理其中的每一个字段用法:awk [-F|-f|-v] ‘{command}’ file[-F|-f|-v] awk参数,-F指定分隔符,-f调用脚本,-v定义变量$0表示整行,$1每行第一个字段,$2第二个字段,依此类推一个或多个连续的空格或制表符看做一个定界符,即多个空格...

2019-12-22 10:02:45 5738

原创 php xhprof使用教程

1 安装xhprof扩展,并修改php.ini[xhprof]extension=xhprof.soxhprof.output_dir=/tmp2 配置nginx将xhprof安装包中的xhprofhtml和xhproflib两个目录复制到网站的根目录下server { listen 80; server_name _; root /vagran...

2019-12-17 23:22:52 364

原创 linux ssh小技巧

1 使用ssh-copy-id命令ssh-copy-id命令可以把本地主机的公钥复制到远程主机的authorized_keys文件上,ssh-copy-id命令也会给远程主机的用户主目录(home)和~/.ssh, 和~/.ssh/authorized_keys设置合适的权限。ssh-copy-id user@serverssh-copy-id -i ~/.ssh/id_rsa.pub us...

2019-12-05 13:06:46 146

原创 nsq学习

三种组件nsqd:负责接收消息、存储队列并投递到客户端。nsqd优先将消息存储在内存channel中,channel满则写到磁盘中。nsqlookupd: 存储nsqd地址信息,消费者通过查询nsqlookupd以检测需要从哪个nsqd节点上读取消息。nsqd向nsqlookupd的tcp端口广播并注册,注册后消费者能通过nsqlookupd的http端口发现包含指定topic的nsqd结点...

2019-11-30 14:07:48 213

原创 php laravel框架环境配置

1 全局方式安装composer2 可选,安装laravel安装器composer global require "laravel/installer=~1.1"注意,这里需要将 ~/.composer/vendor/bin 路径放置于您的环境变量中,才能保证laravel可执行文件被找到。安装后就可以直接使用laravel命令安装项目。3 安装项目,进入一个文件夹composer c...

2019-10-27 14:42:55 416

原创 redis实现分布式锁

redis实现加锁的命令有:setnx、incrsetnxclass lockModel { private _cache; public lock($key) { $redis = $this->_cache; $is_lock = $redis->setnx(key, time() + 5); if (!$is_lock) { $locktime...

2019-10-16 23:30:01 159

原创 Go Http包学习之一

func handleWeb(w http.ResponseWriter, r *http.Request){ fmt.Fprintf(w, "Hello world!")}func main(){ http.HandleFunc("/", handleWeb) http.ListenAndServe(":8001", nil)}

2019-10-04 11:29:09 197

原创 Go profile记录

Go中使用profile有两种方式:(1)使用离线的profile文件(import “runtime/pprof”),要保存CPU的profile数据,可使用以下代码:f, err := os.Create("cpu_profile")...pprof.StartCPUProfile(f)defer pprof.StopCPUProfile()另一个是内存的profile数据: ...

2019-08-29 10:00:32 1029

原创 Git跟踪远程分支

分两种情况:1 本地已经存在某一分支,可以直接使用 git branch -u origin/serverfix,将当前分支

2019-08-14 19:13:23 2812

原创 Vagrant配置笔记

花了一下午时间完成了Vagrant的配置,现将过程记录如下。1. 准备工作安装Vagrant:下载地址安装VirtualBox: 下载地址在本地建立一个文件夹,存放所有使用Vagrant管理的虚拟机D:\Vagrant初始化虚拟机(CentOS 7.2)的存入目录D:\Vagrant\CentOS 7.22. 部署环境进入目录:D:\Vagrant\CentOS 7.2,执...

2019-08-14 19:09:34 212

原创 Go单元测试

对包含网络请求和响应的函数进行单元测试需要我们模拟客户端请求和服务端返回。以一个登录模块为例,main.go文件如下:var eg *xorm.EngineGroupfunc OpenDB() { conns := []string{ "root:xxxx@tcp(192.168.64.166:33066)/testdb", "root:xxxx@tcp(192.168.64.1...

2019-08-14 19:08:28 187

原创 win10下配置VSCode+GO开发环境

安装Golang语言环境,链接:https://golang.google.cn/dl/安装VSCode,链接:https://code.visualstudio.com/VSCode中搜索Go插件,如下图:安装Go Tools相关依赖包(链接:https://github.com/Microsoft/vscode-go/wiki/Go-tools-that-the-Go-...

2019-07-20 14:23:51 2987

原创 Git版本控制

1 如果需要丢弃对工作区的修改,可用命令: git checkout --file。2 如果修改了工作区中文件的内容,且添加到了暂存区,想要丢弃修改,可用命令:git reset HEAD file,先返回第1步。3 如果提交了错误的修改到版本库时,想要撤销提交,则可用命令:git reset --hard HEAD^。...

2019-06-13 20:21:04 279

原创 GO环境配置中的几个目录

GOROOT是指GO的安装路径GOPATH是指GO项目的工作目录

2019-06-12 15:26:39 497

原创 GCC编译选项

利用GCC编译时经常用的几个选项。-llibrary-l指明链接库,后续的library是库名,gcc默认到/lib和/usr/lib目录下寻找名为liblibrary.a的库文件。gcc main.c -o main -lunp-Ldir-L增加链接库的搜索目录,dir为新增的搜索目录,如果有多个目录需要添加,可以设置多个-L选项,或者在dir中以冒号分割多个目录。gcc main...

2019-04-01 17:10:24 239

空空如也

空空如也

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

TA关注的人

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