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

模拟浏览器登录操作

近来想用Go做一点事,以减轻工作上的负担。 我的工作中有几项工作是每日重复的,大致内容: 1、将数据收集到Excel中。 2、收集齐后,将Excel中的部分数据提交到办公系统中(网页上操作)。 3、再将提交过后的审批号码提取出来,存入Excel中。 我现在有两个问题: 1、现在,上面的第一步Excel操作,Go中不知有何现成的库,若没有,我有个效率不高的办法。这个问题倒还不算急。 2、第二个问题比较着急。向办公系统提交数据,得先登录。我的操作步骤如下: 2.1、先访问办公系统首页,获取Session的Cookie。 2.2、进行登录数据提交,将刚才获取的这个Session的Cookie一并提交上去。 2.3、进行业务数据提交。 我现在的...阅读全文

GO同包内不同文件方法引用问题

问题:GO语言同包内不同文件方法引用在本地LiteIDE中可运行,但在linux环境下报错: 在main.go中引用c2c_admin_base_info.go中GetcsChatCntTrend方法: 本地运行正常,但部署至linux服务器时,报错: 解决方案:将c2c_admin_base_info.go放到包data下 main.go c2c_admin_base_info.go 层级关系: 注:包和package有关系:main包和main函数比较特殊,是程序的入口,其他的包就要和文件夹名字一样(感谢扫盲的GO大牛...阅读全文

博文 2014-10-16 17:00:00 sea_198821

使用consul实现分布式服务注册和发现

使用consul实现分布式服务注册和发现 七 06 bigwhite技术志 Airbnb, cluster, consul, docker, etcd, Go, Golang, haproxy, hashicorp, json, raft, SmartStack, ZooKeeper, 分布式系统, 强一致性, 服务发现, 服务注册, 选主 No Comments Consul是HashiCorp公司推出的开源工具,用于实现分布式系统的服务发现与配置。与其他分布式服务注册与发现的方案,比如 Airbnb的SmartStack等相比,Consul的方案更“一站式”,内置了服务注册与发现框 架、分布一致性协议实现、健康检查、Key/Value存储、多数据中心方案,不再需要依赖其他工具(比如Zoo...阅读全文

博文 2015-07-14 11:16:39 bigwhite

goproxy和msocks简介

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

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

golang http服务器跨域问题解决

func main() { openHttpListen() } func openHttpListen() { http.HandleFunc("/", receiveClientRequest) fmt.Println("go server start running...") err := http.ListenAndServe(":9090", nil) if err != nil { log.Fatal("ListenAndServe: ", err) } } func receiveClientRequest(w http.ResponseWriter, r *http.Request) { w.Header().Set("Access-Control-Allow-Origin"...阅读全文

博文 2016-04-12 20:00:01 JD85

go语言之http

go语言http 1、net/http 包提供的 http.ListenAndServe() 方法,在指定的地址监听该方法用于在指定的 TCP 网络地址 addr 进行监听,然后调用服务端处理程序来处理传入的连 接请求。该方法有两个参数:第一个参数 addr 即监听地址;第二个参数表示服务端处理程序, 通常为空,这意味着服务端调用 http.DefaultServeMux 进行处理,而服务端编写的业务逻 辑处理程序 http.Handle() 或 http.HandleFunc() 默认注入 http.DefaultServeMux 中。2.处理https请求 func ListenAndServeTLS(addr string, certFile string, keyFile strin...阅读全文

博文 2018-11-14 18:35:09 PowerMichael

服务发现:Zookeeper vs etcd vs Consul

【编者的话】本文对比了Zookeeper、etcd和Consul三种服务发现工具,探讨了最佳的服务发现解决方案,仅供参考。 如果使用预定义的端口,服务越多,发生冲突的可能性越大,毕竟,不可能有两个服务监听同一个端口。管理一个拥挤的比方说被几百个服务所使用的所有端口的列表,本身就是一个挑战,添加到该列表后,这些服务需要的数据库和数量会日益增多。因此我们应该部署无需指定端口的服务,并且让Docker为我们分配一个随机的端口。唯一的问题是我们需要发现端口号,并且让别人知道。 当我们开始在一个分布式系统上部署服务到其中一台服务器上时,事情会变得更加复杂,我们可以选择预先定义哪台服务器运行哪个服务的方式,但这会导致很多问题。我们应该尽我们所能尽量利用服务器资源,但是如果预先定义每个服务的部署位置,那么...阅读全文

博文 2015-09-20 10:39:43 国会山上的猫TuxHu

Go 的快速 HTTP 包fasthttp

fasthttp 是 Go 的快速 HTTP 实现,当前在 1M 并发的生产环境使用非常成功,可以从单个服务器进行 100K qps 的持续连接。 HTTP 服务器性能与 net/http 比较 总而言之,fasthttp 比 net/http 快 10 倍 GOMAXPROCS=1 net/http: $ GOMAXPROCS=1 go test -bench=NetHTTPServerGet -benchmem PASS BenchmarkNetHTTPServerGet1ReqPerConn 100000 21211 ns/op 2407 B/op 30 allocs/op BenchmarkNe...阅读全文

Go 在万亿级大数据平台开发中的实战

导语迅猛发展的互联网将我们带入了大数据时代,大数据已经成为发展中不可或缺的力量支撑,大数据挑战和机遇并存,如何更好合理、灵活应用大数据是企业的关注所在。七牛大数据团队研发工程师孙健波为大家带来题为Go 在大数据开发中的实战经验的技术分享。以下是此次演讲内容整理。作者介绍:孙健波,InfoQ 专栏作者,硕士毕业于浙江大学计算机学院,2015 年底加入七牛,参与并负责七牛大数据平台整条链路多模块的架构设计以及开发工作,包括大数据计算引擎、时序数据库服务以及日志检索服务。在此之前主要研究和参与 Cloudfoundry、Kubernetes、Docker 等容器与容器云相关工作,是《Docker 容器与容器云》一书的主要作者之一。大数据图 1如图 1 可以看到,现在大数据的生态相对来说比较成熟了,...阅读全文

博文 2017-08-30 05:45:40 孙健波

Go 系列教程 —— 24. Select

欢迎来到 [Golang 系列教程](https://studygolang.com/subject/2)的第 24 篇。 ## 什么是 select? `select` 语句用于在多个发送/接收信道操作中进行选择。`select` 语句会一直阻塞,直到发送/接收操作准备就绪。如果有多个信道操作准备完毕,`select` 会随机地选取其中之一执行。该语法与 `switch` 类似,所不同的是,这里的每个 `case` 语句都是信道操作。我们好好看一些代码来加深理解吧。 ## 示例 ```go package main import ( "fmt" "time" ) func server1(ch chan string) { time.Sleep(6 * time.Second) ch <-...阅读全文

go post json 遇到的问题

想用go写一个客户端,发一个JSON数据到JAVA的服务端接口, 结果,JAVA接收的BODY一直是空,但是PYTHON写的服务端是OK的 网上查了方法 其中:一些方法 也试过了, type RequestBody struct { Status string `json:"status"` Region []string `json:"region"` Percent string `json:"percent"` Task_id string `json:"task_id"` } b, err := json.Marshal(rbody) body := bytes.NewBuffer([]byte(b)) (1) resp, err := http.Post(url, "applica...阅读全文

博文 2015-09-18 15:00:01 vance928

Go语言爬虫

之前写爬虫都是用的python语言,最近发现go语言写起来也挺方便的,下面简单介绍一下。这里说的爬虫并不是对网络中的很多资源进行不断的循环抓取,而只是抓通过程序的手段都某些网页实现特定的信息抓取。可以简单分成两个部分:抓取网页,对网页进行解析。抓取网页。一般是向服务器发送一个http get/post请求,得到response。go提供的http包可以很好的实现。get方法:1resp, err := http.Get(“http://www.legendtkl.com") post方法:12resp, err := http.Post(“http://example.com/upload”, “image/jpg”, &buf)resp, err := http.PostForm(...阅读全文

博文 2017-07-02 19:22:57 Tao Kelu

golang微信支付服务端

一般来说,使用golang主要还是写服务端。所以本文主要讲golang在处理微信移动支付的服务端时的统一下单接口和支付回调接口,以及查询接口。 微信支付流程 下图是微信官网的支付流程描述: 图中红色部分就是微信支付中,我们的系统包括app,后台需要参与的流程。 其中需要后台也就是Server需要参与的流程有三个: 1. 统一下单并返回客户端 2. 异步通知结果回调处理 3. 调用微信支付查询接口 微信所有的接口都是以http RESTFul的API来提供,所以对于server而言其实就是call这些接口并处理返回值。 golang的服务端实现 1,调用统一下单接口 首先需要呼叫:https://api.mch.weixin.qq.com/pay/unifiedorder 这是微信的api,呼...阅读全文

博文 2015-12-23 14:00:01 xyzhaopeng

北京智明星通 招聘go服务器开发 坐标西土城

我们是谁: 北京智明星通科技有限公司(http://www.elex.com) 创立于2008年,专注于海外市场开拓,现已成为中国互联网企业国际化过程的一家标杆企业。总部设于北京,并在中国合肥、中国上海、中国香港、巴西圣保罗等地设有子公司,公司员工总数500余人。2011年-2013年游戏业务保持年均复合35%的稳健增长,新兴的互联网平台业务所产生的广告收入年均复合增长超过1500%,行云业务等技术服务收入年均复合增长达120%。自主研发《Age of warring empire》、《Battle Alert》、《Clash of Kings》、《Happy Farmer》等多款风靡国际的精品游戏。 2015年,app annie 全球手游公司排名第16位。 岗位职责: 1、参...阅读全文

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-sql-driver发生invalid connection(bad connection)解决方法讨论

在使用go-sql-driver过程中,有时候我发现会报invalid connection的错误,这个错误产生的原因设置了空闲连接不为0时,客户端拿到连接有可能是已经被服务端关闭了,此时就会发生invalid connection,网上有些解决方案是把空闲连接数设置0,不知道设置为0跟设置为50之类的性能有什么大的区别吗?跪求大神解答...阅读全文

IE 11下载文件中文乱码解决(go/php)

IE 11下载文件的时候发现乱码. 网上查了下资料,了解了一下,主要是user-agent变了,不再是MSIE,面是rv:11.0这样,所以只要服务端判断出是IE 11,处理跟MSIE一样。 GO: func setDownloadFileName(w http.ResponseWriter, fileName, agent string) { if strings.Contains(agent, "MSIE") { fileName = url.QueryEscape(fileName) fileName = strings.Replace(fileName, "+", "%20", -1) } if strings.Contains(agent, "rv:") && strings.Co...阅读全文

博文 2016-04-07 21:00:06 rariki

服务端开发工程师(go语言)

岗位职责: 负责系统设计和核心代码开发(Go语言开发)。 任职要求: 有良好的编程风格和编写文档的习惯; 熟悉 HTTP、TCP/IP 等常见网络协议,有相关网络编程经验; 两年以上 Go 服务端开发经验优先; 熟悉缓存系统以及消息系统的对接工作实际经验优先。 有较强的责任心和学习能力,能承受一定工作压力。 薪水待遇: 15w起 具体面议 包五险一金 公司地点:浙江省杭州市余杭区仓前街道文一西路1338号海创大厦A座802室 投简历邮箱: shenqiang@aoukj.co...阅读全文

Go 语言使用 TCP keepalive

自:http://studygolang.com/articles/951 Go 语言使用 TCP keepalive 如果你写过某些 TCP socket 代码,你可能会疑问:如果网线被拨掉或者远程主机崩溃了我的TCP连接会怎样? 简短的答案是:一点影响都没有。这种情况下连接的结束远程主机是不会发送FIN数据包的,并且本地系统不能检测连接是否已中断。所以需要作为程序员的你来解决这种情况。 --zxp 翻译于 1 个月 前 0人顶 顶 翻译的不错哦! GO语言为你提供了解决这个问题的几种方法。首选的方法可能是 net.Conn 接口中的SetReadDeadline方法。假设你的连接在以一种特定的间隔来接收数据,你可以简单地把读取超时当作一个io.EOF错误并Close这个连接。很多现有的T...阅读全文

博文 2015-01-29 17:00:01 leonzhouwei

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

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 陈杰斌

【杭州】golang服务器端开发工程师 2名

golang服务器端开发工程师 2名: - 电商类产品的服务器端开发及维护,restful API开发; - 撰写业务、接口文档供前端使用; - 数据库设计、开发及维护和优化; 要求: - 1~2年Golang开发经验,熟练使用Golang进行Restful API接口开发; - 熟悉常用数据库MySql、PostgreSQL等,以及golang常见ORM进行数据库操作; - 有责任感、团队精神和良好的沟通能力; 其它 - 互联网电商类项目(2B)、小团队; - 工作以结果为导向,弹性工作时间、不打卡; - 期权激励; 工作地点:杭州市滨江海创园北楼D3008 薪水:6~15k 简历发送: hr@obenben.co...阅读全文

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 MB...阅读全文

深圳创赛平台,创成汇专业的创赛发布网站平台

深圳创赛平台,创成汇专业的创赛发布网站平台 深圳创赛发布平台,国内专业的创新创业大赛承办方,创成汇--全球专业的创新创业生态链服务平台,创成汇平台致力于打造全球专业的创新创业生态链,平台以线上系统为服务载体,整合国内外优质资源,采用大数据、智慧智能等高新技术理念和互联互享的先进产业模式,从而搭建政府、企业、创投、企服为一体的创服生态链。 通过创新创业大赛发布平台进行赛事的一个发布,帮助快速促进赛事进程,让更多的创新创业者、投资人等多方面资源迅速整合。 近年来随着国家对双创领域的大力支持与关心,创新创业大赛等双创活动也纷纷涌现,传统的创新创业大赛宣传主要是通过线下的双创载体、校园举行推介会宣传,线上通过新闻发稿等方式的宣传。那么创成汇作为国内专业的创新创业成果转化服务平台,也是创新创业大赛主办...阅读全文

博文 2019-09-05 15:49:00 d13828808617

[golang]GO语言编写的基于UDP协议的简易聊天软件

初学GO不到两周,本着熟悉语言的目标写了这个小程序,漏洞很多,实现上写的也有些渣渣,欢迎大家阅读指点。 下载地址:https://github.com/yinxin630/gochat 简单思路描述: 0、服务端监听客户端请求,完成会话转发的任务 1、服务端采用心跳包维护用户在线状态 2、客户端通知服务端自己的监听地址,创建服务端-客户端信息通道 服务端: package main import ( "fmt" "net" "os" "strconv" "time" ) //用户信息 type User struct { userName string userAddr *net.UDPAddr userListenConn *net.UDPConn chatToConn *net.UDPC...阅读全文

博文 2014-11-11 06:00:06 u011229962

给自己一条退路,再次比较Erlang和Golang

给自己一条退路,再次比较Erlang和Golang_陈叶皓_新浪博客 雨天的周末,适合码字的时节。。。 一年前我开始学习go语言的时候,如获至宝,既有python的编码效率,又带来性能的15倍提升。尤其是在异步编程方面,可以使用channel同步线程,不必加锁可以充分利用cpu多核计算,真是没有弱点。 后来慢慢了解到,这种无锁异步编程的思想,源自一门叫做erlang的语言,Erlang更加了不起。除了异步编程之外,这门语言天生支持分布式,单机上开发的软件,可以不加修改地运行在集群上,另外还支持软件版本的热升级,自带的OTP框架支持进程间的监督和重启,提供了坚如磐石的运行环境。Erlang是如此完美,我认为是最适合开发互联网应用的语言,一时间有种“终于找到真理”的喜悦。 不过那个时候,心里总觉...阅读全文

博文 2015-01-22 13:00:01 seven1979

01-Golang可以做什么

![Golang的发展方向: 区块链研发工程师 Go服务器端/游戏软件工程师 Golang分布式/云计算 Golang的应用方向: 区块链技术:简称BT Blockchain technoglogy,也被称为 分布式账本技术,是一种互联网数据库技术,其特点是去中心化,公开透明,让每个人均可参与数据库记录。 后端服务器应用: 吃撑主站后台流量(排序,推荐,搜索等),提供负载均衡,cache,容错,按条件分流,统计运行指标 美团 云计算/云服务的后台应用 CDN的调度系统,分发系统,监控系统,短域名服务,CDN内部开放平台,运营报表系统以及其他一些小工具等。 京东云 Golang的计算能力很强 ](https://static.studygolang.com/180918/06db76e0112...阅读全文

geohash算法以及求最邻近区域的点-golang

geohash算法以及求最邻近区域的点, 对这两个算法封装成了golang package, 写LBS服务程序的时候有用。https://github.com/gansidui/geohashhttps://github.com/gansidui/nearest package main import ( "fmt" "github.com/gansidui/geohash" ) func main() { latitude := 39.92324 longitude := 116.3906 precision := 5 hash, box := geohash.Encode(latitude, longitude, precision) fmt.Println(hash) fmt.Prin...阅读全文

博文 2014-12-30 13:00:01 bluezwt

golang 仿python pack/unpack

写得不完善也不完美 尤其是高低位转换那(go和c 二进制高地位相反 需要转换,还有go int转[]byte长度是4位),希望牛人看后指导一下 项目需要通过socket调取 客户端是go ,服务器端是python,由于需要封包解包,就参照python写的 python 的pack/unpack 参考 Python使用struct处理二进制(pack和unpack用法) package includes import ( "bytes" "encoding/binary" "fmt" _ "os" "strconv" "strings" ) type Protocol struct { Format []string } //封包 func (p *Protocol) Pack(args .....阅读全文

博文 2015-04-08 04:00:00 wangxusummer

OQR 1.0正式发布了!一个适用于电商网站和CMS开发的开源SDK

QOR是[我们](http://theplant.jp/zh "我们")花了六年时间开发并用Go重写的一个适用于电商网站和CMS开发的SDK,而且是开源的。 2016年4月21日,我们正式发布QOR 1.0版本至此,标志着QOR已经完全由Go重写了。 QOR是一个通用的SDK,它可以让开发者快速地,自由灵活地开发各种前沿的平台和Web应用。对于第一次公开发布的版本,我们侧重于重写并为开发者提供了创建CMS 所需要用到的库和插件。下一版本,我们将会为核心库添加更多用于电子商务系统开发的具体插件和模块。 最初版本的QOR诞生于2010年,是一个以Ruby on Rails为基础开发的专用框架。 QOR专注于电商网站的开发,成功案例有Lacoste的日本在线购物商店及其配套后台系...阅读全文

HTTP Payload

今天用go重写了一个用Ruby实现的http请求功能。但是在请求参数相同的情况下go的请求一直被服务器返回参数错误。 既然参数相同,那就应该是Header里面有问题喽? 我把Ruby代码生成的请求弄出来看了下 POST参数是包在payload里面的。哦! 等等!payload是什么鬼啊!! 我在go的http package里面没看到这玩意儿。 所以还是要知道payload是干嘛的。 根据wiki的解释:payload是跟在请求header后面的数据,是一次请求的主要数据或者说主要目的。 SO上有一个直观的解释:Request Payload 就是POST、PUT等http请求所发送的数据。它是header之后的部分。 一个Content-Type是application/json的请求,具...阅读全文

招聘服务端开发工程师(go语言)

岗位职责: 负责系统设计和核心代码开发(Go语言开发)协助完成一些运维、DBA工作。 任职要求: 两年以上 C/C++/delphi/Go 服务端开发经验; 有良好的编程风格和编写文档的习惯; 熟悉 HTTP、TCP/IP 等常见网络协议,有相关网络编程经验; 服务端基础扎实,了解nginx、redis、mysql、消息队列等常见服务端组件; 有较强的责任心和学习能力,能承受一定工作压力。 薪水待遇: 15w起 具体面议 包五险一金 公司地点:浙江省杭州市余杭区仓前街道文一西路1338号海创大厦A座802室 投简历邮箱: shenqiang@aoukj.co...阅读全文

博文 2017-12-12 01:22:03 lllluolan

Go HTTP Redirect的知识点总结

HTTP 规范中定义了返回码为 3xx 代表客户端需要做一些额外的工作来完成请求,大部分3xx用来做转发(redirect)。 状态码的详细说明可以参照规范或者 wikipedia、维基百科, 以下是代码的简短介绍。 300 Multiple Choices: 返回多个可供选择的资源 301 Moved Permanently: 请求的资源已永久移动到新位置,并且将来任何对此资源的引用都应该使用本响应返回的若干个URI之一 302 Found: 请求的资源现在临时从不同的URI响应请求。由于这样的重定向是临时的,客户端应当继续向原有地址发送以后的请求,HTTP 1.0中的意义是Moved Temporarily,但是很多浏览器的实现是按照303的处实现的,所以HTTP 1.1中增加了 303...阅读全文

[深圳][大疆创新][15K-40K]招聘高级/中级Golang研发工程师

## 高级Golang研发工程师 ### 岗位职责: 1. 参与公司微服务架构的整体设计和开发,进行相关技术调研、选型和实践; 2. 负责编制、修改项目相关的技术文档和规范; 3. 负责新人指导和code review,技术难题研究,提升团队技术水平; 4. 参与公司开源项目的设计与开发,提高公司在业界的影响力。 ### 任职要求: 1. 熟练掌握Golang,4年以上工作经验,2年以上Golang开发经验,有完整项目经验,同时熟练掌握Java/Ruby/Python/C#等任意一门语言者优先; 2. 熟练掌握Golang相关技术,熟悉Golang协程,熟悉channel和锁,对高并发、高可用架构系统有正确、深刻的理解,有分布式服务设计或开发经验者优先; 3. 熟悉M...阅读全文

高性能代理服务器Proxy-Go

Proxy 是 golang 实现的高性能 http,https,websocket,tcp 代理服务器,同时支持内网穿透。 ## Features - 链式代理,程序本身可以作为一级代理,如果设置了上级代理那么可以作为二级代理,乃至N级代理. - 通讯加密,如果程序不是一级代理,而且上级代理也是本程序,那么可以加密和上级代理之间的通讯,采用底层tls高强度加密,安全无特征. - 智能HTTP代理,会自动判断访问的网站是否屏蔽,如果被屏蔽那么就会使用上级代理(前提是配置了上级代理)访问网站;如果访问的网站没有被屏蔽,为了加速访问,代理会直接访问网站,不使用上级代理. - 域名黑白名单,更加自由的控制网站的访问方式。 - 跨平台性,无论你是widows,linux,还是mac,甚至是树莓派...阅读全文

这家前美图技术副总裁入职的公司值得你关注—深圳AfterShip

## 资讯:原美图技术副总裁洪小军加入 AfterShip 出任 CTO。 欢迎各位加入。可在拉勾或者 boss 搜索 aftership 了解详细的岗位,或者直接发 CV 到我们的邮箱: xh.wang@aftership.com 洪小军的职业生涯历经飞信、微博、美图这几个公司的关键发展历程,完整的经历了移动互联网发展的十年,今天我们有机会采访到他,聊他这一次的职业选择,同时也进一步了解他选择的这家公司。 ## 洪小军是谁?— AfterShip CTO ### 曾任: 美图 技术副总裁 微博 平台架构团队负责人 中国移动飞信 架构师 ### 技术影响力: 厦门 TGO 鲲鹏会第一任会长 全球架构师峰会优秀出品人 顶级技术大会分享议题和出品专题 [全球软件开发大会 /全球架构师峰会 /全球...阅读全文

博文 2019-06-05 19:50:39 wangxihua916

比较Erlang和Golang

雨天的周末,适合码字的时节。。。 一年前我开始学习go语言的时候,如获至宝,既有python的编码效率,又带来性能的15倍提升。尤其是在异步编程方面,可以使用channel同步线程,不必加锁可以充分利用cpu多核计算,真是没有弱点。 后来慢慢了解到,这种无锁异步编程的思想,源自一门叫做erlang的语言,Erlang更加了不起。除了异步编程之外,这门语言天生支持分布式,单机上开发的软件,可以不加修改地运行在集群上,另外还支持软件版本的热升级,自带的OTP框架支持进程间的监督和重启,提供了坚如磐石的运行环境。Erlang是如此完美,我认为是最适合开发互联网应用的语言,一时间有种“终于找到真理”的喜悦。 不过那个时候,心里总觉得有什么地方不对,那就是,七牛CEO许式伟本身是Erlang高手,他却...阅读全文

博文 2015-01-27 11:00:01 天下杰论

用不到 100 行的 Golang 代码实现 HTTP(S) 代理

![](https://raw.githubusercontent.com/studygolang/gctt-images/master/http-s-proxy/header.jpeg) 我们的目标是实现一个能处理 HTTP 和 HTTPS 的[代理服务器](https://en.wikipedia.org/wiki/Proxy_server)。代理 HTTP 请求的过程其实就是一个解析请求、将该请求转发到目的服务器、读取目的服务器响应并将其传回原客户端的过程。这个过程只需要内置的 HTTP 服务器和客户端([net/http](https://golang.org/pkg/net/http/))就能实现。HTTPS 的不同之处在于使用了名为 “HTTP CONNECT 隧道”的技术。首先...阅读全文

博文 2017-12-16 13:58:50 dongkui0712

Golang动手写一个Http Proxy

本文主要使用Golang实现一个可用但不够标准,支持basic authentication的http代理服务。 为何说不够标准,在HTTP/1.1 RFC中,有些关于代理实现标准的条目在本文中不考虑。 Http Proxy是如何代理我们的请求 Http 请求的代理如下图,Http Proxy只需要将接收到的请求转发给服务器,然后把服务器的响应,转发给客户端即可。 Https 请求的代理如下图,客户端首先需要发送一个Http CONNECT请求到Http Proxy,Http Proxy建立一条TCP连接到指定的服务器,然后响应200告诉客户端连接建立完成,之后客户端就可以与服务器进行SSL握手和传输加密的Http数据了。 为何需要CONNECT请求? 因为Http Proxy不是真正的服务...阅读全文

博文 2017-09-17 13:11:26 杨锡坤

游戏分布式服务器gonet

gonet 游戏服务器架构,mmo架构,分布式snowflake64为整形uuid,ai行为树,配置data,游戏大部分都在内存运算,分布式缓存redis。 设计之初,建立在actor模式下的;rpc,以及消息驱动,rpc无需注册,支持int,数据,struct(struct必须要注册结构题即可);sql封装简单的orm,具体看demo websocket模式下,要在net,websocket注视掉如下代码:https://studygolang.com/articles/14842 代码除了mysql,protobuf,redis这几个第三方库以外,其他都是自己写的,方便性能和修改,主动权在自己手里 服务器之间rpc,客户端服务器之间protobuf + rpc,客...阅读全文

开源项目 2019-01-16 12:53:57 ylb

用Golang实现redis

缘起 最近公司的第一个PHP转GO项目已经在生产环境稳定运行数周,又逢需求小年儿,得空分享下去年学GO过程中的练手项目Godis——用Golang实现的redis. redis3.0版本,代码简明精炼,再加上是Web后端程序员使用最多组件之一,熟悉redis原理并阅读多源码的开发者人数颇多,这个系列小文便不再对redis细节做过多介绍。不过,有必要系统性说明的地方仍然会以较大篇幅尝试解读。 进入正题 基本流程 Godis第一版的目标是“最基本的kv缓存”,feature list如下: 客户端/服务端交互 set/get 命令实现 AOF持久化实现 已经做到,再精简就等于没写的境界。遵循实际工作中的编码流程,先设计基本架构再填充实现的方式,Godis的架构图一步到位、毫无点缀: 原理分析 1...阅读全文

博文 2018-06-06 11:34:39 alphali

代理服务扩展

之前自己实现了一个代理服务,当时考虑的是只要支持SOCKS5就好了,因为我经常用CHROME,配合着SwitchySharp,体验还是很棒的。但是我现在有点讨厌CHROME,它现在太庞大了,占用资源太多了。而且我有锁定网页的习惯,一打开CHROME,就十几个甚至二十几个进程起来,让我很不爽。但是不得不说CHROME的安全设计还是非常棒的。然后我就试了下FireFox,额,我觉着它和IE差不多.然后就放弃了,然后看看了手头上的IE已经到11了,平时用起来感觉还是很不错的,所以我想支持IE的代理。 IE的代理机制比较囧,比如说它只支持SOCKS4,不支持SOCKS5,然后又分为HTTP代理,HTTPS代理,还有FTP代理。也没有像CHROME提供强大的代理插件机制。虽然IE提供了PAC机制,但是...阅读全文

博文 2014-10-07 09:20:19 concurrency

不用go-(xxoo)agent的也有可能是程序员

记得是去年某个时候,在一个群里问大家是怎么翻(什么)墙的,发现很多人是用go-(xxoo)agent的,而我当时完全没听说过go-agent,因为我已经N多年不翻(什么)墙了,于是,有人就说:“连go-(xxoo)agent都没用过你还是程序员吗?”说实话,我也不希望我是程序员啊!可我真的没用过go-(xxoo)agent啊! 想起我一位前同事,工作很多年了,却从来没用过linux!(也不知道他说的是真的还是假的,至于你信不信,反正我是信了。)他说这是他第一次用linux!(也难怪啊,他在原来的公司干里好多年,公司是用.net的。自然没必要用linux。)但我不能说他不是程序员,事实上,他工作完成得很出色。i第一次接触linux,很快就熟悉了。 不用linux还可以用windows,不用go...阅读全文

go代理服务器代码

go代理服务器代码 最近用废弃的小笔记本搭了个centos服务器挂着,搭了ssh,tomcat,go环境,想搭个代理服务器访问路由,不想安装,想自己写一个,顺便复习一下go语言知识。 一开始,我网上搜了一下go语言写代理服务器的代理,搜索到一个: 来自:http://symphony.b3log.org/article/1357452978419 (原文地址:http://kejibo.com/golang-http-proxy-server 已失效) package main import ( "http" "log" "os" "io/ioutil" ) func handler(w http.ResponseWriter, r *http.Request) { resp, err :=...阅读全文

博文 2015-08-25 19:00:00 u010499721

腾讯云+校园服务器,360元3年4个月

1.注册新用户,老用户可以直接注册个新号,使用绑定银行卡的手机认证即可。 2.点击**参团链接**:有效期到3月9号10点:https://cloud.tencent.com/act/campus/group/detail?group=15533 3.购买1年,付120元,可送4个月 4.可续费两年,付款240 5.最后可以花**360元**购买到**3年4个月**的服务器时长。 6.**配置**是**1核2G内存** ...阅读全文