随笔分类 -  go语言学习

摘要:go语言切片作为函数参数 代码参考 輸出結果 輸出結果分析 作为函数参数是值拷贝,在函数中slice的修改是通过slice中保存的地址对底层数组进行修改。但是删除操作,需要传递地址。 作为函数参数,当在函数中使用append增加切片元素的时候,就相当于创建一个新的变量。 阅读全文
posted @ 2020-04-07 15:31 Myuniverse 阅读(1750) 评论(0) 推荐(0) 编辑
摘要:注意:Go中函数接收器不能改变接收者的地址 输出结构: 阅读全文
posted @ 2020-04-06 17:38 Myuniverse 阅读(185) 评论(0) 推荐(0) 编辑
摘要:为什么代理 因为本人最近看了一本《DDoS攻击与防范深度剖析》,认识到了实现反向代理是防范DDoS的一种可行手段。因此本着好奇的心情,大概的了解一下go的http反向代理实现。 代理的分类 正向代理:隐藏真实的客户端向服务端请求,服务器服务端是透明。好比如:VPN。如下图所示 反向代理:真正的服务端 阅读全文
posted @ 2019-11-23 21:33 Myuniverse 阅读(1051) 评论(0) 推荐(0) 编辑
摘要:简述 Go 提供一个smtp(简单邮件传输协议)库作为其网络包的一部分,“net/smpt"公开了一些可以立即使用的功能 Gomail 一个比较成熟的第三包,提供一个快捷、简单的解决方案,可以轻松地发送电子邮件。 "Gomail包下载地址" 。下载完放在src/gopkg.in目录下 发送邮件主要思 阅读全文
posted @ 2019-11-20 00:29 Myuniverse 阅读(484) 评论(0) 推荐(0) 编辑
摘要:前提:因为比较信的过阿里云的短信服务,因此本人调用阿里云上面的阿里通信。没有的可以先 "注册阿里云账号" 。并且发短信时需要钱的,需要充钱。 主要流程 登录阿里云 进入阿里云的短信服务。控制台中记录 添加签名和模块(要注意:验证码场景可与验证码模版匹配发送,通用场景可与验证码、短信通知、推广短信、国 阅读全文
posted @ 2019-11-18 23:45 Myuniverse 阅读(890) 评论(0) 推荐(0) 编辑
摘要:爬虫有危险,须谨慎 阅读全文
posted @ 2019-11-12 23:06 Myuniverse 阅读(432) 评论(0) 推荐(0) 编辑
摘要:```go package main import( "fmt" "net/http" ) //浏览器上输入的url url:localhost:8080/?url=12345 func getParameter(w http.ResponseWriter,r *http.Request){ parameter := r.URL.Query().Get("url") //获取带有参数的给请求的ur 阅读全文
posted @ 2019-11-12 20:38 Myuniverse 阅读(2813) 评论(0) 推荐(0) 编辑
摘要:是什么:全双工通信协议。 能做什么:服务端可以主动的发送数据给客户端 golang应用到的包 server.go client(angular) 阅读全文
posted @ 2019-10-28 15:28 Myuniverse 阅读(705) 评论(0) 推荐(0) 编辑
摘要:使用ini为后缀的配置文件 使用第三方库为 代码样例 总结 time.Ticker适合用来制作监听器 阅读全文
posted @ 2019-10-27 17:32 Myuniverse 阅读(278) 评论(0) 推荐(0) 编辑
摘要:使用方法 阅读全文
posted @ 2019-10-26 22:56 Myuniverse 阅读(11256) 评论(1) 推荐(2) 编辑
摘要:长连接断开的原因 连接超时,浏览器自动断开连接 进程被杀死 不可抗拒因素 根据不同情况,高效保活的方式 连接超时:心跳机制 进程保活 断线重连 重点心跳机制 产物 心跳包 心跳应答 轮询与心跳区别 轮询一次相当于:建立一次TCP连接+断开连接 心跳:在已有的连接上进行保活 心跳设计要点 心跳包的规格 阅读全文
posted @ 2019-10-26 22:55 Myuniverse 阅读(1758) 评论(0) 推荐(0) 编辑
摘要:使用os包中的FileInfo接口提 参考代码 参考代码 go 按行读取文件 使用bufio包 阅读全文
posted @ 2019-10-22 23:59 Myuniverse 阅读(4197) 评论(0) 推荐(0) 编辑
摘要:定义:缓存是一种保存资源副本并在下次请求时直接使用该副本的技术 制作缓存的优点 缓解服务器压力(根据实际情况,不在每次去请求资源) 提升性能 减少带宽消耗 缓存种类 私有缓存:代理不可以存储的数据,只属于用户 共享缓存:代理可以存储的数据 浏览器缓策略(侵权,告知删) 缓存的底层数据结构为键值对,即 阅读全文
posted @ 2019-10-20 23:01 Myuniverse 阅读(174) 评论(0) 推荐(0) 编辑
摘要:基础概念 请求:客户端访问服务端 响应:服务端对客户端的应答 示例图 带有特殊请求头和cookie值得客户端请求方式 使用:http.NewRequest,Do()组合。并且在创建请求的时候,带上cookie值和其他请求头 参考代码 go package main import ( "bytes" 阅读全文
posted @ 2019-10-19 17:51 Myuniverse 阅读(1114) 评论(0) 推荐(0) 编辑
摘要:channel的长度决定方法 根据上下游的速度比例成线性关系 根据CPU的性能进行设置 根据业务需求 go手写创建循环队列(链表的形式实现) 循环队列示例图 package main import( "fmt" "strconv" ) // 队列指针 type Qpointer struct{ Le 阅读全文
posted @ 2019-10-14 23:05 Myuniverse 阅读(1180) 评论(0) 推荐(0) 编辑
摘要:go正则匹配多行字符串的一个正则式 go ` 1) 初始化页面元素未达到要求 Expected false Failed: No 2) 初始化页面元 Failed: No element found 3) 初始页e多行本框好 Expected fa Failed: No element found 阅读全文
posted @ 2019-10-13 23:40 Myuniverse 阅读(709) 评论(0) 推荐(0) 编辑
摘要:参考代码 go package main import( "fmt" "sync" "time" "runtime" ) var wg sync.WaitGroup // 生产者 func Send(ch chan int){ x:=0 defer func(){ if err:=recover() 阅读全文
posted @ 2019-10-13 00:16 Myuniverse 阅读(1753) 评论(0) 推荐(0) 编辑
摘要:参考博文: "一步步提升Go语言生成随机字符串的效率" 根据自己的理解写出来的性能测试函数: go package generateString import( "time" "testing" "math/rand" ) var letterRunes = []rune("abcdefghijkl 阅读全文
posted @ 2019-10-08 22:55 Myuniverse 阅读(207) 评论(0) 推荐(0) 编辑
摘要:go reflect学习 浅谈reflect包在结构体中的运用 接口 》反射 》结构体 》结构体字段的操作(结构体字段赋值) 接口 》反射 》结构体 》结构体函数(操作结构体的函数) reflect.value.Elem()的作用:返回一个interface或者pointer的值 reflect.t 阅读全文
posted @ 2019-10-08 01:04 Myuniverse 阅读(653) 评论(0) 推荐(0) 编辑
摘要:简单图示 把数据放到消息队列叫做生产者 从消息队列中获取数据叫做消费者 消息队列 概念:生产者和消费者之间的一个中间件。本质是一个队列。 消息队列能做的事情(为什么) 解耦(各个的部分,互不影响) 异步处理(每个部分异步处理,缩短时间) 削峰/限流(降低服务器的压力) 消息队列要注意的问题 数据保存 阅读全文
posted @ 2019-10-06 00:33 Myuniverse 阅读(352) 评论(0) 推荐(0) 编辑