上一页 1 ··· 37 38 39 40 41 42 43 44 45 ··· 60 下一页
摘要: 开启了influxdb后,会监听8086端口下载客户端代码git clone https://github.com/influxdata/influxdb1-client.git $GOPATH/src/github.com/influxdata/influxdb1-client 阅读全文
posted @ 2019-11-29 23:52 唯一客服系统开发笔记 阅读(1166) 评论(0) 推荐(0)
摘要: 需求是把所有的日志中邮箱获取出来,根据指定关键字过滤,邮箱的格式是\txxx@xxx\t的格式,日志的存放是按照日期作为目录 阅读全文
posted @ 2019-11-29 20:00 唯一客服系统开发笔记 阅读(572) 评论(0) 推荐(0)
摘要: 日志类的数据时候存储在时序数据库中,下面就是时序数据库influxdb的安装 curl -sL https://repos.influxdata.com/influxdb.key | apt-key add -source /etc/lsb-releaseecho "deb https://repo 阅读全文
posted @ 2019-11-28 23:44 唯一客服系统开发笔记 阅读(439) 评论(0) 推荐(0)
摘要: 正则匹配并且可以捕获到()这个里面的子表达式的值,linux的grep命令没办法捕获子表达式的值,只能获取到整条正则匹配的内容 上面的正则中验证了.*是贪婪 .*?是非贪婪 ,下面匹配的字符串切片第一条是整条数据,后面的每一个对应正则括号里捕获的内容 tao@tao-PC:/var/www/html 阅读全文
posted @ 2019-11-28 22:10 唯一客服系统开发笔记 阅读(2426) 评论(0) 推荐(0)
摘要: 单位时间的请求数就是QPS,那么在nginx服务的网站下,如果要统计QPS并且按从高到低排列,需要使用awk配合sort进行处理awk做的主要工作是把access每行日志按分隔符分开,然后循环每一行,存到一个数组里,如果只按时间不区分脚本路径,数组里存的数据是比如arr['[28/Nov/2019: 阅读全文
posted @ 2019-11-28 16:00 唯一客服系统开发笔记 阅读(3067) 评论(0) 推荐(0)
摘要: 这段代码是参照慕课网的视频教程,主要是f.Seek(0, os.SEEK_END)移动到末尾,但是里面有个小问题,当打开的文件被重新清空内容的清空下,就再也不能到读取数据了,比如在开启读取后 echo ''>1.log 这样就再也读不到了,tail包是解决了这个问题的 使用tail包测试时,有re- 阅读全文
posted @ 2019-11-27 23:36 唯一客服系统开发笔记 阅读(1506) 评论(0) 推荐(0)
摘要: struct interface 就可以实现面向对象中的继承,封装,多态 继承的演示:Tsh类型继承People类型,并且使用People类型的方法 多态的演示Tsh类型实现了接口Student,实现了接口定义的方法 完整代码: 阅读全文
posted @ 2019-11-27 22:08 唯一客服系统开发笔记 阅读(295) 评论(0) 推荐(0)
摘要: 进程&线程(Apache) C10K问题异步非阻塞(Nginx,Libevent,NodeJS) 开发时复杂度高协程 (Golang Erlang lua) goroutine channel select通信 异步非阻塞:inux使用epoll,windows是异步IO 解决C10K的关键在于多路 阅读全文
posted @ 2019-11-27 21:52 唯一客服系统开发笔记 阅读(625) 评论(0) 推荐(0)
摘要: pmap后面跟进程id,就可以查看进程的详细情况了,例如下面php的进程 可以看到php扩展占用内存的情况,方便进行查询问题 也可以和while for in循环进行配合,实时查看进程的内存 while true;do clear;date;for i in `ps --no-headers -o 阅读全文
posted @ 2019-11-27 20:11 唯一客服系统开发笔记 阅读(850) 评论(0) 推荐(0)
摘要: 修改nginx配置文件,下面这个参数client_max_body_size 110M; 修改php配置文件中下面两个参数在php.ini中找到下面两个配置,配置项给改大,如果找不到php.ini的位置,就用grep在/etc目录搜索 grep "post_max_size" /etc -Rgrep 阅读全文
posted @ 2019-11-27 19:43 唯一客服系统开发笔记 阅读(311) 评论(0) 推荐(0)
摘要: 在webmail的业务中进行发信,如果携带了附件,会把附件拼接内嵌到邮件正文里,这时会极大的占用内存,可以使用以下命令查看fpm的进程内存占用 ps --no-headers --sort -rss -o "rss,pid,cmd" -C php-fpm这句的意思是,打印rss,pid,cmd列,并 阅读全文
posted @ 2019-11-27 17:28 唯一客服系统开发笔记 阅读(864) 评论(0) 推荐(0)
摘要: 比如下面的语句goto TOP ,其中TOP就是自己的自定义的标签,下面的TOP:就是要执行的代码段一般用在需要两层循环的地方,里面goto再跳回上面去 阅读全文
posted @ 2019-11-26 20:03 唯一客服系统开发笔记 阅读(564) 评论(0) 推荐(0)
摘要: bitmap就是在一个二进制的数据中,每一个位代表一定的含义,这样最终只需要存一个整型数据,就可以解释出多个含义.业务中有一个字段专门用来存储用户对某些功能的开启和关闭,如果是传统的思维,肯定是建一个字段来存0代表关闭,1代表开启,那么如果功能很多或者需要加功能开关,就需要不停的创建字段.使用bit 阅读全文
posted @ 2019-11-26 18:03 唯一客服系统开发笔记 阅读(8822) 评论(0) 推荐(1)
摘要: 在linux中有一个tail命令,tail -f可以实时的监控文件新增加的内容,如果用代码实现这个逻辑,可以下载使用这个包go get github.com/hpcloud/tail/... 测试代码: 阅读全文
posted @ 2019-11-25 20:03 唯一客服系统开发笔记 阅读(2754) 评论(0) 推荐(0)
摘要: golang中连接mysql数据库,需要使用一个第三方类库github.com/go-sql-driver/mysql,在这个类库中就实现了mysql的连接池,并且只需要设置两个参数就可以实现 一般连接mysql首先需要调用sql.Open函数,但是此时并没有真正的去连接mysql,而是只创建了一个 阅读全文
posted @ 2019-11-24 16:31 唯一客服系统开发笔记 阅读(13074) 评论(0) 推荐(0)
摘要: 并发数太大会直接死,这里有时候需要多试几次 阅读全文
posted @ 2019-11-23 17:14 唯一客服系统开发笔记 阅读(707) 评论(0) 推荐(0)
摘要: 先启动固定数量的goroutine,每个goroutine都在从channel中获取数据,如果这个channel为空,就阻塞等待在那里channel中传递一个Car类型,这个类型主要负责具体做的任务也就是channel就是运输通道,在这个通道上传递Car这样一个汽车,来一辆车就处理这辆车的工作,没有 阅读全文
posted @ 2019-11-23 16:13 唯一客服系统开发笔记 阅读(378) 评论(0) 推荐(0)
摘要: 当使用imap进行读取邮件体的时候,有个函数可以根据传入的开始和结束索引来一次读取多条邮件内容主要逻辑类似这样,从1开始, 1,10 11,20 21,30 或者 1,31 32,63 这样的分批处理 现在就是使用数组切片来模拟这个过程,总数据12条,每次10个,要分两次,开始和结束分别为,1,10 阅读全文
posted @ 2019-11-23 12:47 唯一客服系统开发笔记 阅读(1383) 评论(0) 推荐(0)
摘要: 如果有一个大循环,里面每一个都开启groutine,那么瞬间就会开启非常多的groutine,要解决这个问题就要用channel的阻塞特性来解决 看时间每次只是同时执行两个 阅读全文
posted @ 2019-11-22 20:57 唯一客服系统开发笔记 阅读(830) 评论(0) 推荐(0)
摘要: 这个要解决的问题是,比如如果有一个大循环,取自一个大的文件,要进行逻辑处理,那么这个逻辑的代码要放在循环每一行的循环体里面,这样有可能会出现一个for循环的逻辑嵌套,一层又一层,类似俄罗斯套娃.如果放在外面那么就需要把大循环的每一行数据存到一个数组或者切片里面,这样会占很大的内存 那么就可以使用这种 阅读全文
posted @ 2019-11-22 20:38 唯一客服系统开发笔记 阅读(400) 评论(0) 推荐(0)
摘要: 需求是统计某个业务的访问个数日志服务器上的目录结构是如下,搜索最近7天的指定关键字数据,并排重统计个数: for循环的一行表示形式for ((i=15;i<=21;i++));do xxx;donewhile循环的一行表示 while true;do xxx;done获取当前年月`date +%Y- 阅读全文
posted @ 2019-11-22 19:53 唯一客服系统开发笔记 阅读(2983) 评论(0) 推荐(0)
摘要: 连接上imap服务后,什么都不操作,我测试大约5分钟会被服务端断掉,测试代码如下 为了保持住这条连接,每隔10秒列取一下邮件夹列表,这样就可以一直保持住连接了。开三个窗口,一个窗口不停的netstat查看tcp连接情况,一个窗口运行代码,一个窗口打开tcpdump监听端口查看数据请求 while t 阅读全文
posted @ 2019-11-21 23:55 唯一客服系统开发笔记 阅读(726) 评论(0) 推荐(0)
摘要: OpenFile得到一个File,然后调用它的Write,参数是字节切片Stat看看返回错误没有 阅读全文
posted @ 2019-11-21 23:15 唯一客服系统开发笔记 阅读(384) 评论(0) 推荐(0)
摘要: 执行下面这俩命令,找到对应的IP,增加host就能解决 nslookup github.global.ssl.fastly.Netnslookup github.com root@tao-PC:/var/www/html/go-project/test# nslookup github.global 阅读全文
posted @ 2019-11-21 21:45 唯一客服系统开发笔记 阅读(844) 评论(0) 推荐(0)
摘要: 待修正 阅读全文
posted @ 2019-11-21 20:27 唯一客服系统开发笔记 阅读(594) 评论(0) 推荐(0)
摘要: 原理是把服务器的端口转发到本机的端口上,比如把服务器的9001端口转发给本机的80端口,服务器使用nginx反向代理到9001端口绑定域名就可以正常访问本地电脑中的网站了 secureCRT端口转发的配置 nginx反向代理的配置 本机就是正常安装和下载lnmp的集成环境就可以 阅读全文
posted @ 2019-11-21 17:47 唯一客服系统开发笔记 阅读(3417) 评论(0) 推荐(0)
摘要: 解决nginx: [emerg] directive "rewrite" is not terminated by ";"nginx的rewite规则有时候没注意会报这个错误,原因是规则中存在{}会被认为是规则结尾报错,使用""双引号把规则包起来可以避免这个错误还有就是nginx中的规则中/斜杠不必 阅读全文
posted @ 2019-11-21 17:23 唯一客服系统开发笔记 阅读(4386) 评论(0) 推荐(1)
摘要: 当程序中使用root账号连接mysql时报以下错误,但是使用命令行是可以正常连接的,那么就查询下mysql数据库的user表,查看下当前用户的密码加密方式,看看是不是unix_socketMariaDB [mysql]> select user,plugin from user;+ + +| use 阅读全文
posted @ 2019-11-20 23:21 唯一客服系统开发笔记 阅读(1486) 评论(0) 推荐(1)
摘要: 判断是linux系统,并且uid为0,allowRoot是通过命令行传参传进来的,通过flag包解析出来的,可以使用go run node.go -h看到这些参数 log.Fatal传入的是一个可变参数v ...interface{},并且可以传入任意类型,可变参数的使用和切片很像 如果要真的传入一 阅读全文
posted @ 2019-11-20 22:14 唯一客服系统开发笔记 阅读(955) 评论(0) 推荐(0)
摘要: 利用nginx的rewrite的指令,可以实现url的重新跳转,rewrtie有四种不同的flag,分别是redirect(临时重定向)、permanent(永久重定向)、break和last。其中前两种是跳转型的flag,后两种是代理型,跳转型是指有客户端浏览器重新对新地址进行请求,代理型是在WE 阅读全文
posted @ 2019-11-20 20:20 唯一客服系统开发笔记 阅读(277) 评论(0) 推荐(0)
摘要: 需要go升级到1.12或以上 创建一个server.go 生成go.mod文件 阅读全文
posted @ 2019-11-18 19:57 唯一客服系统开发笔记 阅读(4119) 评论(0) 推荐(1)
摘要: go中实现一个tcp服务,首先是要监听端口,接收请求,这个地方会被阻塞等待当客户端连接过来,会开一个grountine去处理这条客户端的tcp连接,因此可以同时处理多条连接 在连接中,要循环的去读取客户端传递过来的数据,这样就可以不停的处理客户端的请求数据在读取数据的时候,每次我只读一个字节,这样方 阅读全文
posted @ 2019-11-17 23:55 唯一客服系统开发笔记 阅读(1142) 评论(0) 推荐(0)
摘要: gocron源码中使用的是马卡龙框架,下面这个就是安装这个框架,和一般的MVC框架很像go get gopkg.in/macaron.v1git clone https://github.com/golang/crypto.git $GOPATH/src/golang.org/x/crypto 监听 阅读全文
posted @ 2019-11-16 17:55 唯一客服系统开发笔记 阅读(736) 评论(0) 推荐(0)
摘要: gocron源码中使用的是下面这个第三方包来实现的,下面就单独的拿出来测试以下效果,和官方flag包差不多 go get github.com/urfave/cli 阅读全文
posted @ 2019-11-16 16:32 唯一客服系统开发笔记 阅读(304) 评论(0) 推荐(0)
摘要: 调用flag包可以方便的获取到命令行中传递的参数,比如可以实现类似nginx执行程序获取命令行参数执行不同操作的目标 阅读全文
posted @ 2019-11-16 15:35 唯一客服系统开发笔记 阅读(289) 评论(0) 推荐(0)
摘要: 直接使用go 函数名()可以开启一个grountine,channel可以接收信息并且如果没有数据时会阻塞住channel对应的是底层数据结构的引用,复制channel和函数传参都是拷贝的引用make的时候第二个参数是1,就表示是有缓存的channel 无缓存的channel也叫同步channel 阅读全文
posted @ 2019-11-16 12:31 唯一客服系统开发笔记 阅读(324) 评论(0) 推荐(0)
摘要: gocron源代码中的Action那个地方,就是个空接口类型Action interface{},可以传递任意类型进去,这里是传了个函数进去 接口是合约,任何类型只要实现了接口中的方法,那么就可以认为实现了这个接口。对于没有方法的接口interface{}类型,可以看做所有的类型都实现了这个接口,因 阅读全文
posted @ 2019-11-15 23:27 唯一客服系统开发笔记 阅读(294) 评论(0) 推荐(0)
摘要: 源码中有这么一句,这个函数要求返回的是[]cli.Command,cli.Command类型的切片,这个地方直接使用字面值初始化了一个切片返回去了 数组的字面值初始化,一般是需要指定数组的大小,可以使用...三个点来代替大小,根据后面初始化的个数来计算,下面就是字面值初始化一个数组 切片和数组很类似 阅读全文
posted @ 2019-11-15 22:33 唯一客服系统开发笔记 阅读(265) 评论(0) 推荐(0)
摘要: 这个数据库类主要处理了单例模式下创建数据库对象时,如果有两次较长时间的间隔去执行sql操作,再次处理会出现连接失败的问题,利用一个cache数组存放pdo对象与时间戳,把两次执行之间的时间进行了比较,如果间隔超过了10秒就再次new PDO创建连接,没有超过的情况下会继续使用原来的连接,并且因为每次 阅读全文
posted @ 2019-11-15 20:04 唯一客服系统开发笔记 阅读(870) 评论(0) 推荐(0)
摘要: 上面那些代码非常不容易理解,我们需要把它拆分来看当我们直接实例化一个类的时候,如果大括号竖着排,那么里面的成员赋值后要加个逗号 定义一个接口,接口里面有一个成员方法 定义另一个类型,这个类型刚好就有这个方法,那么就可以认为这个类型实现了接口 这个时候如果定义Flag类型的变量,那么StringFla 阅读全文
posted @ 2019-11-14 23:28 唯一客服系统开发笔记 阅读(379) 评论(0) 推荐(0)
上一页 1 ··· 37 38 39 40 41 42 43 44 45 ··· 60 下一页