免费云服务器,这坑小心你也踩了

有些小伙伴可能不知道,亚马逊AWS对新用户有个免费体验一年的活动。如果希望体验免费亚马逊AWS云服务器产品,或者看看他们后台面板长什么样,体验产品的速度和性能,又或者准备搭建一个免费梯子,可以注册玩玩。 很简单,全程基本都是中文,不用担心看不懂英文。 我是2018年6月30号注册的账号,在EC2面板创建了一个实例,平时就上上谷歌;国内网速慢,在上面下载一些kubernetes镜像,编译一些golang项目。 悲剧的是我把时间记错了,以为是2016年8月10号开始使用的,能用到今年8月。直到8月份...阅读全文

Segmentfault 2019-10-14 04:02:37 小碗汤

用Go 学UNIX环境编程 - 记录锁

本文参考《Unix环境高级编程》,Mac下实验结果可能会和书上有所不同(因为书上是以freeBSD进行实验),希望读者可以在不同的系统下进行实验,如果文章有错误的地方,还请提出,我会及时修正。 一、背景: 试想一下当两个人同时编辑一个文件时,其后果是什么样的呢?在unix系统中,文件的状态取决于写该文件的最后一个进程,比如数据库系统,需要保证多个进程写文件,依旧保持正确性。因此unix提供了记录锁的机制,作用是当一个进程正在读或者写一个文件时可以阻止另一个进程对同一个区域进行保护避免冲突。 在g...阅读全文

掘金 2019年10月13日 jiangjincc

为什么Go中有的自定义error会导致内存溢出

分享一个在go tour上看到的练习题,练习里要求用户自己定义一个错误类型,实现error接口,函数在参数不满足条件的时候返回自定义的错误类型的值。练习中特别提示用户不要在实现的Error方法里直接使用fmt.Sprint(e)以避免造成程序内存溢出。 下面贴一下具体的练习题 Practice 从之前的练习中复制 Sqrt 函数,修改它使其返回 error 值。 Sqrt 接受到一个负数时,应当返回一个非 nil 的错误值。复数同样也不被支持。 创建一个新的类型 type ErrNegative...阅读全文

掘金 2019年10月13日 kevinyan

深入理解Golang之interface和reflect

前言 interface(即接口),是Go语言中一个重要的概念和知识点,而功能强大的reflect正是基于interface。本文即是对Go语言中的interface和reflect相关知识较为全面的梳理,也算是我阶段学习的总结,以期温故而知新。文章较长,请读者做好心理准备。 interface(接口) 定义 在Go语言中,如果自定义类型(比如struct)实现了某个interface中的所有方法,那么就可以说这个类型实现了这个接口。接口可如下定义: type 接口名称 interface { ...阅读全文

掘金 2019年10月13日 Turling_hu

kubernetes垃圾回收器GarbageCollector Controller源码分析(二)

kubernetes版本:1.13.2 接上一节:kubernetes垃圾回收器GarbageCollector Controller源码分析(一) 主要步骤 GarbageCollector Controller源码主要分为以下几部分: monitors作为生产者将变化的资源放入graphChanges队列;同时restMapper定期检测集群内资源类型,刷新monitors runProcessGraphChanges从graphChanges队列中取出变化的item,根据情况放入attem...阅读全文

3行写爬虫 - 使用 Goribot 快速构建 Golang 爬虫

zhshch2002/goribot: [Crawler/Scraper for Golang]Make a Golang spider in 3 lines是我的一个业余项目,目的是能尽可能简洁的使用Golang开发爬虫应用。 注意:这个项目正处于beta版本,不建议直接使用在重要项目上。Goribot的功能都经过测试,如果有问题欢迎来提issues。 安装 go get -u github.com/zhshch2002/goribot 复制代码访问网络 不需要冗长的初始化和配置过程,使用go...阅读全文

掘金 2019年10月13日 zhshch2002

golang workpool , 工作池

gowp golang worker pool ,线程池 , 工作池 并发限制goroutine池。 限制任务执行的并发性,而不是排队的任务数。 无论排队多少任务,都不会阻止提交任务。 通过队列支持 golang 工作池公共库 支持最大任务数, 放到工作池里面 并等待全部完成 package main import ( "fmt" "time" "github.com/xxjwxc/gowp/workerpool" ) func main() { wp := workerpool.New(10)...阅读全文

简书 2019.10.13 22:48:12 aside section . 等

Go gRPC 系列六:处理标准动作,实现一元/流拦截器

前言 大家好,我是煎鱼,在处理一些统一的标准动作时,如果你想在每个 RPC 方法的前或后做某些事情,怎么做呢? 本章节将要介绍的拦截器(interceptor),就能帮你在合适的地方实现这些功能。 有几种方法 在 gRPC 中,大类可分为两种 RPC 方法,与拦截器的对应关系是: 普通方法:一元拦截器(grpc.UnaryInterceptor) 流方法:流拦截器(grpc.StreamInterceptor) 看一看 grpc.UnaryInterceptor func UnaryInterc...阅读全文

掘金 2019年10月13日 煎鱼啊

Uber Go语言编码规范

Uber是世界领先的生活出行服务提供商,也是Go语言的早期adopter,根据Uber工程博客的内容,大致可以判断出Go语言在Uber内部扮演了十分重要的角色。Uber内部的Go语言工程实践也是硕果累累,有大量Go实现的内部工具被Uber开源到github上,诸如被Gopher圈熟知的zap、jaeger等。2018年年末Uber将内部的Go风格规范开源到github,经过一年的积累和更新,该规范已经初具规模,并受到广大Gopher的关注。本文是该规范的中文版本,并”夹带“了部分笔者的点评,希望...阅读全文

Tony Bai 十月 12, 2019 bigwhite

Golang学习笔记 - flag解析命令行参数

敲黑板,黑... 嘿重要,~ 必须掌握 ~ 使用go语言里面的 flag来解析命令行参数,代码实现还是简洁,简单,但据说实际开发经常会用它来解析命令行参数. 下面先把用到flag包下面的方法给给位学习的朋友贴出来,同时也是自我巩固如何查看包文件,方法... Golang中文版文档地址: https://studygolang.com/pkgdoc 列重点 部分代码说明: flag.StringVar(&user, "u", "", "用户名默认为空") flag.StringVar(&pwd, ...阅读全文

简书 2019.10.13 19:54:06 aside section . 等

加密与解密系列 - 对称加密

原文地址 tpkeep.com 本文讨论的对称加密算法主要包括 DES、3DES、AES DES 明文:64 bit 密文:64 bit 密钥:56/64 bit(每 7 位插入一个校验位的时候为 64 bit) 其设计思想充分体现了香农提出的混淆和扩散原则 image.png DES 使用的是 Feistel 结构来加密的,一共需要 16 轮,加密过程如下: 将明文进行初始置换(通过置换表) 将置换后的数据分为左右 L1 R1 各 32 bit 将 48 bit 的子密钥与 R1 作为轮函数F...阅读全文

简书 2019.10.13 20:09:59 aside section . 等

Actor模型是解决高并发的终极解决方案

写在开始 一般来说有两种策略用来在并发线程中进行通信:共享数据和消息传递。使用共享数据方式的并发编程面临的最大的一个问题就是数据条件竞争。处理各种锁的问题是让人十分头痛的一件事。 传统多数流行的语言并发是基于多线程之间的共享内存,使用同步方法防止写争夺,Actors使用消息模型,每个Actor在同一时间处理最多一个消息,可以发送消息给其他Actor,保证了单独写原则。从而巧妙避免了多线程写争夺。和共享数据方式相比,消息传递机制最大的优点就是不会产生数据竞争状态。实现消息传递有两种常见的类型:基于...阅读全文

简书 2019.10.13 19:10:49 aside section . 等

如何提高网站的吞吐量

吞吐量定义 百科 吞吐量是指对网络、设备、端口、虚电路或其他设施,单位时间内成功地传送数据的数量(以比特、字节、分组等测量)。 以上的定义比较宽泛,定义到网站或者接口的吞吐量是这样的:吞吐量是指系统在单位时间内处理请求的数量。这里有一个注意点就是单位时间内,对于网站的吞吐量这个单位时间一般定义为1秒,也就是说网站在一秒之内能处理多少http(https/tcp)请求。与吞吐量对应的衡量网站性能的还有响应时间、并发数、QPS每秒查询率。 响应时间是一个系统最重要的指标之一,它的数值大小直接反应了系...阅读全文

简书 2019.10.13 19:20:45 aside section . 等

## nike snkrs 分析

nike snkrs 分析 原文地址:https://github.com/zhaojunlike/nike-snkrs-api snkrs bot api 该项目只提供演示api调用结果,目前实现功能: 登录 注册 抢货 AI 真人模拟 cookies生成 akamai AI风控过检 自动养号,代理IP 2019-10-06-11-27-15 登录流程: 1.访问登录页面 set-cookie: bm_sz=B37D70D8485724389F741A447D64272E~YAAQBWgDF6...阅读全文

简书 2019.10.13 17:02:03 aside section . 等

用Go学UNIX环境编程 - 记录锁

本文参考《Unix环境高级编程》,Mac下实验结果可能会和书上有所不同(因为书上是以freeBSD进行实验),希望读者可以在不同的系统下进行实验,如果文章有错误的地方,还请提出,我会及时修正。 一、背景: 试想一下当两个人同时编辑一个文件时,其后果是什么样的呢?在unix系统中,文件的状态取决于写该文件的最后一个进程,比如数据库系统,需要保证多个进程写文件,依旧保持正确性。因此unix提供了记录锁的机制,作用是当一个进程正在读或者写一个文件时可以阻止另一个进程对同一个区域进行保护避免冲突。 在g...阅读全文

Segmentfault 2019-10-14 04:02:36 jiangjincc

一款功能强大的TCP/UDP工具---flynet

前言 前段时间做某个项目,由于涉及到tcp/udp方面的知识比较多,于是就索性趁热打铁,写个工具来强化相关知识。另外由于并非十分擅长Golang,所以也顺便再了解下Golang吧。 简介 flynet 是一款Golang语言编写的命令行工具,目前支持的功能包括: Http代理 本地Socks5代理 C/S模式的Socks5代理,支持TCP/UDP方式 内网穿透 ... 项目目前分为clien端和sever端,除http、本地socks5代理两端都支持外,其余功能需要两端配合使用。 使用方式 安装...阅读全文

Segmentfault 2019-10-14 04:02:36 Asche

3行写爬虫 - 使用 Goribot 快速构建 Golang 爬虫

[zhshch2002/goribot: [Crawler/Scraper for Golang]Make a Golang spider in 3 lines](https://github.com/zhshch2002/goribot)是我的一个业余项目,目的是能尽可能简洁的使用Golang开发爬虫应用。 **注意:这个项目正处于beta版本,不建议直接使用在重要项目上。Goribot的功能都经过测试,如果有问题欢迎来提issues。** # 安装 ```shell go g...阅读全文

Go语言中文网 2019-10-13 18:00:37 zhshch

解决go get golang.org/x 包失败

某天在用golang写代码,需要用到ssh功能,于是在网上搜了一下发现有个golang.org/x/crypto/ssh包,很自然就想到要安装 go get -u golang.org/x/crypto/ssh 你会发现由于golang.org官网各种网络问题,很难安装 哈哈,找到一种goproxy的解决方案,该方案适用于go 1.13及以上的版本 ding@ding-Lenovo:~$ go version go version go1.13.1 linux/amd64 ding@ding-L...阅读全文

简书 2019.10.13 17:11:23 aside section . 等

CentOS7安装Go环境

一、下载go 执行wget https://studygolang.com/dl/golang/go1.10.1.linux-amd64.tar.gz或者下载tar包到本地再上传到服务器; 注:Go下载地址:go1.10.1.linux-amd64.tar.gz 建立Go目录:mkdir /go/work/go 建立GoPath目录:mkdir /go/work/gopath 解压缩:mv go1.10.1.linux-amd64.tar.gz /go/work/; tar -xvf go1.1...阅读全文

简书 2019.10.13 11:46:10 aside section . 等