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

模拟浏览器登录操作

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

golang中time包用法

time包中包括两类时间:时间点(某一时刻)和时常(某一段时间) 1时间常量(时间格式化) const ( ANSIC = "Mon Jan _2 15:04:05 2006" UnixDate = "Mon Jan _2 15:04:05 MST 2006" RubyDate = "Mon Jan 02 15:04:05 -0700 2006" RFC822 = "02 Jan 06 15:04 MST" RFC822Z = "02 Jan 06 15:04 -0700" // RFC822 with numeric zone RFC850 = "Monday, 02-Jan-06 15:04:05 MST" RFC1123 = "Mon, 02 Jan 2006 15:04:05 MST...阅读全文

博文 2015-06-18 19:00:34 chenbaoke

深入理解GO时间处理(time.Time)

1. 前言时间包括时间值和时区, 没有包含时区信息的时间是不完整的、有歧义的. 和外界传递或解析时间数据时, 应当像HTTP协议或unix-timestamp那样, 使用没有时区歧义的格式, 如果使用某些没有包含时区的非标准的时间表示格式(如yyyy-mm-dd HH:MM:SS), 是有隐患的, 因为解析时会使用场景的默认设置, 如系统时区, 数据库默认时区可能引发事故. 确保服务器系统、数据库、应用程序使用统一的时区, 如果因为一些历史原因, 应用程序各自保持着不同时区, 那么编程时要小心检查代码, 知道时间数据在使用不同时区的程序之间交换时的行为. 第三节会详细解释go程序在不同场景下time.Time的行为. 2. Time的数据结构go1.9之前, time.Time的定义为 ty...阅读全文

博文 2017-12-18 05:57:14 hanjm

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

golang高性能日志库zap配置示例

golang高性能日志库zap配置示例 zap是uber开源的Go高性能日志库,gitlab地址 安装 go get -u go.uber.org/zap 请注意,zap仅支持两个最新的Go版本。 示例 简单示例 格式化输出 package main import ( "go.uber.org/zap" "time" ) func main() { // zap.NewDevelopment 格式化输出 logger, _ := zap.NewDevelopment() defer logger.Sync() logger.Info("无法获取网址", zap.String("url", "http://www.baidu.com"), zap.Int("attempt", 3), zap....阅读全文

博文 2019-01-02 19:34:47 阿甘__

Go_Json_Unmarshal_Marshal

Go按照RFC 4627的标准实现了一个json编解码的标准库 func Unmarshal(data []byte, v interface{}) error Unmarshal用于反序列化json的函数 根据data将数据反序列化到传入的对象中 仔细查看代码中的四种情况 1 将json反序列化成struct对象 2 将json反序列化到可以存储struct的slice中 3 将json 反序列化到map中 4 将json反序列化到slice中 package main import ( "encoding/json" "fmt" ) func main() { type Person struct { Name string Age int Gender bool } //unmarsh...阅读全文

博文 2014-10-31 14:00:09 u012807459

golang json 处理的一些例子代码

json 处理的例子代码, 解析结果看后面注释。 package main import "encoding/json" import "fmt" import "os" type Response1 struct { Page int Fruits []string } type Response2 struct { Page int `json:"page"` Fruits []string `json:"fruits"` } type CommonArg struct { SessionId int64 `json:",string"` Op string `json:"Op,omitempty"` AppId string `json:"appId,omitempty"` Onlin...阅读全文

博文 2015-02-10 03:00:00 ghj1976

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

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

云栖大会压轴好戏 阿里云发布视频云V5计划与系列新产品

9月25 - 27日,2019云栖大会如期召开。在大会最后一天下午,阿里云智能视频云分论坛为今年的云栖大会献上了一场精彩的压轴好戏。​视频云V5计划发布 使能生态合作伙伴会上,阿里云智能研究员金戈进行《视频云新“三网一云”,驱动行业应用创新》主题演讲,并发布视频云V5计划。金戈表示:阿里云将全面打造新“三网一云”的产业布局,基于领先的视频和网络技术、阿里云达摩院的AI技术与阿里巴巴商业场景实践三级先发优势,凭借视频云多年沉淀的直播网、点播网和音视频通信网三大视频技术的融合应用,和一系列围绕云端媒体资源全生命周期构建的云计算服务和AI算法引擎,锻造出一个智能、融合、高效、经济、稳定可靠的视频IT基础设施服务平台。​据悉,依托新“三网一云”技术底座,视频云V5计划将正式启动。其目的是构筑开放、协...阅读全文

Go语言如何深度拷贝对象

深度复制可以基于reflect包的反射机制完成, 但是全部重头手写的话会很繁琐. 最简单的方式是基于序列化和反序列化来实现对象的深度复制: func deepCopy(dst, src interface{}) error { var buf bytes.Buffer if err := gob.NewEncoder(&buf).Encode(src); err != nil { return err } return gob.NewDecoder(bytes.NewBuffer(buf.Bytes())).Decode(dst) } Gob和bytes.Buffer简单组合就搞定了. 当然, Gob的底层也是基于reflect包完成的. 在内存中序列化,反序列化对象实体 来完成对象实体的深...阅读全文

博文 2016-04-29 16:00:01 hittata

Thrift RPC 使用指南实战(附golang&PHP代码)

Thrift RPC 框架指南 认识Thrift框架 thrift是一个软件框架,用来进行可扩展且跨语言的服务的开发。它结合了功能强大的软件堆栈和代码生成引擎,以构建在 C++, Java, Python, PHP, Ruby, Erlang, Perl, Haskell, C#, Cocoa, JavaScript, Node.js, Smalltalk, and OCaml 这些编程语言间无缝结合的、高效的服务。 thrift最初由facebook开发,07年四月开放源码,08年5月进入apache孵化器。 thrift允许定义一个简单的定义文件中的数据类型和服务接口,以作为输入文件,编译器生成代码用来方便地生成RPC客户端和服务器通信的无缝跨编程语言。 类似Thrift的工具,还有Av...阅读全文

博文 2015-05-18 12:00:33 grassroots2011

golang 格式化时间为字符串

package main import ( "fmt" "reflect" "time" ) func main() { //格式化字符串为时间 test, _ := time.Parse("2006-01-02", "2013-11-11") //时间增加 after, _ := time.ParseDuration("15m") fmt.Println(test) test = test.Add(after) fmt.Println(test) //格式化时间为字符串 t3 := test.Format("2006-01-02 15:04:05") fmt.Println(t3) //格式化时间为字符串,只保留年月日 t3 = test.Format("2006-01-02") fmt....阅读全文

博文 2014-10-04 19:26:12 forrestsun

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

使用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

Go官方库RPC开发指南

Go官方提供了一个RPC库: net/rpc。包rpc提供了通过网络访问一个对象的方法的能力。服务器需要注册对象, 通过对象的类型名暴露这个服务。注册后这个对象的输出方法就可以远程调用,这个库封装了底层传输的细节,包括序列化。服务器可以注册多个不同类型的对象,但是注册相同类型的多个对象的时候回出错。 我最近写了一本电子书: Go RPC开发指南,介绍Go RPC开发的相关技术,这是其中的一章,专门介绍官方库 net/rpc的使用。 同时,如果对象的方法要能远程访问,它们必须满足一定的条件,否则这个对象的方法回呗忽略。 这些条件是: 方法的类型是可输出的 (the method's type is exported) 方法本身也是可输出的 (the method is exported) 方法...阅读全文

博文 2016-09-18 17:00:02 colobu

使用腾讯云函数在更新COS时自动刷新CDN缓存

title: 使用腾讯云函数在更新COS时自动刷新CDN缓存 categories: [后端开发, NodeJS开发] [系统与运维] abbrlink: 8693d6cf date: 2019-11-09 17:03:48 tags: 0x01.背景介绍 最近因为服务器资源变动,把之前的Wordpress博客迁移到了Hexo中。Hexo博客的使用形式和Wordpress相差很多,并不是动态网站,而是自行存储博客源内容(Git仓库或其他硬盘存储方式均可以),最终使用hexo-cli工具将博客的内容生成静态网页资源,部署到Apache等HTTP服务中即可访问。经过一番调研,最后决定将Hexo生成的静态网页资源放到了腾讯云的COS(对象存储服务)中,COS支持静态网站功能,而且提供每月的免费空间...阅读全文

golang time 格式化 format

名词 MarshalJSON 序列化:意思是将某种结构转化为字符串格式 UnmarshalJSON 反序列化:意思是将字符串形式转化为某种结构形式 golang的时间格式 默认采用的是RFC3339,与我们常认知的格式不同,故需要转化,但是这个转化目前也有点麻烦,一种方法是重写两个接口(marshaljson跟unmarshaljson)方法。如下: package main import ( "encoding/json" "fmt" "time" ) type JSONTime struct { time.Time } func (t *JSONTime) MarshalJSON() ([]byte, error) { // 这是个奇葩,必须是这个时间点, 据说是go诞生之日, 记忆方法...阅读全文

博文 2019-07-28 13:32:41 timehorse

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 在万亿级大数据平台开发中的实战

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

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

服务发现:Zookeeper vs etcd vs Consul

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

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

Golang RPC 之 Thrift

Thrift 简介: Thrift 是一款高性能、开源的 RPC 框架,产自 Facebook 后贡献给了 Apache,Thrift 囊括了整个 RPC 的上下游体系,自带序列化编译工具,因为 Thrift 采用的是二进制序列化,并且与 gRPC 一样使用的都是长连接建立 client 与 server 之间的通讯,相比于比传统的使用XML,JSON,SOAP等短连接的解决方案性能要快得多。本篇只介绍 Golang 关于 Thrift 的基础使用。 安装 安装 Thrift 的 Golang 库有两种方案: 直接通过 go get 命令安装,缺点是因为不可抗拒的网络因素大部分人可能会失败:$ go get git.apache.org/thrift.git/lib/go/thrift 通过...阅读全文

博文 2017-03-17 05:52:34 谢烟客

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

北京智明星通 招聘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、参...阅读全文

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

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

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

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

golang对象序列化和反序列化

模拟测试1,000, 000条数据 每条10个字节 也就是10M不到的 数据(高度结构化的数据) 过程 1.对象序列化为 byte 2.byte反序为对象 3.gzip压缩byte 测试语言go测试方案: raw byte,json ,bson, msgpack (protostuff需要先做对象配置文件,比较麻烦,通常认为和msgpack性能相当 )结果:msgpack 胜出 大小 gzip压缩后大小 对象到byte耗时 byte到对象耗时 raw 10000000 6573252(65%) 未测试 未测试 json 47515988 7919511 (17%) 3248ms 5280ms bson 49888910 9506965 (19%) 3863ms 6235ms msgpack ...阅读全文

博文 2014-10-04 19:27:16 咖啡伴侣

腾讯云+校园服务器,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内存** ...阅读全文

微服务API网关Goku - 基于 Golang 开发的超高性能的企业级微服务API网关

A Powerful HTTP API Gateway in pure golang!Goku API Gateway (中文名:悟空 API 网关)是一个基于 Golang开发的微服务网关,能够实现高性能 HTTP API 转发、多租户管理、API 访问权限控制等目的,拥有强大的自定义插件系统可以自行扩展,并且提供友好的图形化配置界面,能够快速帮助企业进行 API 服务治理、提高 API 服务的稳定性和安全性...阅读全文

go-sql-driver发生invalid connection(bad connection)解决方法讨论

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

Python、Java、Scala、Go Package对照表

格式转换类 分类 Python Java Scala Go Excel xlwt/xlrd, XlsxWriter POI - - PDF PyPDF2 Apache FOP - - CSV csvkit, tablib - - - XML解析 BeautifulSoup/bs4 - - - JSON - jackson json4s, spray-json - 数据处理和计算类 分类 Python Java Scala Go 二维数据分析 pandas - Saddle - 网络分析 networkx JUNG - - 矩阵计算 numpy - Algebird, Breeze blas, gocomplex, go-fn 科学计算 scipy SCaVis - - 符号计算 sympy ...阅读全文

博文 2015-04-10 19:00:00 Worldguy

野子科技 当AI数据服务走进中场战事

野子电竞数据官网改版https://www.xxe.io/ 全新登场毫无疑问,数据量的飙升是AI产业爆发的原因之一。很快我们可以发现,将数据采集、整理、清洗、标注再输送给AI企业用作模型训练,已经成为了一条运行流畅的产业链。 很长一段时间以来,数据服务都处于一种粗放原始的状态之中,甚至出现了一种“数据农场”的说法:数据服务从业者们从各种公开数据集或移动互联网产品中获取数据,以几乎零门槛的形式聘请大量廉价劳动力进行简单的清洗标注工作,例如勾选出一张照片中哪里是天空哪里是大地。最后再将这些粗糙处理过的数据一股脑地投入神经网络的黑箱之中。 但现如今,我们已经看到这一现状正在发生变化,AI企业对于数据的应用需求逐渐开始分化,以往一味粗放的处理模式已经不能满足他们的需求,也因此搅动了AI数据服务市场,...阅读全文

博文 2019-09-12 16:32:51 待你幼稚完

Go语言如何深度拷贝对象

深度复制可以基于reflect包的反射机制完成, 但是全部重头手写的话会很繁琐. 最简单的方式是基于序列化和反序列化来实现对象的深度复制: func deepCopy(dst, src interface{}) error { var buf bytes.Buffer if err := gob.NewEncoder(&buf).Encode(src); err != nil { return err } return gob.NewDecoder(bytes.NewBuffer(buf.Bytes())).Decode(dst) } Gob和bytes.Buffer简单组合就搞定了. 当然, Gob的底层也是基于reflect包完成的...阅读全文

博文 2014-12-26 17:00:18 chai2010

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

01-Golang可以做什么

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

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

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建千亿级微服务的实践

今日头条使用 Go 语言构建了大规模的微服务架构,本文结合 Go 语言特性着重讲解了并发,超时控制,性能等在构建微服务中的实践 编者按:本文来自微信公众号“InfoQ”(ID:infoqchina),作者项超;36氪经授权发布。 今日头条当前后端服务超过80%的流量是跑在 Go 构建的服务上。微服务数量超过100个,高峰 QPS 超过700万,日处理请求量超过3000亿,是业内最大规模的 Go 应用。 Go 构建微服务的历程 在2015年之前,头条的主要编程语言是 Python 以及部分 C++。随着业务和流量的快速增长,服务端的压力越来越大,随之而来问题频出。Python 的解释性语言特性以及其落后的多进程服务模型受到了巨大的挑战。此外,当时的服务端架构是一个典型的单体架构,耦合严重,部分...阅读全文

博文 2017-06-23 10:03:31 强子哥哥

微服务GMS

# GMS 今天是2020年10月24日,一年一度的程序员节,把这个还在开发中的项目开源出来,感兴趣的朋友可以一起参与开发。如果有大神路过请多指教。 GMS是一款基于[gnet](https://github.com/panjf2000/gnet)网络框架开发的Golang RPC微服务框架。 ## 特点: **1:非常简单、学习成本极低。GMS处于初期阶段您想参与开发也非常简单。** ​ 只要您之前使用过类似Gin、beego这样的web框架。就能快速上手,使用方法和这些web框架一样简单。 **2: 不用定义proto等协议文件。** ​ 写proto文件不仅麻烦还容易出错。而且使用协议文件定义服务,最终在框架内部实现都要使用反射去调用目标方...阅读全文

开源项目 2020-10-25 10:42:08

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

游戏分布式服务器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

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

golang json

第一次写 go 代码,研究了一下 json 解析。没想到事情还挺多。 ```go package main import ( "encoding/json" "fmt" "github.com/bitly/go-simplejson" ) type personInfo struct { Name string `json:"name"` Age int `json:"age"` Email string `json:"email" xml:"email"` } type personInfo1 struct { Name string `json:"name"` Email string `json:"email" xml:"email"` C string } func main() {...阅读全文

博文 2018-12-28 23:44:23 GuoDapeng

[北京劲松][广州欢网][[15K-30K]]招聘 GOLANG 中高级研发工程师

### 岗位职责:### - 参与公司后端公共服务和微服务体系的设计和开发; - 进行微服务相关技术调研分析并在项目中实践; - 负责编制、修改项目相关的技术文档; ### 任职要求:### - 熟练掌握Golang,4年以上工作经验,2年以上Golang开发经验,有完整项目经验,同时熟练掌握Java/PHP/C++等任意一门语言者优先; - 熟练掌握Golang相关技术,熟悉web开发,熟悉Golang协程,熟悉channel和锁,对高并发、高可用架构系统有正确、深刻的理解,有分布式服务设计或开发经验者优先; - 熟悉MySQL,熟悉数据库原理和常用性能优化技术,同时熟悉其他数据库(如Redis、MongoDB等)者优先; - 熟悉微服务docker,k8s者优先; -...阅读全文

Golang语言Post发送 json形式的请求

项目中需要用到Go语言,所以,快速学习了下,使用net/http库写了一个发送json数据的POST请求。 示例: package main import ( "bytes" "fmt" "io/ioutil" "net/http" ) func main() { url := "http://baidu.com" fmt.Println("URL:>", url) //登陆用户名 usrId := "LaoWong" //登陆密码 pwd := "pwd1234" //json序列化 post := "{ \"UserId\":\"" + usrId + "\",\"Password\":\"" + pwd + "\"}" fmt.Println(url, "post", post) va...阅读全文

博文 2017-03-09 03:00:55 Corwien

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

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

数据宝参展2017中国国际软件博览会

6月29日,第十二届中国国际软件博览会(以下简称:2017软博会)在北京展览馆开幕,本届软博会由工业和信息化部与北京市人民政府主办,国务院副总理马凯莅临软博会现场,工业和信息化部部长苗圩、北京市代市长陈吉宁、北京市经济和信息化委员会主任张伯旭等领导随行。 ![1.jpg](http://studygolang.qiniudn.com/170710/fa38bd5deaf78ea0c0e68dd52f16ba8a.jpg) 中共中央政治局委员、国务院副总理马凯出席并讲话 马凯指出,软件是信息网络的核心和灵魂。全球软件业正在步入加速创新、快速迭代、群体突破的爆发期,在促进世界经济发展和人类文明进步中将发挥越来越重要的作用。中国政府高度重视发展软件产业,制定了鼓励软件产业发展的重大政策,...阅读全文