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

实战Go内存泄露

最近解决了我们项目中的一个内存泄露问题,事实再次证明pprof是一个好工具,但掌握好工具的正确用法,才能发挥好工具的威力,不然就算你手里有屠龙刀,也成不了天下第一,本文就是带你用pprof定位内存泄露问题。关于Go的内存泄露有这么一句话不知道你听过没有:10次内存泄露,有9次是goroutine泄露。我所解决的问题,也是goroutine泄露导致的内存泄露,所以这篇文章主要介绍Go程序的goroutine泄露,掌握了如何定位和解决goroutine泄露,就掌握了内存泄露的大部分场景。借鉴饶全成的做法,把目录放出来,方便大家阅读和查看本文结构。go pprof基本知识什么是pprof基本使用浏览器方式命令行方式toplisttraces什么是内存泄露怎么发现内存泄露监控工具查看进程内在占用情况...阅读全文

博文 2019-05-18 11:09:22 一起学Golang

Golang数组和切片的示例

写个小demo来看看通过生成切片append扩容后发生了什么 package main import ( "fmt" ) var ( //实例化一个长度容量为5的slice //从slice切出一个slice2 slice = make([]int, 5) slice2 = slice[2:] ) func main() { printSlice() //修改slice2第0个元素 slice2[0] = 1 printSlice() //扩容slice2 slice2 = append(slice2, 2) printSlice() //修改slice2第0个元素 slice2[0] = 3 printSlice() //修改slice第0个元素 slice[0] = 4 printSli...阅读全文

博文 2019-05-25 22:34:44 CappuccinoBx

使用Golang开发微信公众平台-接收文本消息

使用Golang开发微信公众平台-接收文本消息 十二 20 bigwhite技术志 Amazon, CDATA, Debug, EC2, Go, Golang, http, ngrok, Opensource, Tcpdump, Wechat, wireshark, XML, 公众平台, 开放平台, 开源, 微信, 服务号, 订阅号, 调试 2 Comments 一旦接入验证成功,成为正式开发者,你可能会迫不及待地想通过手机微信发送一条"Hello, Wechat”到你的公众号服务器。不过上一篇的那个程序还无法处理手机提交的文本消息,本篇将介绍如何用Golang编写公众号程序来接收手机端发送的 文本消息以及回复响应消息。 根据微信公众平台开发文档中描述:“当普通微信用户向公众账号发消息时,微...阅读全文

博文 2015-01-20 09:24:44 bigwhite

提供各类平台专用香港服务器,站群服务器,云服务器。

香港高防服务器租用!建站服务器/云服务器,直营机房,一手资源,大带宽高防御! 我们的多线BGP数据中心连接全球各地,并且能够处理最复杂苛刻的运算要求。 为各类用户提供优质服务器,为客户提供五星级式售后,免费重装系统,重启,系统测试,维护等!! 通过整合中国大陆、香港及海外互联网网络资源,给客户提供真正的钻石级互联网服务 24小时技术支持服务,免费测试体验!国内+国际优化线路带宽!10M大带宽独享 24小时技术支持服务,随时更换ip,免费测试体验!国内+国际优化线路带宽! 详细请咨询QQ:1462803341 wx 18229371957 香港将军澳机房,提供最先进、快速的网络基础设计建设及国际顶级设备。并且和全球9 大信息服务商建立了长期合作关系,包括中国电信、中国移动、中国联通、NTT 、...阅读全文

博文 2019-04-26 16:55:16 q1462803341

go filepath Abs

func Abs(path string) (string, error) 检测地址是否是绝对地址,是绝对地址直接返回,不是绝对地址,会添加当前工作路径到参数path前,然后返回 一下是测试代码 func TestAbs() { fpt, err := filepath.Abs("/hello") if err != nil { panic(err) } fmt.Println(fpt) fpt, err = filepath.Abs("helleeo") if err != nil { panic(err) } fmt.Println(fpt) } 打印信息: /hello /home/xxx/workspace/gotestworkspace/golangtest/helleeo “/”...阅读全文

博文 2014-10-04 19:26:08 zongjh

用Google看世界,妙用引擎“Index of”

网上有许多令人心动的共享软件,可惜的是它们或多或少都存在各种限制,对于我等贫苦一族来说,面对昂贵的注册费用只能望而却步,而且支付起来也不太方便(特别是国外的共享软件)。现在,只要利用Google强大的搜索功能,再配合一定的搜索技巧就会让你有意外的发现。 打开Google的搜索页面后,在搜索栏内填上你要搜索的软件名称、空格,并在后面加上“94fbr”的搜索代码(例如:WinZIP 94fbr),单击“搜索”按钮后你会看到所要的东西了。但该方法也并不是万能的,当没有找到合适的结果,则不妨再试试输入“软件名称 crack or sn or 破解”,一般都能找到了。 首先打开Google,在关键词输入框中输入index of lib,选择“搜索简体中文网页”选项,回车搜索,得到了一些网页,不要以为这...阅读全文

博文 2015-01-28 11:00:02 郑光宗

另一种blast2go的思路

blast2GO是用序列相似性得到go的信息,而网上很多软件要么针对某个蛋白的,要么就是只能网上运行的,还有就是只有windows的,烦- - 但如果用名字对应会怎么样,尝试了一番记录如下: 我们的序列先进行blast Nr库得到的是比对的蛋白序列,名字有gi号和refseq号; NCBI FTP里面有个gene2go的文件,发现是geneid对应go号; 又从FTP里面发现了gene2refseq文件,是geneid对应gi号; 好了,由此我们可以把这三者进行了串联,结果发现了350多条对应关系,而blast2go的结果有303,\(^o^)/~! 但是我将两者取了交集之后,发现只有5个!只有5个!只有5个!!!瞬间伐开心。。。 所以我在想是不是有几种情况要考虑: 首先是过滤,我们blas...阅读全文

博文 2016-01-16 12:00:01 skenoy

一个轻量级的分布式定时任务调度平台-Cloudtask

什么是Cloudtask? Cloudtask 是一个轻量级的分布式定时任务管理平台,它非常轻量小巧,使用简单,我们可以上传、暂停/启动任务,克隆一个任务,修改任务的执行命令,或者查看任务的调度状态、执行日志,开发人员可以采用自己最熟悉的编程语言来编写任务程序,可以是一个控制台程序,也可以是一段 shell 脚本,上传至平台后设置定时执行规则即可。 设计方案 Cloudtask 后端为无状态服务,通过 Zookeeper 实现集群各节点间的发现与协调,节点以心跳方式注册到注册中心,中心服务器统一管理着所有集群,任务调度以集群方式进行分配,具有良好的可扩展性,任务分配信息按集群划分并将分配数据存储到 Zookeeper 节点,保持分配数据的一致性。 更多文档 https://cloudtask...阅读全文

Go和HTTPS

自 tony bai 近期在构思一个产品,考虑到安全性的原因,可能需要使用到HTTPS协议以及双向数字证书校验。之前只是粗浅接触过HTTP(使用Golang开 发微信系列)。对HTTPS的了解则始于那次自行搭建ngrok服务,在那个过程中照猫画虎地为服务端生成了一些私钥和证书,虽然结果是好 的:ngrok服务成功搭建起来了,但对HTTPS、数字证书等的基本原理并未求甚解。于是想趁这次的机会,对HTTPS做一些深度挖掘。主要途 径:翻阅网上资料、书籍,并利用golang编写一些实验examples。 一、HTTPS简介 日常生活中,我们上网用的最多的应用层协议就是HTTP协议了,直至目前全世界的网站中大多数依然只支持HTTP访问。 使用Go创建一个HTTP Server十分Easy,十几行代码...阅读全文

博文 2017-01-20 13:00:03 andylau00j

深度学习第一课

近几年深度学习的概念非常火,我们很幸运赶上并见证了这一波大潮的兴起。记得2012年之前提及深度学习,大部分人并不熟悉,而之后一段时间里,也有些人仍旧持怀疑的态度,觉得这一波浪潮或许与之前sparse coding类似,或许能持续火个两三年,但终究要被某个新技术新方法所取代,再后来,无论是学术界还是工业界,总有些研究者为自己没有在第一时间跟进这波浪潮感到后悔莫及。确实,从2012年AlexNet取得ImageNet的冠军开始,五年过去了,深度学习的方法仍旧占领着人工智能这片领域。 随着这波浪潮,有些人作为弄潮儿,兴起一波波巨浪,引领各个领域从传统方法到深度学习方法的转变,并希望能够通过了解其他领域的方法改进自己所从事的领域;有些人辛勤地工作,利用深度学习的方法为公司提高业绩,希望实时跟进并实现...阅读全文

博文 2017-06-24 09:52:16 PaddlePaddle开源团队

Serverless架构详解:开发者如何专注于业务代码本身?

**本文来自腾讯云技术沙龙,本次沙龙主题为Serverless架构开发与SCF部署实践 ** 演讲嘉宾:黄文俊,曾负责企业级存储、企业级容器平台等产品的架构与开发,目前主要负责SCF腾讯无服务器云函数产品相关。对容器平台、微服务架构、无服务器架构以及DevOps等多种热门技术领域均有涉猎。 大家好,自我介绍一下,目前我是腾讯云无服务器云函数产品负责人。我做了很多年后端开发。今天是从一个程序员角度讲解一下我们怎么样用Serverless架构。 我将本次讲解分为几块:第一,Serverless架构介绍;第二,对云函数产品介绍;第三,Serverless使用场景。 讲Serverless架构之前我们可以来看一下整个云的发展过程,在没有云之前大家可能都是用的物理服务器,早期时候大家都用的物理机托管方...阅读全文

博文 2018-08-30 12:35:03 腾讯云加社区

golang interface赋值

说说我对golang的interface赋值的理解。 先说golang中类型方法定义。 如 type bird struct { id int } func (b bird) fly() { fmt.Println("fly") } func (b *bird) eat() { b.id++ } 中bird类型有两个方法,fly和eat。 两个方法是有区别的,fly由(b bird)绑定,eat由(b *bird)绑定。 在应用中,(b *bird)绑定方式可以修改对象中的参数,而(b bird)方式则不可以。 再来说接口的赋值。接口赋值可以分为对象对接口的赋值和接口对接口的赋值。 对象对接口的赋值需要对象完全实现接口定义的所有方法。 如定义如下接口 type animal interfac...阅读全文

博文 2015-06-17 20:02:23 iwbno1

30亿条个人信息被盗,全站HTTPS迫在眉睫

本文首发于微信公众号:网络安全生命周期原文链接:30亿条个人信息被盗,全站HTTPS迫在眉睫【特大流量劫持事件】据新华网报道,日前,浙江绍兴市越城区公安分局侦破一起特大流量劫持案,涉案主角瑞智华胜,涉嫌非法窃取用户个人信息30亿条,涉及百度、腾讯、阿里、京东、新浪和今日头条等全国96家互联网公司产品,几乎涵盖了国内主要互联网企业。原来这家公司是通过流量劫持(HTTP劫持)的方式,非法收集个人信息并盗用用户认证凭据(Cookie)进行精准营销(加粉、点赞、发帖、添加广告等)。【根因分析】目前广泛使用的HTTP协议,由于是明文传输,往往会被劫持,其中用于身份认证的凭据(Cookie)很容易被窃取,此外劫持者还会在返回的网页内容中添加js脚本,用于展示广告等原始网页中并不存在的内容。要避免被劫持,...阅读全文

用go实现聊天室(WebSocket方式)

前言 刚入门go语言和beego框架,通过一个简单聊天室的实现,来趁热练习。 详细代码见github。 一、WebSocket协议 在实现之前,我们需要解决一个底层问题。 总所周知,HTTP协议是单向传输协议,只能由客户端主动向服务端发送信息,反之则不行。而在聊天室中,一个用户发送一条消息,服务器则需要将该条消息广播到聊天室中的所有用户,这想通过HTTP协议实现是不可能的。 除非,让每个用户每隔一段时间便请求一次服务器获取新消息。这种方式称为长轮询。但其缺点十分明显,非常消耗资源。 为了解决这个问题,WebSocket协议应运而生。 那什么是WebSocket协议呢?百度百科 WebSocket协议与HTTP协议同属于应用层协议。不同的是,WebSocket是双向传输协议,弥补了这个缺点,在...阅读全文

博文 2019-02-20 12:34:42 99MyCql

go vendor 介绍

go vendor 是go 1.5 官方引入管理包依赖的方式,1.6正式引入 其基本思路是,将引用的外部包的源代码放在当前工程的vendor目录下面,go 1.6以后编译go代码会优先从vendor目录先寻找依赖包; 1.解决的问题: 将源码拷贝到当前工程的vendor目录下,这样打包当前的工程代码到任意机器的$GOPATH/src下都可以通过编译,避免项目代码外部依赖过多,迁移后, 需要多次go get 外包依赖包;而且通过go get 重新拉去的外部依赖包的版本可能和工程开发时使用的不一致,导致编译错误问题。 2.未解决的问题: 无法精确的引用外部包进行版本控制,不能指定引用某个特定版本的外部包;只是在开发时,将其拷贝过来,但是一旦外部包升级,vendor下的代码不会跟着升级, 而且ve...阅读全文

博文 2016-09-09 13:00:05 hittata

url解析

Golang URL解析今天利用课余时间看了一下Go语言的URL解析,于是就实践了一下,为了大家一起学习交流,故贴出来和大家一起分享,如有什么错误,请各位大神批评指出,共同进步。本人邮箱:1975210542@qq.compackage main import ( "fmt" "net/url" "strings" ) func main() { Url := "https://root:123456@www.baidu.com:0000/login?name=xiaoming&name=xiaoqing&age=24&age1=23#fffffff" //Parse函数解析Url为一个URL结构体,Url可以是绝对地址,也可以是相对地址 // type URL struct { // Sc...阅读全文

博文 2017-06-16 09:55:43 131360144

贵阳市副市长高卫东率团调研ChinaDataPay.com中国数据宝

2016年12月13日,贵阳市政府副市长、贵州双龙航空港经济区管委会党工委常务副书记、主任高卫东率双龙航空港经济区观摩团莅临ChinaDataPay.com中国数据宝总部进行参观指导。副市长高卫东首先参观了数据宝公司大事记,对公司发展历程进行了解。随后来到大厅电子屏前,在数据宝员工的讲解下,听取了数据宝公司的发展情况、业务模式、产品体系以及所获成果。在调研过程中,双方就数据价值的评估判定与数据宝员工进行了深度交流。副市长高卫东表示,大数据产业的高速发展离不开数据价值的评估判定,数据宝平台的数据资产在规模、活性、维度、关联度和颗粒度方面都占有优势。 规模——整合多行业数据资源,深挖数据资产价值 “规模”作为数据价值评估维度之一是相对容易理解的。没有“量”的积累,就没有“...阅读全文

golang 反射

自:http://golanghome.com/post/546 自己在用Go写Web框架时,遇到要从接口中返回对象信息的技术问题。网上关于Go中接口反射的资料较少,所以自己学习了一段时间,特将结果与大家分享。 代码约定 import ( "fmt" "reflect" ) type boy struct { Name string age int } type human interface { SayName() SayAge() } func (this *boy) SayName() { fmt.Println(this.Name) } func (this *boy) SayAge() { fmt.Println(this.age) } func main() { // 定义接口变...阅读全文

博文 2015-04-04 03:00:00 rojas

基于 Beego 开发的后台管理系统gardens

gardens是基于Beego开发的易用、易扩展、界面友好的轻量级功能权限管理系统。 前端框架基于AdminLTE2进行资源整合,包含了多款优秀的插件,是笔者对多年后台管理系统开发经验精华的萃取。 本系统非常适合进行后台管理系统开发,统一的代码和交互给二次开发带来极大的方便,在没有前端工程师参与的情况下就可以进行快速的模块式开发,并保证用户使用的友好性和易用性。系统里整合了众多优秀的资源,在此感谢各位大神的无私奉献。 分页列表页面的搜索条件、搜索面板、PageSize、当前页数、显示/隐藏列在变化时自动保存,页面刷新后、重新进入时,这些状态依然保持; TreeTabe列表节点展开/收缩状态、滚动条位置时自动保存,页面刷新后、重新进入时,这些状态依然保持; 编辑分页列表、TreeTab...阅读全文

开源项目 2018-10-31 12:30:01 网友

Golang 获取用户 home 目录路径

os/user改进参考 os/user 一般情况下我们可以使用 os/user 包提供的 Current() 函数来获取用户信息: user, err := user.Current() if nil == err { return user.HomeDir, nil } 但这个方式交叉编译后不能完全跨平台,在 darwin 下需要 cgo 才能正常工作。 改进 为了解决这个问题,我们需要进行一点增强,在通过 os/user 获取失败时再通过环境变量、命令来获取: // Home returns the home directory for the executing user. // // This uses an OS-specific method for discovering th...阅读全文

博文 2015-04-05 11:21:30 88250

<10> go test单元测试

之前看了go官方的github上关于golang的单元测试,现在总结一下关键的地方。 单个测试 文件名必须是_test.go结尾的,这样在执行go test的时候才会执行到相应的代码 你必须import testing这个包 所有的测试用例函数必须是Test开头 测试用例会按照源代码中写的顺序依次执行 测试格式:func TestXxx(t *testing.T),Xxx部分可以为任意的字母数字的组合,但是首字母不能是小写字母[a-z],例如Testintdiv是错误的函数名。 函数中通过调用testing.T的Error, Errorf, FailNow, Fatal,FatalIf方法,说明测试不通过,调用Log方法用来记录测试的信息。 举个例子 package gotest impor...阅读全文

博文 2015-11-27 16:00:01 a11101171

更优雅的 Golang 错误处理

Golang 中的错误处理是一个被大家经常拿出来讨论的话题(另外一个是泛型)。其中泛型这个问题,rsc 在最近的计划中也提出了纳入他今年的考虑计划中,同时,泛型的提案在2016年也进行了一些更新,相信未来会有一些更好的方案提出。这个文章我们讨论一下如何在现行的 Golang 框架下提供更友好和优雅的错误处理。 从现状谈起 Golang 中的错误处理原则,开发者曾经之前专门发布了几篇文章( Error handling and Go 和 Defer, Panic, and Recover、Errors are values )介绍。分别介绍了 Golang 中处理一般预知到的错误与遇到崩溃时的错误处理机制。 一般情况下,我们还是以官方博客中的错误处理例子为例: func main() { f,...阅读全文

博文 2017-02-10 07:42:04 kevin

中润四方中央研究院招聘GO语言高级程序员(工作地点:深圳)

大家好,我司目前正在招聘GO语言相关的高级程序员,大家可以发简历到fansy98@163.com, 具体招聘信息如下: ### 招聘需求 ### **职位1:中润四方中央研究院平台部高级程序员** 要求:3人 薪资待遇:8K~1.5万 岗位职责: 1、负责Docker容器平台开发; 2、根据需求文档和架构设计文档进行模块开发、功能测试、系统集成。 岗位要求: 1、计算机及相关专业本科以上学历(211工程学校优先考虑),良好的英语读写能力,四年以上相关工作经验; 2、精通Linux环境下的c程序设计语言,熟悉Go语言的优先考虑; 3、精通基本算法,并具有良好的数据结构基础; 4、熟悉Linux环境下的脚本编程,包括Shel...阅读全文

Golang练手小项目系列

本系列整理了10个工作量和难度适中的Golang小项目,适合已经掌握Go语法的工程师进一步熟练语法和常用库的用法。golang练手小项目系列(1)-位向量golang练手小项目系列(2)-并发爬虫golang练手小项目系列(3)-并发读取文件夹信息golang练手小项目系列(4)-网络聊天室golang练手小项目系列(5)-并发无阻塞缓...阅读全文

博文 2019-06-29 01:32:41 李说的对

一起学习微服务和容器2-微服务的框架

简述 前情回顾 在前面的小节中,我们大致了解了微服务体系结构的一些基本概念和理念,额外再啰嗦句,还请大家留意最重要的两点:DDD设计模型以及微服务的12原则。接下来的这篇文章将就常见的微服务的框架给大家简单介绍一下,让大家对微服务的体系结构有进一步的理解。 微服务技术栈的发展 有了前面章节的描述,相信大家也都了解,微服务很大程度来说是从SOA的体系结构演进而来的新的分布式体系结构。那SOA的相关的技术栈,在微服务的世界里面也会被继承以及迭代发展。 现下的社会是信息爆炸性发展的时代,在现下的现实社会中,特别是2000年以后这一二十年中,无论是国内还是国际上,社会的各个行业得以飞速发展,其中以金融,电信以及互联网和智能制造为代表。 行业的发展,对信息化的支撑提出了一层又一层新的要求;而信息化的发...阅读全文

博文 2019-01-07 19:34:45 cxj_hit

比原链CEO朗豫:重金启动MOV生态建设,这会是第一个分布式区块链商业生态

11月8日,由巴比特主办的2019世界区块链大会·乌镇在乌镇互联网国际会展中心正式开幕。在比原链“Keep MOVing”专场活动上,比原链CEO朗豫做了主题分享。 以下内容来自朗豫分享,经巴比特整理。 朗豫 稳定运行2年,主、侧、跨发展方向破解不可能三角难题 2018年底、2019年初时,我们讲稳定、安全和繁荣。 我们都实现了。目前,比原链已无故障运行近2年,侧链也已平稳运行3个半月。没有稳定的系统就不可能有稳定的应用。去年,我们的算力摆脱了GPU的影响进入平稳发展阶段,钱包客户端也没有出现资损情况。我们的开发者社区诞生了一本已出版的技术解读类图书。我们也加入了golang这个大技术社区。在政务和商务应用方面,我们也进入了比较好的状态。 在技术上,我们实现了侧链Vapor,完善了基于比原链...阅读全文

博文 2019-11-11 09:33:37 更多精彩内容POW的比原链为何要做Staking?长铗或解锁你认知“资产”新姿势 | Bystack火石计划巴比特资讯Bystack开启共识节点全球招募,长铗首次详细描述Bystack的世界观、现状和未来巴比特资讯拼流量、拼资源、拼技术—— BaaS已沦

Go 垃圾回收

通常C++通过指针引用计数来回收对象,但是这不能处理循环引用。为了避免引用计数的缺陷,后来出现了标记清除,分代等垃圾回收算法。Go的垃圾回收官方形容为 非分代 非紧缩 写屏障 并发标记清理。标记清理算法的字面解释,就是将可达的内存块进行标记mark,最后没有标记的不可达内存块将进行清理sweep。 三色标记法判断一个对象是不是垃圾需不需要标记,就看是否能从当前栈或全局数据区 直接或间接的引用到这个对象。这个初始的当前goroutine的栈和全局数据区称为GC的root区。扫描从这里开始,通过markroot将所有root区域的指针标记为可达,然后沿着这些指针扫描,递归地标记遇到的所有可达对象。因此引出几个问题: 标记清理能不能与用户代码并发 如何获得对象的类型而找到所有可达区域 标记位记录在...阅读全文

博文 2017-12-10 02:11:11 nino's blog

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的日本在线购物商店及其配套后台系...阅读全文

北京市政协常委、社会和法制委员会主任吴玉华等莅临ChinaDataPay中国数据宝参观指导

10月24日,北京市政协常委、社会和法制委员会主任吴玉华,北京市政协委员、社会和法制委员会副主任皮剑龙一行莅临ChinaDataPay中国数据宝公司进行参观指导,数据宝董事长汤寒林携数据宝员工给予热情接待,双方就大数据如何参与政府决策、如何通过大数据技术助力城市建设进行了深入交流。 北京市政协常委、社会和法制委员会主任吴玉华,北京市政协委员、社会和法制委员会副主任皮剑龙等首先听取了数据宝的发展模式以及未来规划,并给予了充分的肯定。吴玉华主任表示,建立宏观经济、市场监管、风险预警等方面的大数据决策支撑体系,需要加强城市运行管理、市场经济行为等各类信息的融合利用,提高决策科学化水平。数据宝平台的建立对政府决策以及助力城市建设具有重大意义。 据了解,今年8月,为深入贯彻落实《国务院关于...阅读全文

go package学习——os/exec

package exec用于运行外部命令,它封装了os.StartProcess,从而使操作更容易。 Index Variables func LookPath(file string) (string, error) type Cmd func Command(name string, arg ...string) *Cmd func (c *Cmd) CombinedOutput() ([]byte, error) func (c *Cmd) Output() ([]byte, error) func (c *Cmd) Run() error func (c *Cmd) Start() error func (c *Cmd) StderrPipe() (io.ReadCloser, er...阅读全文

博文 2014-10-04 19:26:13 壬癸甲乙

区块链将带来怎样的应用?

链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载。 在上一篇文章中,咱们聊到了区块链技术正在与大数据、云计算、物联网以及人工智能这些技术链接,随时可能碰撞出技术创新的火花,区块链可以提高人工智能的安全机制,可以解决物联网设备传统中心化设备难以承受巨大负载的问题,从而实现物联网设备的“自治”,并且区块链技术可以帮助解决数据安全性和归属权的问题,这些都是区块链在技术层面的创新实践。但是说了这么多,最终技术的创新和进步都是为了人们的生活更加便捷和幸福。从移动互联到虚拟现实再到人工智能,从手机APP、VR眼镜到虚拟个人智能助理,可以看到新技术的创新都越来越贴近我们的生活,同样区块链也不会例外。 本文将从一篇漫画入手,聊一聊区块链技术将如何影响和改变我们的生活,在未来我们的...阅读全文

Golang回调函数实例二则

1.定义 回调函数就是一个通过函数指针调用的函数。如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用来调用其所指向的函数时,我们就说这是回调函数。回调函数不是由该函数的实现方直接调用,而是在特定的事件或条件发生时由另外的一方调用的,用于对该事件或条件进行响应。 2.机制 定义一个回调函数 提供函数实现的一方在初始化的时候,将回调函数的函数指针注册给调用者 当特定的事件或条件发生时,调用者使用函数指针调用回调函数对事件进行处理 例1.这是一个简单的回调例子,调用函数test时,调用真正的实现函数add package main import "fmt" type Callback func(x, y int) int // 提供一个接口,让外部去实现 func test(x, ...阅读全文

博文 2017-07-27 02:06:18 iCaptain

Mac下Go语言环境的搭建

go语言运行包安装 下载地址: https://code.google.com/p/go/downloads/list 我下载的是:go1.0.3 Mac OS X (x86 64-bit) Signed PKG installer go1.0.3.darwin-amd64-signed.pkg 下载完成后直接安装。运行包自动安装在 /usr/local/go 中,这样在命令终端就可以运行go命令了。 这时候在命令行输入 go,会看到下面信息: cybercarematoMacBook-Pro:iOS cybercare$ goGo is a tool for managing Go source code. Usage: go command [arguments] The command...阅读全文

博文 2014-10-26 16:53:18 ghj1976

从设计到实战:Go 如何扛住100亿次请求

前几天,偶然看到了 《扛住100亿次请求——如何做一个“有把握”的春晚红包系统”》(url)一文,看完以后,感慨良多,收益很多。正所谓他山之石,可以攻玉,虽然此文发表于2015年,我看到时已经是2016年末,但是其中的思想仍然是可以为很多后端设计借鉴,。同时作为一个工程师,看完以后又会思考,学习了这样的文章以后,是否能给自己的工作带来一些实际的经验呢?所谓纸上得来终觉浅,绝知此事要躬行,能否自己实践一下100亿次红包请求呢?否则读完以后脑子里能剩下的东西 不过就是100亿 1400万QPS整流 这样的字眼,剩下的文章将展示作者是如何以此过程为目标,在本地环境的模拟了此过程。   实现的目标: 单机支持100万连接,模拟了摇红包和发红包过程,单机峰值QPS 6万,平稳支持了业务。   注:本文...阅读全文

博文 2017-02-19 08:00:24 XiaoJIaQI

Golang在视频直播平台的高性能实践

http://toutiao.com/i6256894054273909249/ 熊猫 TV 是一家视频直播平台,先介绍下我们系统运行的环境,下面这 6 大服务只是我们几十个服务中的一部分,由于并发量与重要性比较高,所以成为 golang 小试牛刀的首批高性能高并发服务。Golang在视频直播平台的高性能实践(含PPT下载)把大服务拆细, 然后服务化独立部署,更容易简化部署,也容易单点细节优化与升级。多数服务的能力是通用的,如平滑重启、多机房部署等。Golang在视频直播平台的高性能实践(含PPT下载)关于在线服务,如果 1000 万用户在线,即使每 30 秒一次在线 http 发送打点,那么也有每秒 30 万+的接口 qps。Golang 提供的 http server 性能非常好,一个普...阅读全文

博文 2016-03-03 03:00:00 jukan

Go语言panic和recover使用

package main import ( "fmt" ) func main() { f() fmt.Println("Returned normally from f.") } func f() { defer func() { if r := recover(); r != nil { fmt.Println("Recovered in f", r) fmt.Println("Recovered in f", r) } }() fmt.Println("Calling g.") g() fmt.Println("Returned normally from g.") } func g() { panic("ERROR") } panic 意思是抛出一个异常, 和python的raise...阅读全文

博文 2015-06-18 18:04:37 fyxichen

1.Go环境配置

1.Go环境配置 1.1 Go 安装 1111 Go的三种安装方式 Go有多种安装方式,你可以选择自己喜欢的。这里我们介绍三种最常见的安装方式: Go源码安装:这是一种标准的软件安装方式。对于经常使用Unix类系统的用户,尤其对于开发者来说,从源码安装是最方便而熟悉的。Go标准包安装:Go提供了方便的安装包,支持Windows、Linux、Mac等系统。这种方式适合初学者,可根据自己的系统位数下载好相应的安装包,一路next就可以轻松安装了。第三方工具安装:目前有很多方便的第三方软件包工具,例如Ubuntu的apt-get、Mac的homebrew等。这种安装方式适合那些熟悉相应系统的用户。 最后,如果你想在同一个系统中安装多个版本的Go,你可以参考第三方工具GVM,这是目前在这方面做得最好...阅读全文

博文 2014-10-10 04:00:02 longxiu628forever

坐标深圳南山区科技园 鲸打卡 求GO开发

职位诱惑: 周末双休,产品驱动,老板好,氛围好 有爱氛围,周末双休,老板人好,产品驱动 【公司介绍】 耀京科技是一家以“产品技术革新推动教育行业发展”为愿景的初创公司,旗下产品“鲸打卡”是一款为教育行业机构、老师打造的作业互动小程序,解决了在线教育中师生互动、提交点评作业的难题。上线仅一个月,已有付费客户几十家,并且拿到了教育行业资深投资人天使投资。 【岗位职责】 1、负责系统后台的功能研发,通过实战一步步熟悉系统与提高研发能力; 2、负责相应模块的功能设计与研发,提供restful风格的API接口; 【工作要求】 1、1年以上工作经验,计算机相关专业本科及以上学历; 2、对数据库、系统结构、数据结构等基础课程掌握较好; 3、熟练掌握g...阅读全文

Go语言针对MySQL数据查询的错误处理方式

// Go语言针对MySQL数据查询的错误处理方式 package main import ( "database/sql" "fmt" "runtime" ) // go run test.go func main() { // mysql扩展 https://github.com/go-sql-driver/mysql db, err := sql.Open("mysql", "root:@tcp(127.0.0.1:3306)/test?charset=utf8") if err != nil { fmt.Println(err) } // db连接一般不主动关闭, 除非确认确实不再需要该连接了, go会进行回收 defer db.Close() // 用户模型, 表结构, 需要一个结...阅读全文

博文 2017-06-05 15:06:14 广训

用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

ECUG Con 邀您共议服务端开发最深度实践

ECUG 全称为 Effective Cloud User Group (实效云计算用户组),由七牛云 CEO 许式伟于 2007 年发起,集结了一批具有高端视角并仍醉心于技术本身的同仁,共同关注云计算前沿技术的最新成果和分布式开发、运维的最佳实践。在过去的八年中, ECUG 社区每年都会组织一场全国性的 ECUG Con 大会,期间众多技术大神纷纷参与,他们或许在大众技术会议已经鲜少露面,但会在 ECUG Con 畅谈心得,共同奉献一场半公开的高规格技术分享盛会。 ECUG Con 发展历程 ECUG Con 2015 将于 2016 年 1 月 22 ~ 23 日在新疆大厦举行,作为具有重要意义的第十期聚会,我们落地北京,同时首次面向所有技术人群公开报名。本届大会仍然以交流云计算产业的最...阅读全文

博文 2017-02-09 08:10:45 七牛云

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 杨锡坤

golang的http client源码简析

RT: 有注释信息的代码在:https://github.com/yuanyangen/go_learning/tree/master/src/learning 上述代码是从golang1.5.2中得到的http部分源代码 在分析该源码过程中, 得到的简易流程图是: 在上述的流程中:不同颜色的方框表示不同的协程, 上图并没有完全将所有的细节 都展示出来,只是一个最基本的功能的描述, 而方框中的文字表示该处理的代码在哪个包下面的具体函数。 对于具体的详细处理流程, 请查看源代码。 在代码中出现的部分问题 1: 如果http响应t经过了gzip编码, 那么是什么时候进行解码的? 在代码位置: https://github.com/yuanyangen/go_learning/blob/maste...阅读全文

博文 2016-01-19 12:00:01 yuanyangen

Golang在视频直播平台的高性能实践(含PPT下载)

编者按:本文是杨武明在 2 月 27 日在 Gopher 北京聚会演讲基础上整理而成。转载请注明来自高可用架构公众号「ArchNotes」。杨武明,熊猫 TV 首席架构师,曾担任奇虎 360 PC 网游技术架构负责人,前新浪微博平台资深后端开发、技术专家。对大型互联网架构有丰富的实践经验,擅长后端基础服务与组件开发,尤其高性能、高并发、大数据业务场景。熊猫 TV 是一家视频直播平台,先介绍下我们系统运行的环境,下面这 6 大服务只是我们几十个服务中的一部分,由于并发量与重要性比较高,所以成为 golang 小试牛刀的首批高性能高并发服务。把大服务拆细, 然后服务化独立部署,更容易简化部署,也容易单点细节优化与升级。多数服务的能力是通用的,如平滑重启、多机房部署等。关于在线服务,如果 1000...阅读全文

博文 2016-10-20 20:00:01 u012798391

看《人民的名义》是如何利用大数据技术进行侦查反腐

最近热播的大型反腐题材剧《人民的名义》火了,大至台前幕后频频爆出的后台背景与真实故事,小至微博微信不断刷新的各类影评,甚至是一系列让人忍俊不禁的达康书记的表情包等,这部以“大尺度”人物关系、环环相扣的剧情以及演技精湛的老戏骨而著称的电视剧,受当下群众脍炙人口、喜闻乐见的程度,可略见一斑。 那么,《人民的名义》到底有多火?我们可以通过一组数据进行具体阐述说明。根据数据监测显示,自《人民的名义》3月28日首播至今,在短短不到2周的时间内,微博发帖量高达1160455,论坛话题量22338,网站21271,新闻15844,微信8646,客户端6215,博客2648,视频1438,政务1358,报刊699,外媒112。截至4月5日,全网视频播放量突破2.8亿,豆瓣评分8.7,其以2.264%的...阅读全文

AliPay SDK for Golang

https://github.com/smartwalle/alipay AliPay SDK for Golang ## 已实现接口 #### 手机网站支付API * **手机网站支付接口** alipay.trade.wap.pay * **统一收单线下交易查询** alipay.trade.query * **统一收单交易支付接口** alipay.trade.pay * **统一收单交易关闭接口** alipay.trade.close * **统一收单交易退款接口** alipay.trade.refund * **统一收单交易退款查询** alipay.trade....阅读全文

raspberry安装go

修改软件源 我的source.list #替换国内源 #中山大学 deb http://mirror.sysu.edu.cn/raspbian/raspbian/ wheezy main contrib non-free rpi #中国科学技术大学 deb http://mirrors.ustc.edu.cn/raspbian/raspbian/ wheezy main contrib non-free rpi #清华大学 deb http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ wheezy main contrib non-free rpi #华中科技大学 #deb http://mirrors.hustunique.com/r...阅读全文

博文 2015-04-13 15:00:07 scotth

大型互联网公司招 数据分析工程师 — 会 Go 优先考虑

北京大型互联网公司招 数据分析工程师,要求懂编程,目前项目有用Go写一些服务,因此会Go语言的优先考虑; 工作职责: 1. 完成数据模型的ETL实施,参与团队ETL流程的优化以及相关技术问题的解决 2. 设计大规模实时系统,实现数据采集、分析和检索 3. 建立数据仓库,DPM 职位要求: 1. 计算机相关专业大学本科及以上学历,有扎实的计算机基础 2. 精通常用数据结构和算法 3. 精通PHP,熟悉Java/Python/Go/C等语言中的一种或几种 4. 精通SQL,掌握MySQL,熟悉Redis和MongoDB等DB的一种或者多种 5. 熟练掌握Hadoop/MR、Storm、Spark或其它并行计算架构 6. 熟悉Linux...阅读全文

[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

微信公众号小游戏怎么做

微信公众号小游戏怎么做 现在的推广模式更多倾向于移动端,怎么样能够做好移动端的推广?很多人第一时间会想到利用移动的社交软件来进行,从最开始的QQ、微博,到现在的微营销、再到微信公众的运营。整个移动端的推广都在演变。微信公众号的推广一般利用:抽奖、小游戏、活动、优惠券等来吸引用户关注微信公众号。那微信游戏怎么制作呢?微信公众号游戏能让用户在增加用户对公众号的好感,如果游戏做的有趣,可玩性高,自然而然的就会转发的朋友圈,这样能为你的公众号吸引更多的用户关注。 微信小游戏是微信公众号与用户常用的的互动方法,通过游戏互动的形式让用户对你的公众号增加好感,进一步的提升用户的粘性。像之前比较火的,通过公众号的AI问答模式,通过用户发送关键字到公众号上获取信息,进入预先设定好的页面,在问答页面上,通过...阅读全文