- 博客(262)
- 资源 (8)
- 收藏
- 关注
原创 mysql转go struct
这个工具挺好用的https://dev.ataotaoa.com,在线将mysql建表语句转golang的struct结构体
2020-01-14 15:45:25
1154
原创 caddy如何安装插件和中间件
caddy如何安装插件,或者说中间件尝试了很多方法,包括GitHub找一些caddy manager等,都不是很好用最后发现最易使用的是下载caddy的时候就把需要的插件加进去,这样下载的二进制caddy中已经含有了各种所需插件,可以直接使用下载地址:https://caddyserver.com/v1/download选择好platform和plugins就可以了,plugi...
2020-01-14 11:54:57
3374
1
原创 mysql建表语句转go struct结构体在线工具
这个工具挺好用的https://dev.ataotaoa.com,在线将mysql建表语句转golang的struct结构体
2020-01-13 13:43:45
6258
6
原创 一文彻底弄懂go中的调度GMP
一文彻底弄懂go中的调度GMP先说,协程的本质是用户态的线程,用户对其有控制权限,内存占用少,切换代价低。再来解释一下MPG是什么意思。M代表内核线程,所有的G都要放在M上才能运行。P代表控制器,调度G到M上,其维护了一个队列,存储了所有需要它来调度的G。G代表一个go routine单元。补充几点常见的调度策略:1,如果某个M陷入阻塞呢?当一个OS线程...
2019-12-02 15:52:09
5857
2
原创 go数组和切片的区别
Go数组和切片区别当作为参数传给函数时,如果在函数内部被修改了,那么数组是临时修改,即出了函数后,原来的数据还是原来的数据,而切片是永久修改,即出了函数后,原来的数据已经变了,变成了修改后的数据。例子:``package mainimport "fmt"func f0(a [3]int64) { a[0] += 1 fmt.Println(a[0]) ...
2019-08-30 15:28:56
369
原创 prometheus获取数据的时间具体是什么
prometheus+httpapi1,query + instant time 获取的数据是一个瞬时值,其时间显示的是http请求返回的瞬时时间,而不是prometheus抓取数据的时间;2,query + range time 获取的数据是数组,其元素时间显示的是prometheus抓取数据的具体时间,跟发起http请求无关;3,query_range 获取的数据是数组,其元素时间...
2019-07-29 23:22:40
6496
3
原创 hexo ERROR Deployer not found: git
问题:hexo配置好后,运行hexo clean && hexo g && hexo d命令,出现ERROR Deployer not found: git原因:少了hexo针对git的deploy组件解决方法:npm install --save hexo-deployer-git搞定,运行成功之后提示:INFO Deploy done: git...
2019-07-22 17:36:15
3309
1
原创 方法的接收者是对象类型和指针类型的区别
方法的接收者是对象类型和指针类型的区别1,当一个方法的接收者是对象类型时,不论调用者是对象还是指针,该方法修改的都是副本,都不能修改自身;接收者是指针类型时,不论调用者是对象还是指针,修改的都是自身。2,对于接口而言,如果接口方法绑定在对象类型上,则该类型的指针没有实现接口,如果接口方法绑定在了指针类型上,则该类型的对象没有实现接口。...
2019-07-22 16:53:16
480
原创 docker-compose如何添加命令参数
在配置文件docker-compose.yml的services字段中,添加command字段,然后在command的命令后面按照格式输入启动参数即可。例如,设置prometheus热加载配置文件可以通过如下方式:13 prom: 14 build: 15 context: prom/ 16 ports: 17 - 9090:9090 18 volumes: 19 - ./prom/con...
2019-07-09 13:59:37
12140
原创 awk输出结果的第一行和第一列
输出第一列ps -ef | awk '{print $1}'输出第一行ps -ef | awk 'NR==1'
2019-07-03 09:36:04
39963
2
原创 go中defer的作用
go中defer的作用。1,在函数运行结束时,进行清理操作。比如:关闭文件流// open a file defer file.Close()解锁一个加锁的资源mu.Lock() defer mu.Unlock() 打印最终报告printHeader() defer printFooter()关闭数据库链接// open a database...
2019-06-16 23:15:57
967
原创 docker-compose命令行参数解析
docker-compose命令行参数解析compose 常用命令解释 Usage: docker-compose [options] [options] [COMMAND] [ARGS...] [options]buildUsage: build [options] [--build-arg key=val...] [SERVICE...]--no-cache 不使用缓存构建...
2019-06-11 15:13:57
3863
原创 docker run命令行参数解析
docker run命令行参数解析-a, --attach=[] 登录容器(必须是以docker run -d启动的容器)-w, --workdir="" 指定容器的工作目录-c, --cpu-shares=0 设置容器CPU权重,在CPU共享场景使用-e, --env=[] 指定环境变量,容器中可以使用该环境变量-m, --memory="" 指定容器的内存上限-P...
2019-06-11 15:13:04
4419
原创 opentrace jager elastic search 调用监控
基于open tracing和uber/jaeger,展示整个分布式系统的调用链,实现微服务性能的实时监控。docker 安装jaeger-query:docker run -it --rm --name jaeger-query -e SPAN_STORAGE_TYPE=elasticsearch -e ES_SERVER_URLS=http://ip:port -e ES_U...
2019-06-01 19:07:07
788
原创 windows如何在go1.12中添加多个GOPATH
在当前终端中,先设置临时环境变量GOPATH,只为这一次编译。set GOPATH=C:\Users\lenovo\go;C:\Codes\cloudapp_vrcae然后开始go build即可。亲测有效。以前的那种在系统环境变量中添加多个GOPATH的方法无效了。...
2019-05-27 15:28:51
2590
原创 如何将本地应用制作成docker镜像
docker也太强大了吧,竟然可以把本地的应用程序制作成docker镜像。。。以nginx举例,方法如下:比如,要从本地文件系统导入一个镜像,先下载了一个 ubuntu-14.04 的镜像,之后使用以下命令导入:sudo cat ubuntu-14.04-x86_64.tar.gz | docker import - ubuntu:14.04或者sudo docker impor...
2019-05-26 21:10:18
7766
3
原创 Linux下的用户和用户组知识点
Linux下的用户和用户组知识点。chmod修改文件权限。u:当前用户 g:与当前用户在同一个用户组的用户们 o:与当前用户不在同一个用户组的用户们。chgrp修改文件所属用户组。基本用法:chgrp -R groupid file,其中-R参数表示递归。chown修改文件所属用户。基本用法:chgrp -R userid file,其中-R参数表示递归。0:root用户,1-999:...
2019-05-26 19:36:04
238
原创 goswagger调用失败
通过 swagger generate spec -o ./swagger.json命令生成swagger.json文件,命令运行失败,提示在GOROOT和GOPATH中都找不到各种go依赖包,原因是goswagger在寻找依赖包时不会从go的环境变量中寻找GOROOT GOPATH路径,而是在系统的环境变量中找GOROOT和GOPATH路径,所以需要设置系统环境变量。Linux下编辑vim ~/...
2019-05-22 14:16:49
923
原创 apt与apt-get区别
apt包含了apt-get apt-cache apt-config,属于包含与被包含关系。apt与apt-get命令区别如下:
2019-05-21 14:38:48
415
原创 在docker alpine上运行cgo项目
问题:在docker的alpine镜像上运行cgo项目会出现问题,提示panic: standard_init_linux.go:175: exec user process caused "no such file or directory"问题。原因是当cgo开启时,默认是按照动态库的方式来链接so文件的,但alpine只支持静态链接,所以会出错。解决方案:通过设置CGO_EN...
2019-05-20 17:12:04
2476
1
原创 解决Linux下delete后内存不立即释放的问题
在调用delete释放内存后,调用如何命令即可 int res = malloc_trim(0); if (1 == res) { std::cout << "memory cleaned__" << std::endl; } else { std::cout << "memory not cleane...
2019-05-20 14:23:31
3277
1
原创 免密码登录ssh
首先生成密钥对,然后输入以下命令进行即可。$ ssh user@host 'mkdir -p .ssh && cat >> .ssh/authorized_keys' < ~/.ssh/id_rsa.pub
2019-05-20 14:20:48
168
原创 最通俗易懂的讲解Linux环境变量的设置
1,Linux下通过export设置环境变量,格式如下 export ENV_NAME=env_value2,存储的环境变量分为两类第一类是对登录此台机器的所有用户都有效,存放此类环境变量的文件是/etc/profile 和 /etc/.bashrc,此类文件有个共同点:所在目录一样,都是/etc/下。其中,/etc/profile: 此文件为系统的每个用户设置环境信息,当用户第一...
2019-05-11 23:41:40
306
原创 socket编程阻塞调用的函数有哪些
socket阻塞函数有哪些?当以阻塞方式进行socket通讯时,并不是所有函数调用都是阻塞式的。例如,以阻塞模式的套接字为参数调用bind()、listen()函数时,函数会立即返回。将可能阻塞套接字的socket API调用分为以下四种,总结起来就是和网络有关的函数时阻塞式的:1.输入操作: recv()、recvfrom()、WSARecv()和WSARecvfrom()函数。以阻...
2019-05-06 13:42:12
3788
原创 如何理解服务注册和服务发现
服务注册、服务注册表、服务发现三者的关系是:通过服务注册机制将启动服务的信息上传至服务注册表,服务发现机制通过服务注册表实时获取可用服务的信息。服务注册的方式包括:自注册和第三方注册。自注册的意思是当服务启动时,服务自动将信息上传至服务注册表,并通过心跳进行同步。第三方注册的意思是通过一个第三方的服务将启动服务的信息上传至服务注册表,并通过一定机制保持更新。缺点是要保证第三方服务的高可用性...
2019-05-06 11:49:28
10066
原创 mysql基本类型
数据类型分为三类:1,数值类型(整数、小数)2,日期时间类型 3,字符字符串类型每种类型常见的取值:1,数值类型tinyint smallint miduamint int bigintdecimal(m, d) numeric(m, d)float(m, d) real(m, d) double precision(m, d)2,日期时间类型yeardatet...
2019-05-05 15:03:43
294
原创 新手如何以最快速度使用mysql
数据库的基本操作不必理解,咔咔的,记忆就完了。先说一下mysql的基本操作有哪些:一,如何登录数据库连接命令行方式:mysql -u root -p passwordNavicat方式:如果登录的是本机数据库,那么只需设置主机名或者ip地址为localhost,端口是3306即可。如果登录的是远程数据库,那么除了设置主机名和端口外,还需要设置ssh信息,此时需要远程安装数据库的服务器开始了...
2019-05-05 13:53:02
280
原创 如何在实际项目中使用shell脚本
shell命令太多,所以本文不讲具体每条shell命令的用法。本文要讲述shell命令在项目中是如何使用的。总结起来有两条:1,在交互窗口下,运行单条命令 2,在.sh脚本中使用。交互命令模式:很简单,直接输入shell命令,然后在终端窗口等待命令的返回值。.sh脚本模式:写.sh脚本,然后运行shell脚本。在写.sh脚本时要注意以下几点:1,为了可以在运行脚本时不再明确指定shell...
2019-05-03 23:15:31
952
原创 go build后加文件和目录的区别
go build + xxx.go:生成以xxx命名的可执行文件go build + dir / go build . / go build:生成以目录名命名的可执行文件
2019-04-22 11:14:45
4105
原创 用cmake在windows下生成.dll版本的动态库遇到的问题
用cmake在windows下生成.dll版本的动态库,遇到的问题。问题1,生成的dll名字有问题。解决方案:采用extern{}包围住头文件中代码问题2,生成的dll没有接口,或者只生成了dll,而没有相应的导入库.lib。解决方案:添加dllexport,方法:#ifdef BUILD_XXX_DLL #define IO_XXX_DLL __declspec(dllexp...
2019-04-22 00:02:28
5427
原创 windows下通过cgo引用静态库
结论:windows下引用.lib形式的静态库是不可以的。在go build的时候,会出现# command-line-arguments Warning: corrupt .drectve at end of def file错误。在运行的时候,会出现Segmentation fault错误。补充:windows下通过cgo引用.dll形式的动态库,没有任何问题。虽然wi...
2019-04-21 17:30:41
3533
2
原创 相同c++程序在Linux和windows下不能共用
为什么同样的c++代码(不引用系统库函数)在Linux下和windows下编译出来的可执行程序不能共用?答案:Linux下gcc或g++编译出的可执行文件文件头是ELF windows下可执行文件头是PE,所以不能共用。方法:所以只要把Linux下编译出的可执行文件头去掉,然后加上一个PE文件头就可以在windows下跑了。...
2019-04-19 18:03:11
1348
原创 如何在浏览器中使用es6语法
1,npm install parcel-bundler -g 安装打包工具parcel-bundler2,npm config set registry=https://registry.npm.taobao.org 切换npm镜像为淘宝,加快依赖包安装速度3,npm config list 查看npm镜像是否切换成功4,npm install parcel-bundler -g 切...
2019-04-17 09:25:57
1659
原创 如何使用npm node.js快速开启http静态服务
1,npm install http-server -g 全局安装http-server2,切换到需要开启静态文件服务的目录3,http-server -p 3000 --cors 以允许跨域访问的方式,在本地3000端口,开启http服务...
2019-04-17 09:24:27
1901
原创 通过import引入js文件提示错误
在js文件中通过import引入另外的js文件,提示Uncaught SyntaxError: Unexpected string,或者Uncaught SyntaxError: Unexpected identifier错误,原因是import属于es6的语法,但是浏览器不支持es6语法,所以需要转换。转换方法:1,用 babel 把 import 转成 CommonJS 或者 AMD,...
2019-04-15 14:33:55
13403
1
原创 协程和线程的区别
最近学习go语言,接触了协程的概念,对线程和协程的区别总结如下。协程属于线程,即一个线程下面可以开辟多个协程。协程是用户态的轻量级线程。协程拥有自己的寄存器上下文和栈。协程调度切换时,将寄存器上下文和栈保存到其他地方,在切回来的时候,恢复先前保存的寄存器上下文和栈。当多个协程切换时,由于其同属于一个线程,所以可以看作是同步执行的,不存在同时共享资源的情况,可以不加锁的访问全局变量,...
2019-04-15 10:05:10
4003
原创 cache如何与session配合
1,session是维持http状态的一种解决方案,大部分服务器通过散列表来实现。2,服务端通过返回cache的形式,将sessionid发送给客户端。这样,以后客户端每次发出请求的时候,可以加上sessionid作为当前用户的唯一标示,从而把会话信息保存在以sessionid命名的session中。...
2019-04-15 09:59:49
471
原创 对go中defer机制的理解
看下面一道题。package mainimport "fmt"func calc(index string, a, b int) int { ret := a + b fmt.Println(index, a, b, ret) return ret}func main() { a := 3 b := 2 defer calc("1", a, calc("10", a...
2019-04-15 09:58:57
1636
原创 Nginx证书访问控制
HTTP自动跳转至HTTPSserver {listen 80;server_name www.pop.com;return 301 https://www.pop.com$request_uri;}server {listen 443 ssl;ssl on;ssl_certificate /etc/nginx/server_cert/ca.crt;ssl_certificat...
2019-04-15 09:58:26
366
spawn-fcgi-1.6.4.tar.gz
2018-12-10
谷歌Google C++ 代码规范
2017-09-09
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人