Go语言中文网 为您找到相关结果 1205

golang中net/http包用法

http包包含http客户端和服务端的实现,利用Get,Head,Post,以及PostForm实现HTTP或者HTTPS的请求. 当客户端使用完response body后必须使用close对其进行关闭.如下所示 resp, err := http.Get("http://example.com/") if err != nil { // handle error } defer resp.Body.Close() body, err := ioutil.ReadAll(resp.Body) // ... 变量: 以下错误是http server使用的 var ( ErrHeaderTooLong = &ProtocolError{"header too long"} ErrShortBo...阅读全文

博文 2015-03-26 03:00:01 msnsj

Golang优秀开源项目汇总(持续更新。。。)

Golang优秀开源项目汇总(持续更新。。。) 我把这个汇总放在github上了, 后面更新也会在github上更新。 https://github.com/hackstoic/golang-open-source-projects 。 欢迎fork, star , watch, 提issue。 资料参考来源:http://studygolang.com/projects 监控系统 序号 名称 项目地址 简介 1 OpenFalcon http://github.com/open-falcon/of-release OpenFalcon是一款小米监控系统。功能:*数据采集免配置:agent自发现、支持Plugin、主动推送模式; *容量水平扩展:生产环境每秒50万次数据收集、告警、存储、绘图...阅读全文

博文 2016-08-13 22:00:06 hackstoic

golang中发送http请求的几种常见情况

整理一下golang中各种http的发送方式 最初的一些项目中,很多的地方都使用到了golang发送http请求,之后再对请求收到的结果进行一些处理,所用到的模式也比较固定,这里整理一下集中http的发送方式,先记录这么多,再一点一点添加。 最基本的场景 方式一 使用http.Newrequest 先生成http.client -> 再生成 http.request -> 之后提交请求:client.Do(request) -> 处理返回结果,每一步的过程都可以设置一些具体的参数,下面是一个最朴素最基本的例子: //question ???将stdout重定向为response信息??? package main import ( "fmt" "io" "net/http" "os" ) f...阅读全文

博文 2015-07-20 03:00:00 Goden

使用Go env命令设置Go的环境

前言 在进行Go开发的时候,设置Go的环境变量信息是必须的。下面介绍windows和Linux,以及Go自身提供的命令进行设置的形式 Linux的设置 In Linux or macOS, you can execute the below commands.(在Linux或者macOS,你可以执行下面的命令) # Enable the go modules feature export GO111MODULE=on # Set the GOPROXY environment variable export GOPROXY=https://goproxy.io 但是这种有个不好的地方,就是如果换一个终端或者重新开机,就没有了。那么我推荐,在/etc/profile.d/这个文件夹下面,写一个...阅读全文

博文 2019-11-05 00:04:18 liuxuzxx

Golang设置国内代理

Golang V1.13之后支持通过设置变量GOPROXY来修改代理地址,默认的代理服务器 https://proxy.golang.org在国内访问经常出现timeout image.png 可以通过设置国内代理来加速下载 详见:https://github.com/goproxy/goproxy.cn/blob/master/README.zh-CN.md 在终端执行即可 go env -w GOPROXY=https://goproxy.cn,direct image.pn...阅读全文

博文 2019-12-11 06:32:39 李小西033

go proxy 设置

在Go 1.13中,我们可以通过GOPROXY来控制代理,以及通过GOPRIVATE控制私有库不走代理。 设置GOPROXY代理: go env -w GOPROXY=https://goproxy.cn,direct 设置GOPRIVATE来跳过私有库,比如常用的Gitlab或Gitee,中间使用逗号分隔: go env -w GOPRIVATE=*.gitlab.com,*.gitee.com 如果在运行go mod vendor时,提示Get https://sum.golang.org/lookup/xxxxxx: dial tcp 216.58.200.49:443: i/o timeout,则是因为Go 1.13设置了默认的GOSUMDB=sum.golang.org,这个网站是...阅读全文

博文 2019-10-09 18:32:46 aside section ._1OhGeD

如何Golang开发Android应用(for golang1.4)

载随意:文章出处 http://shengxiang.me/article/38/write-android-program-with-golang.html Golang是一门强类型编程语言,2009年推出,在今年2014年,开始支持android的开发了。 ![golang-android](/static/upload/201411200924478.png) 环境配置好复杂,我不得不唠叨几句。 需要下载golang1.4rc版,下载ndk,然后编译。 然后用go get 下载gobind这个工具, 然后,将写好的代码用gobind转化下,然后使用特殊的编译命令,将代码编译成.so文件,将生成的相关文件,放到android studio的项目中。然后java代码中,利用jni调用引用的...阅读全文

博文 2014-11-20 22:44:09 shengxiang

go get 获得 golang.org 的项目

go get 用来动态获取远程代码包的,目前支持的有BitBucket、GitHub、Google Code和Launchpad。这个命令在内部实际上分成了两步操作:第一步是下载源码包,第二步是执行go install。下载源码包的go工具会自动根据不同的域名调用不同的源码工具,对应关系如下: BitBucket (Mercurial Git) GitHub (Git) Google Code Project Hosting (Git, Mercurial, Subversion) Launchpad (Bazaar) go get 的参数说明: -d 只下载不安装 -f 只有在你包含了-u参数的时候才有效,不让-u去验证import中的每一个都已经获取了,这对于本地fork的包特别有用 -...阅读全文

博文 2015-12-30 03:00:00 ghj1976

golang和java的http性能对比

公司要重构一个统计项目,统计部分要提供一个web收数的接口,因为统计系统的日志量十分大,所以对web服务的性能要求很严格,在技术选择的背景下做了golang和java的性能对比. 测试环境: mac pro 13.4.0 golang: go version go1.3.1 darwin/amd64 java: 1.7.0_71, 基于tomcat容器 测试工具 apache Ab工具: http://httpd.apache.org/docs/2.2/programs/ab.html 测试流程 golang使用源生的net/http服务搭建http项目,接口输出hello world java使用servlet 搭建web项目,接口同样输出hello world ab工具使用 ab -c ...阅读全文

博文 2015-01-13 08:00:06 dandy

go get 代理设置

前提: 假设安装好git 我的FQ方式(也可以使用别的方式): 使用 ishadowsocks 方式FQ 临时设置Windows下代理: 在控制台执行如下命令,后面的的代理值根据你具体的代理进行设置 set http_proxy=http://127.0.0.1:1080/pac?t=201603231602138322 set https_proxy=https://127.0.0.1:1080/pac?t=201603231602138322 临时设置Linux下代理: 在控制台执行如下命令,后面的的代理值根据你具体的代理进行设置 http_proxy=http://127.0.0.1:1080/pac?t=201603231602138322 https_proxy=https://1...阅读全文

博文 2016-03-24 02:00:01 simplelovecs

Golang爬虫全攻略

本文地址:https://www.jianshu.com/p/4e53d4727152 一、简介 Golang诞生已经超过十个年头了,发展得愈发完善,其简单方便的协程并发机制使得其在爬虫领域有着一定的天赋。 首先我们来看一看,Golang相对于Python这个爬虫领域的传统强者,有哪些优点和缺点。 优点: 完善简便的协程并发机制 并发数量大 占用资源少 运行速度更快 部署方便 缺点: 数据处理比较繁琐 成熟工具不是很多 资料较少 实现相同逻辑需要的代码更多 由于Golang本身静态语言的特性,和其特别的异常处理方式等等原因,在发起较复杂的请求时需要的代码量自然会比Python多不少,但是其并发的数量也是远超Python的,所以两者应用的场景并不十分相同,我们可以根据需要灵活的选择。 在刚刚接...阅读全文

博文 2019-05-20 18:34:43 王南北丶

go mod使用

最近由于换工作,开始交接工作。整理以前的工作内容,由于组内就我一个在做go和大数据。 所以开发没有规划,当时是怎么快怎么来。go也是使用最传统的go path的方式管理的。都是手动管理依赖的。现在交接给他人,需要多人开发,发现很多问题。比如版本问题,各种依赖的问题等等。 由于工作原因,几乎所有主流语言都写过。所以,对应语言包管理工具也都了解和使用过。我前面有写过maven的使用。 maven是使用过的功能最强大的包管理工具了,maven定位是项目管理工具。pip和npm都是及格的产品。 我个人觉得,一个包管理工具应该有以下功能: 基本功能 依赖管理 依赖包版本控制 对应的包管理平台 可以私有化部署 加分: 代码包是否可以复用 构建,测试,打包 发布上线 对比上面几点: 目前做的最好的也就 m...阅读全文

博文 2020-05-17 11:32:47 若与

GO语言的开源库

Indexes and search engines These sites provide indexes and search engines for Go packages: godoc.org gowalker gosearch Sourcegraph Contributing To edit this page you must be a contributor to the go-wiki project. To get contributor access, send mail to adg@golang.org from your Google Account. Dead projects If you find a project in this list that is ...阅读全文

博文 2015-02-17 03:00:01 chu888chu888

Go语言(golang)开源项目大全

内容目录 Astronomy 构建工具 缓存 云计算 命令行选项解析器 命令行工具 压缩 配置文件解析器 控制台用户界面 加密 数据处理 数据结构 数据库和存储 开发工具 分布式/网格计算 文档 编辑器 Encodings and Character Sets Games GIS Go Implementations Graphics and Audio GUIs and Widget Toolkits Hardware Language and Linguistics 日志 机器学习 Mathematics Misc Music 网络 Operating System Interfaces Other Random Toys, Experiments and Example Code P2...阅读全文

博文 2015-07-11 03:00:01 davygeek

goproxy和msocks简介

goproxy是我个人写的,和shadowsocks同类的软件。当然,在设计之初我完全不知道shadowsocks的存在,goproxy的最初目标也不是成为shadowsocks的同类。只是我一直无法实现一个可靠的,能够达成目标的系统。最后想,那这样吧,我找一个跳一跳能够够到的苹果。大幅简化的结果就是goproxy——后来我才知道shadowsocks。 shadowsocks的基本原理 shadowsocks的基本概念,就是利用某种不同于SSL的协议,将本地的socks数据流转发到远程。这个协议,在默认版本中是一个凯撒变换,后来有了aes等加密算法。goproxy也采用了类似的做法,同样支持aes等加密算法。在每次连接时,客户端先用加密通道连接服务器端,然后完成整个连接通路。这样的设计鲁棒...阅读全文

博文 2014-10-06 06:06:32 shell909090

搭建自己的ngrok服务

搭建自己的ngrok服务 三 14 bigwhite技术志 Amazon, DNS, EC2, github, Go, Golang, http, https, Linux, ngrok, ngrokd, tunnel, Ubuntu, vps, 亚马逊, 代理, 企业号, 公众号, 域名, 开源, 微信, 隧道 1 Comment 在国内开发微信公众号、企业号以及做前端开发的朋友想必对ngrok都不陌生吧,就目前来看,ngrok可是最佳的在内网调试微信服务的tunnel工 具。记得今年春节前,ngrok.com提供的服务还一切正常呢,但春节后似乎就一切不正常了。ngrok.com无法访问,ngrok虽然能连上 ngrok.com提供的服务,但微信端因为无法访问ngrok.com,导致消息一...阅读全文

博文 2015-03-23 12:13:39 bigwhite

教你如何让go get畅通无阻

目前golang开发有一些热度,仅仅在github上面就有大量的用go重写的项目或go开发创新项目。 go开发者经常需要使用go get来下载和安装第三方库或软件。经常会碰到go get无法访问,因为这些第三方库或软件或项目对应的网站被墙了。 很多人都是用shadowsocks来翻墙,但是shadowsocks是基于socks5协议的。对于go get并没有什么用处。如果我们能把socks5代理转为http代理,那就可以访问了。 一个牛逼的国人用go开发了一个可以将socks5代理转为http代理的项目cow。请点击链接进入项目,按照文档学习使用。设置非常简单,提供的说明很清晰易懂。按照说明,可以在本机启动一个http代理,以shadowsocks为二级代理。之后就可以畅通无阻的go get...阅读全文

博文 2017-02-24 15:00:10 hutaishi

A list of Go projects

Indexes and search engines These sites provide indexes and search engines for Go packages: godoc.orggo-searchgowalkerSourcegraph Contributing To edit this page you must be a contributor to the go-wiki project. To get contributor access, send mail to adg@golang.org from your Google Account. Dead projects If you find a project in this list that is de...阅读全文

博文 2014-10-13 13:00:06 julong2011

golang模拟点击浏览器

发现一个很好玩的浏览器模拟操作包,下面演示一下,打开网站,点击某个链接 package main import ( "fmt" "time" "github.com/go-vgo/robotgo" "sourcegraph.com/sourcegraph/go-selenium" ) func main() { var webDriver selenium.WebDriver var err error caps := selenium.Capabilities(map[string]interface{}{"browserName": "firefox"}) if webDriver, err = selenium.NewRemote(caps, "http://localhost:951...阅读全文

博文 2017-09-11 03:41:47 YiYou.Org

优秀的 Go 存储开源项目和库

可以看到,今年谷歌家的 Go 编程语言流行度有着惊人的上升趋势,其发展也是越来越好,因此本文整理了一些优秀的 Go 存储相关开源项目和库,一起分享,一起学习。 存储服务器(Storage Server) Go 实现的存储服务器 minio - Minio 是一个与 Amazon S3 APIs 兼容的开源对象存储服务器,分布式存储方案 rclone - “用于云存储的 Rsync” - Google Drive, Amazon Drive, S3, Dropbox, Backblaze B2, One Drive, Swift, Hubic, Cloudfile… camlistore - Camlistore 是你的个人存储系统:一种存储、同步、共享、建模和备份内容的方式 torus - ...阅读全文

博文 2017-02-14 11:00:08 编辑部的故事

重量级爬虫软件Pholcus

# pholcus [![GoDoc](https://godoc.org/github.com/tsuna/gohbase?status.png)](https://godoc.org/github.com/henrylee2cn/pholcus) [![GitHub release](https://img.shields.io/github/release/henrylee2cn/pholcus.svg)](https://github.com/henrylee2cn/pholcus/releases) Pholcus(幽灵蛛)是一款纯Go语言编写的高并发、分布式、重量级爬虫软件,支持单机、服务端、客户端三种运行模式,拥有Web、GUI、命令行三种操作界面;规则简单灵活、批...阅读全文

Beego,Go基于 Beego 博客的博客系统

学习beego时候开发的一个博客系统,在持续完善,有不足之处,望大佬们多多体谅,并且指出。感谢! ## Go Blog [![GitHub stars](https://img.shields.io/github/stars/1920853199/go-blog)](https://github.com/1920853199/go-blog/stargazers) [![GitHub forks](https://img.shields.io/github/forks/1920853199/go-blog)](https://github.com/1920853199/go-blog/network) [![GitHub license](https://img.shields....阅读全文

开源项目 2020-08-12 10:47:44 chenli

go 通过nginx代理后获取用户ip

go 如果使用自己的服务器,可以直接使用 net/http 来获取 func ip(w http.ResponseWriter, r *http.Request) { fmt.Println(r.RemoteAddr) } 另外,在net包中也有 func (c *IPConn) RemoteAddr() Addr 以上是获取用户的ip,是与用户直连的ip,如果走代理,会是代理的ip 如果通过nginx代理,上边方法获得的是nginx的服务器的ip,所以这里要设置nginx代理 proxy_set_header Remote_addr $remote_addr; nginx会 转发ip到go的服务器,在通过go获取header中的romote_adder 获取用户的ip func ip(w ...阅读全文

博文 2014-10-04 19:26:28 zggsdy

还在为go get github.com/...卡死而烦恼么

> 作为国内开发者,经常遇到一个问题,就是一片热血撞死在伟大的\*\*墙上,只能干着急,下面我们得想办法翻过这个\*\*墙,毕竟我们出去后只是为了干好事儿。 ## go get是怎么运行的 通常会使用http的方式去访问目的地址,然后下载下来。但是内部可能用使用git clone的方式去克隆,既然这样,我们解决办法就是让http和git clone都能同时走上代理,这样就能解决卡死的烦恼 ## 有一个http代理 > 假如已有 http代理是: http://localhost:8118/,后续我们就用这个地址去代理 如果没有http代理,只有socket5代理,需要看下面步骤进行转换 如果连socket5代理也没有,就需要先花钱买或者找一些免...阅读全文

Golang的演化历程

Golang的演化历程 十 25 bigwhite技术志 ANSI-C, BCPL, C, Channel, Concurrency, CSP, Go, Golang,Google, Package, RobPike, UTF8, 包, 并发编程, 标准C, 标准库, 素数筛 暂无评论 本文来自Google的Golang语言设计者之一Rob Pike大神在GopherCon2014大会上的开幕主题演讲资料“Hello, Gophers!”。Rob大神在这次分 享中用了两个生动的例子讲述了Golang的演化历程,总结了Golang到目前为止的成功因素,值得广大Golang Programmer & Beginner学习和了解。这里也用了"Golang的演化历程"作为标题。 1、Hello Go...阅读全文

博文 2014-12-05 02:00:02 anlun

Go语言net/http 解读.

Http包提供实现HTTP客户端和服务端的方法与函数。 Get、Head、Post、PostForm配合使用实现HTTP请求: resp, err := http.Get("http://example.com/") resp, err := http.Post("http://example.com/upload", "image/jpeg", &buf) resp, err := http.PostForm("http://example.com/form",url.Values{"key": {"Value"}, "id": {"123"}}) 使用结束后,应该关闭客户端的响应体: resp, err := http.Get("http://example.com/") if err ...阅读全文

博文 2015-09-24 13:00:00 fyxichen

来自腾讯架构师对,Redis的实践及思考

来自腾讯架构师对,Redis的实践及思考 导语:当面临存储选型时是选择关系型还是非关系型数据库?如果选择了非关系型的redis,redis常用数据类型占用内存大小如何估算的?redis的性能瓶颈又在哪里? 背景 前段时间接手了一个业务,响应时间达到10s左右。阅读源码后发现,每一次请求都是查询多个分表数据(task1,task2….),然后再join其他表(course,teacher..),时间全部花在了大量磁盘I/O上。脑袋一拍,重构,上redis! 为什么选择redis 拍脑袋做技术方案肯定是不行的,得用数据和逻辑说服别人才可以。 时延 时延=后端发起请求db(用户态拷贝请求到内核态)+ 网络时延 + 数据库寻址和读取 如果想要降低时延,只能减少请求数(合并多个后端请求)和减少数据库寻...阅读全文

博文 2019-08-23 23:32:50 勤奋的码农

windows 下的 eclipse安装goclipse 配置golang开发环境

1. 下载goclipse eclipse plugins http://goclipse.googlecode.com/svn/trunk/goclipse-update-site/ (建议使用proxy下载,除非你能直接访问;)) 安装完插件后,重启可以看到eclipse的右上角有个golang logo , 地鼠图标: 2. 下载golang,调试tools 下载Golang Windows 版本当前使用 go1.3.3.windows-386.zip :https://storage.googleapis.com/golang/go1.3.3.windows-386.zip 使用proxy 访问站点取得最新版本 : https://golang.org/dl/ 下载liteidex2...阅读全文

博文 2014-11-22 17:00:01 hotkit

VSCode必装Go语言以下插件

VSCode必装Go语言以下插件 VSCode 必须安装以下插件: 首先你必须安装 Golang 插件,然后再给 Go 安装工具包。 在 VS Code 中,使用快捷键:command+shift+P,然后键入:go:install/update tools,将所有 16 个插件都勾选上,然后点击 OK 即开始安装。 Installing 16 tools at /Users/maiyang/develop/goworkspace//bin gocode gopkgs go-outline go-symbols guru gorename dlv godef godoc goreturns golint gotests gomodifytags impl fillstruct goplay ...阅读全文

博文 2020-03-30 23:33:30 袁俊亮技术博客

如何看待 TJ 宣布退出 Node.js 开发,转向 Go?

TJ何许人也? 他medium自我介绍:TJ Holowaychuk,程序员兼艺术家,Koa、Co、Express、jade、mocha、node-canvas、commander.js等知名开源项目的创建和贡献者。 社区影响: https://nodejsmodules.org 第一页出现次数最多的那个少年 Quora: How is TJ Holowaychuk so insanely productive? —高产到令人发指,Quora上甚至有人猜测TJ不是一个人,而事实上他就是一个人。 substack/npmtop:对node npm社区代码贡献截止目前占到整个社区的3.04% rank percent packages author ---- ------- -------- -...阅读全文

博文 2015-03-25 13:00:04 langsim

腾讯大佬:分享百亿级请求高可用Redis分布式集群实践

腾讯大佬:分享百亿级请求高可用Redis分布式集群实践 一、Redis有哪些常用的应用场景 腾讯大佬:分享百亿级请求高可用Redis分布式集群实践 二、Redis选型思考 时延 时延=后端发起请求db(用户态拷贝请求到内核态)+ 网络时延 + 数据库寻址和读取 如果想要降低时延,只能减少请求数(合并多个后端请求)和减少数据库寻址和读取得时间。从降低时延的角度,基于单线程和内存的redis,每秒10万次得读写性能肯定远远胜过磁盘读写性能。 数据规模 以redis一组K-V为例(”hello” -> “world”),一个简单的set命令最终会产生4个消耗内存的结构。 腾讯大佬:分享百亿级请求高可用Redis分布式集群实践 关于Redis数据存储的细节,又要涉及到内存分配器(如jemalloc)...阅读全文

博文 2019-08-26 21:32:49 勤奋的码农

golang的net/http包

package http import "net/http" http包提供了HTTP客户端和服务端的实现。 Get、Head、Post和PostForm函数发出HTTP/ HTTPS请求。 resp, err := http.Get("http://example.com/") ... resp, err := http.Post("http://example.com/upload", "image/jpeg", &buf) ... resp, err := http.PostForm("http://example.com/form", url.Values{"key": {"Value"}, "id": {"123"}}) 程序在使用完回复后必须关闭回复的主体。 resp, err ...阅读全文

博文 2014-10-04 19:26:41 刘地

golang中net/http包用法

1. 前言 http包包含http客户端和服务端的实现,利用Get,Head,Post,以及PostForm实现HTTP或者HTTPS的请求. 2. 本文分析内容安排 函数 结构 3. 函数 3.1 服务端函数 func Handle(pattern string, handler Handler)将handler按照指定的格式注册到DefaultServeMux,ServeMux解释了模式匹配规则 func HandleFunc(pattern string, handler func(ResponseWriter, *Request))同上,主要用来实现动态文件内容的展示,这点与ServerFile()不同的地方。 func ListenAndServe(addr string, han...阅读全文

博文 2015-12-16 11:00:53 yuanfang_way

毛剑:Bilibili 的 Go 服务实践(上篇)

前言在微服务流行的当下,bilibili(B站)也在业务快速增长的压力下,对历史系统进行了不断的优化,在所谓“大系统小做”的背后付出了挺多的努力,尤其是 Go 作为开发语言的整体运维的支撑相对比较薄弱,例如开发、部署、测试、集成、监控,调试等。在 GopherChina 2017大会上,B 站技术总监毛剑分享了微服务化道路上踩的“坑”以及最终演进后对整个微服务框架的思考。本次演讲的内容会包含以下几块:1.B站微服务的演进过程;2.高可用;3.中间件;4.持续集成和交付;5.运维体系。作者介绍2015年起,在 bilibili(B站)负责 UGC平台和基础架构,开发了直播弹幕开源推送服务 goim ,B站分布式存储 BFS ,引导开发了B站 cache proxy,bili twemproxy...阅读全文

博文 2017-10-09 05:25:15 毛剑

大数据全攻略:10年老兵带你看尽MaxCompute大数据运算挑战与实践

大数据计算服务(MaxCompute,原名ODPS)是一种快速、完全托管的TB/PB级数据仓库解决方案。MaxCompute向用户提供了完善的数据导入方案以及多种经典的分布式计算模型,能够更快速的解决用户海量数据计算问题,有效降低企业成本,并保障数据安全。 产品地址:https://www.aliyun.com/product/odps 概况介绍: 以下为本套攻略的内容目录,查看每篇文章详细内容请查看:http://click.aliyun.com/m/26509/ 性能追求之路——MaxCompute2.0(原ODPS)的前世今生 10年老兵带你看尽MaxCompute大数据运算挑战与实践 什么是阿里云数加大数据计算服务MaxCompute? ...阅读全文

Golang Gin实践 连载十七 用 Nginx 部署 Go 应用

Golang Gin实践 连载十七 用 Nginx 部署 Go 应用 原文地址:Golang Gin实践 连载十七 用 Nginx 部署 Go 应用 前言 如果已经看过前面 “十六部连载,两部番外”,相信您的能力已经有所提升 那么,现在今天来说说简单部署后端服务的事儿 ???? 做什么 在本章节,我们将简单介绍 Nginx 以及使用 Nginx 来完成对 go-gin-example 的部署,会实现反向代理和简单负载均衡的功能 Nginx 是什么 Nginx 是一个 Web Server,可以用作反向代理、负载均衡、邮件代理、TCP / UDP、HTTP 服务器等等,它拥有很多吸引人的特性,例如: 以较低的内存占用率处理 10,000 多个并发连接(每10k非活动HTTP保持活动连接约2.5...阅读全文

golang实现的反向代理

翻阅golang包手册的时候看到net/http/httputil有一个type ReverseProxy,这个不是反向代理吗!golang自带反向代理功能?好奇就试了一下,确实非常简单,没有几行代码就实现了一个简易的反向代理服务。 关于反向代理百度百科上说的非常详细了,这里摘录一下定义: 反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个反向代理服务器。 golang实现代码 package main import ( "log" "net/http" "net/http/httputil" "net/url" ) ...阅读全文

博文 2015-10-16 21:52:06 陈杰斌

GO语言HTTP代理服务器

package main import ( "fmt" "io" "log" "net/http" "net/http/httputil" "net/url" ) func httpUserInfo(w http.ResponseWriter, r *http.Request) { ret := "your addr is:" + r.RemoteAddr + "\r\n" ret += "request headers:" + fmt.Sprint(r.Header) io.WriteString(w, ret) } func main() { targetURL, err := url.Parse("http://127.0.0.1:80") log.Println("program s...阅读全文

博文 2015-06-17 23:07:39 scybs

Awesome Go

Awesome Go A curated list of awesome Go frameworks, libraries and software. Inspired by awesome-python. Contributing Please take a quick gander at the contribution guidelines first. Thanks to all contributors; you rock! Join us on IRC at #awesome-go on freenode web access Contents Awesome Go Audio & MusicAuthentication & OAuthCSS PreprocessorsConfi...阅读全文

博文 2015-02-27 18:00:00 x_focus

如何关闭Golang中的HTTP连接 How to Close Golang's HTTP connection

我们的一个服务是用Go写的,在测试的时候发现几个小时之后它就会core掉,而且core的时候没有打出任何堆栈信息,简单分析后发现该服务中的几个HTTP服务的连接数不断增长,而我们的开发机的fd limit只有1024,当该服务所属进程的连接数增长到系统的fd limit的时候,它被操作系统杀掉了。。。 HTTP Connection中连接未被释放的问题在https://groups.google.com/forum/#!topic/golang-nuts/wliZf2_LUag和https://groups.google.com/forum/#!topic/golang-nuts/tACF6RxZ4GQ都有提到。 这个服务中,我们会定期向一个HTTP服务器发起POST请求,因为请求非常不频繁...阅读全文

博文 2015-05-21 10:00:00 cobbliu

golang实现udp接入服务器

前端通过udp与接入服务器连接,接入服务器与后端tcp服务器维持tcp连接。目录结构及后端tcp服务器代码同上一篇博客。 main.go package main import ( "lotuslib" ) const ( ip = "0.0.0.0" port = 1987 ) func main() { udplotus.UdpLotusMain(ip, port) } udplotus.go package udplotus import ( "encoding/json" "log" "net" "strconv" "time" ) const ( proxy_timeout = 5 proxy_server = "127.0.0.1:1988" msg_length = 1024 ...阅读全文

博文 2014-10-04 19:26:13 ciaos

MPS 高性能的HTTP(s)正向反向代理库MPS

MPS 是一个高性能 HTTP(s)中间代理库,它支持正向代理、反向代理、中间人代理、隧道代理、Websocket 代理. MPS is a high-performance HTTP(S) proxy library that supports forward proxies, reverse proxies, man-in-the-middle proxies, tunnel proxies, Websocket proxies. 项目地址:https://github.com/telanflow/mps ## Feature - 支持 HTTP(s)代理、正向代理、反向代理、中间人代理、Websocket 代理等 - TCP 连接池、证书池 - 中间件( Mid...阅读全文

Go Agent

在这片神奇的土地上,FQ应该是每个网友必需掌握的技能,FQ的首要,就是F过心里的Q。心中无Q,才是最重要的。本教程介绍用 GAE(Google App Engine)FQ的方法。GAE的官方介绍:“Google App Engine,在Google的基础架构上运行您的网络应用程序。” GAE的优点很多,首先它是完全免费的,并且非常稳定,其次它提供大流量,足够让你在YouTube上看各种视频了。 注意事项! 本教程开始之前需要准备Gmail账号和Chrome浏览器。go agent在这里http://www.dengyukeji.com/thread-567-1-1.html下载。 操作步骤 1、打开:https://appengine.google.com/,输入gmail用户密码登入。 2...阅读全文

博文 2015-06-18 09:09:14 dengyukeji

nginx +golang

nginx 配置 01 #列出所有服务器地址,nginx 自动均衡分发请求到各个服务器。 02 upstream frontends { 03 ip_hash; 04 server 192.168.199.1:8088; 05 server 192.168.199.2:8089; 06 } 07 server { 08 listen 80; 09 server_name mydomain.com www.mydomain.com; 10 location / { 11 proxy_pass_header Server; 12 proxy_set_header Host $http_host; 13 proxy_redirect off; 14 proxy_set_header X-Real-...阅读全文

博文 2015-06-17 20:23:36 zb_liang

O2O,商城go2o

Go2o ================ # What's Go2o # Golang combine simple o2o DDD domain-driven design realization, including multi-channel (businesses), multi-store, multi-member commodity,Promotions, orders, coupons implementation also includes a mini-framework in package "ops/cf", providing ORM, Reporting, Web Framework,Rpc Framework. # Deploy # ##...阅读全文

开源项目 2014-12-22 02:01:04

Golang后台开发初体验

补充反馈 slice 既然聊到slice,就不得不提它的近亲array,这里不太想提值类型和引用类型的概念(个人觉得其实都是值类型),golang的array其实可以假想为C的struct类型,只是struct通过变量名来访问成员(如xxx.yyy),而array通过下标来访问成员(如xxx[3]),具体内存布局如下图所示: 图 1 golang的array内存布局 显然golang的array灵活性比较差,长度固定,这才有了slice,概念上有点类似于STL的vector,但是具体实现上还是有差距的,具体内存布局如下图所示: 图 2 golang的slice内存布局 slice类型存在len和cap的概念(与vector类似),这里有一点需要澄清:与vector不一样,slice的len并...阅读全文

博文 2014-10-10 18:00:07 cszhouwei

awesome-go

https://awesome-go.com/ Awesome Go A curated list of awesome Go frameworks, libraries and software. Inspired by awesome-python. Contributing Please take a quick gander at the contribution guidelines first. Thanks to all contributors; you rock! If you see a package or project here that is no longer maintained or is not a good fit, please submit a pu...阅读全文

博文 2016-12-20 13:00:02 andylau00j

golang net/http访问https

进来看了golang写兵法爬虫的资料,于是自己动手简单的尝试了一下,发现在使用http.Get("https://...")的时候,会报错。原因是我的环境设置了上网代理。上网搜索了一些问题,耗时两天才最终解决,现将解决过程记录下来,仅供参考。 最初的源码 package main import ( "fmt" "net/http" ) func main() { seedUrl := "https://www.douban.com/" body, err := http.Get(seedUrl) if err != nil { fmt.Errorf("get https://www.douban.com/ error") panic(err) } fmt.Printf("%s\n", bod...阅读全文

博文 2018-09-18 20:34:38 sixgo

golang实现tcp接入服务器

接入服务器和后端业务服务其维持tcp连接,多个前端请求通过接入服务器访问后端业务服务器,接入服务器可以方便增加路由功能,维护多个业务服务器,根据消息ID路由到具体的业务服务器。 项目目录如下 simplelotus src lotus main.go lotuslib tcplotus.go test tcpclient.go tcpserver.go install install源码如下: #!/usr/bin/env bash if [ ! -f install ]; then echo 'install must be run within its container folder' 1>&2 exit 1 fi CURDIR=`pwd` OLDGOPATH="$GOPATH" ex...阅读全文

博文 2014-10-04 19:26:13 ciaos