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

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

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

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

Intellij Idea 14编译golang 插件

最近项目实在太赶了,很久没有写过博文了。 公司新配了一台笔记本电脑,原装win8的。于是又从linux回到了windows。不想用win命令行来搞go了,win下太折腾了。还是用一直使用的idea。 golang的插件貌似更新很频繁,都是源码的,所以要自己编译下。 过程如下: 1.下载源码: https://github.com/go-lang-plugin-org/go-lang-idea-plugin/releases/ 2.解压,然后用idea打开。 3.ctrl+alt+shift+s ,打开项目配置,在sdk中选择java jdk 和 intellij plugin plateform 两项。然后在project中,将jdk选为intellij plugin plateform这个...阅读全文

博文 2015-05-04 09:00:01 juepei

Go语言打印调用堆栈

Go语言打印调用堆栈 这两天看Go的代码,呃,协程太多,无数个携程调用了一个方法,彻底看不清了,所以就想到是不是可以把调用堆栈打印出来。 查了一下,发现Go的 runtime/debug 库可以把调用堆栈打出来。下面看个例子: package main import ( "fmt" "runtime/debug" ) func test1() { test2() } func test2() { test3() } func test3() { fmt.Printf("%s", debug.Stack()) debug.PrintStack() } func main() { test1() } 从上面代码可以看出,可以通过 debug.PrintStack() 直接打印,也可以通过 deb...阅读全文

博文 2017-12-05 02:06:41 kongxx

beego orm 多对多查询

首先纠正一下beego的文档 rel_table设置自动生成的 m2m 关系表的名称rel_through如果要在 m2m 关系中使用自定义的 m2m 关系表通过这个设置其名称,格式为 pkg.path.ModelNameeg: app.models.PostTagRelPostTagRel 表需要有到 Post 和 Tag 的关系 实际上rel_through的格式并不是pkg.path.ModelName,正确的姿势是: // 不要照抄哈,这里只是eg应该怎么使用 learnBeego/myApp/models.RoleUser 在这里卡了一天,后来还是在google的帮助下找到了问题,bd能搜索出关于go的东西实在太少了 举个例子 需求:用户、角色。我们要实现 一个用户可以有多个角色,...阅读全文

博文 2018-12-27 23:34:41 Chiu

Golang,用map写个单词统计器

Golang中也有实用的泛型编程模板。如map。据Go官方团队称,其实现为Hash表,而非类似cpp或Java的红黑树。所以理论上速度更能快上几个等级(Hash与红黑树的效率对比可以看我的文章C++中各种关联方式的速度对比,效率比约为3:1),但有一些区别,就是遍历时,数据是无需且随机的(当然,后文会讲到有序化的方法)。接下来,我们先创建一个map对象。 dict:=make(map[string]int); 由于map的强类型,所以一切类型是静态的,map也不例外。从make函数中可以看出,本map的索引(键)值是一个string类型,而数据值是一个整数。下面,我们向其中插入一个键值对。 dict["is"]:=1; 很简单,没有必要用其他成员函数,直接用与数组一样的访...阅读全文

博文 2015-07-21 03:00:01 Darksun

为什么网站排名上不去

“隔壁家老王的排名怎么又上去了!”“我的长尾词呢?”这年头,搜索引擎排名真是一天一个样,今天你在首页,明天可能十页开外都找不到你的推广文章了。辛苦做了好几个月的SEO,排名说掉就掉,今年也无颜见江东父老了。 这是每一个SEO优化工程师都会遇到的问题,要么感叹竞争对手太有钱,要么感叹别人家的SEO都是铁打的。百度竞价是个无底洞,流量都是用钱堆砌起来的,聪明的网络推广者已经开始用这个小工具,成本低还能经常上首页! 要想网站排名靠前,搜索引擎优化和网站优化是中小企业进行网络推广的首选。人力做SEO的周期都很长,一个关键词要做到百度首页,至少需要半个月的时间,热门的关键词时间更长。易推宝整合了国内上千个行业网站和新闻平台,企业只要在后台编辑一次推广文章,其他的事情易推宝全部帮你搞...阅读全文

我用一周打造一个小程序之后,竟然...

半个月前萌生了一个想法打造一个小程序,除了可以夯实自己的前端开发能力之余还可以有一些积累下来的东西 二话不说就开始了我的造小程序之旅 首先我把我的小程序原型设计出来是这样的 前端做出来的效果是这样的 由于觉得首页样式太丑又改了一版首页的样式 改样式后的效果: 花了大概一周时间终于把原型、小程序和后端都做好之后提交小程序审核后竟然被拒绝了 .........总结:做小程序微信是对小程序功能有限制的,所以做小程序前先在小程序后台看看你的功能是否符合小程序的审核要...阅读全文

博文 2020-03-07 14:32:40 南国依红豆

ECUG 2015|许式伟:对编程语言的选择无关阵营,关乎品味

![](http://static.ijiandao.com/wp-content/uploads/2016/01/%E5%93%81%E5%91%B33.jpg) 编者按:许式伟,七牛云 CEO , ECUG 社区发起人, Go 语言专家,著有国内第一本 Go 语言图书《 Go 语言编程》。有超过 15 年互联网从业经验,曾在金山、盛大等知名公司担任重要技术岗位从事核心产品研发。 2011 年创立七牛云,现仍然活跃在技术前沿领域。 近日,图灵社区对许式伟进行了专访,所采访的主要话题并不是他作为技术牛人的开发经历或是他作为创始人的奋斗史,而关于他在 2007 年创建的 ECUG 社区(全称为 Effective Cloud User Group ,曾用名是 Erlang Chin...阅读全文

求 x * 99 + y * 199 最接近 1159 的 x、y 的组合

求更好的实现方法,谢谢! 我这个写法实在是太烂了,求指点!谢谢! ###[点我直接改代码](https://wide.b3log.org/playground/5626f9847c10894f7cc15a3fccb5e186.go) ``` package main import ( "fmt" "sort" ) func main() { sum := 1159 res := make(map[int][]int) var fin []int for i := 0; i < 12; i++ { for j := 0; j < 6; j++ { tmp := sum - 99*i - 199*j if tmp > 0...阅读全文

ECUG社区发起人许式伟:对编程语言的选择无关阵营,关乎品味

许式伟,七牛云CEO,ECUG社区发起人,Go语言专家,著有国内第一本Go语言图书《Go语言编程》。有超过15年互联网从业经验,曾在金山、盛大等知名公司担任重要技术岗位从事核心产品研发。在金山任职期间,先以首席架构师身份主导了全新WPS Office 2005的架构设计和开发;之后创建金山实验室,以创始人和技术总监的身份主导了前沿的搜索和分布式存储相关技术的研究和开发。在盛大工作期间,任职资深研究员,负责盛大祥云计划的研究,随后发起了盛大网盘项目。2011年创立七牛云,现仍然活跃在技术前沿领域。 今天,我们采访的主要话题并不是老许作为技术牛人的开发经历或是他作为创始人的奋斗史,而是他在2007年创建的ECUG社区。ECUG的全称为Effective Cloud User Group,曾用名是...阅读全文

go json转换

确定类型变换1234567891011121314151617181920212223242526272829303132333435package mainimport ( "encoding/json" "fmt")type F struct { H string K int}type A struct { B string C int D map[string]int E []int F F}func main() { txt := `{"b":"hello word","c":1,"d":{"a":1,"b":2},"e":[2,3,4,5],"f":{"h":"a","k":1}}` var ab A json.Unmarshal([]byte(txt), &ab) fmt.Pri...阅读全文

golang初体验

这一周终于抽空读完了许式伟先生的《go语言编程》。由于对go并发的支持很感兴趣,很早之前就想学一学go语言,这次由于6.824的课程作业的需要,终于认真的学习了一下。 就这几天的学习而言,我觉得有c/c++和python基础的同学应该很容易就上手go。下面我就从几个方面对比一下这几门语言,看看go究竟有哪些优秀的特点。 ####基本类型 c作为一门有着悠久历史的语言,缺乏语言层面上对一些现在常用的高级数据结构的支持,而go却拥有python中常用的列表和字典,不过在go中,他们分别叫做数组切片和字典类型,用法上有一些不同,却都提供了需要的功能,这一点上,go比起c要自己手写数据结构要方便很多。但是,相比于python这种纯面向对象的设计,go还是保留了c中最为强大的指针。但是考虑到下面要提到...阅读全文

博文 2015-12-23 02:00:01 xiongbanban

Awesome go 增强

作为一个gopher,会经常查找golang已有的软件包,这个时候查看Github上的 [Awesome go](https://github.com/avelino/awesome-go) 中已经分门别类列出来的资源是经常的事。 但是,这个项目只是把github中的项目分类列出来而已,满足我的项目需求的包可能有很多个,我要从这些包中选择出最适合我的包,比如我的选择条件是: 1. star或者fork多,这说明gopher大众的认可程度高; 2. commits 或者 contributors 多,这说明项目的升级维护可能有保障; 3. 看license是不是支持商用,我首选Apache2.0,其次是MIT,其他的都得掂量掂量。 一个项目一个项目的点进去看这些数据,这种选择...阅读全文

golang中的xg作用

前面的文章里大概说过一些如何阅读xg的源代码的东西,但是后来由于太懒了,总是不想写一些很系统的东西,所以感觉还是把一些值得说的大概写一点,做个备忘。 事实上xg的通用的内容都被放在了src/cmd/gc里,而整个编译阶段最重要的东西就是go.y这个文件,因为这个是bison的语法定义文件。事实上go在编译阶段也只是将所有的内容按语法分析的结果放入NodeList这个数据结构里,然后export写成一个*.6(比如amd64的架构),这个.6的文件大概是这样子的: amd64 exports automatically generated from test.go in package "main" $$ // exports package main func "".main () var ...阅读全文

博文 2015-06-17 20:18:51 HopingWhite

浅解 go 语言的 interface

我写了一个 go interface 相关的代码转换为 C 代码的样例。也许有助于大家理解 go 的 interface。不过请注意一点,这里没有完整解析 go 语言 interface 的所有细节。 Go 代码: package main import "fmt" // ------------------------------------------------------------- type IReadWriter interface { Read(buf *byte, cb int) int Write(buf *byte, cb int) int } // ------------------------------------------------------------...阅读全文

博文 2015-06-17 23:00:26 xushiweizh

xstrings:Go 语言字符串库的补完

项目地址:https://github.com/huandu/xstrings xstrings 是一个很简单的 Go 语言库,简单说就是提供了一些标准库 strings 没提供但依然很有用的字符串算法。每个字符串算法都对效率进行了优化,所有函数都可以做到不超过 O(n) 的复杂度,并且尽量节省内存使用,仅在需要分配内存的时候分配。 现在实现的算法几乎都是其他语言(主要是 Python/Ruby/PHP/Perl)标准库里提供的算法,用 Go 重新实现一遍。未来也许我还会继续加入更多的方法,不过我不希望这个库成为一个算法大杂烩,因此仅仅会考虑那些特别有名且语言无关的函数。 Go 的 strings 操作字符串的时候都是以 rune 为单位进行,但 string 类型却只能以 byte 为单位...阅读全文

博文 2017-02-09 13:43:22 huandu

成都供卵试管选性别包成功

【188乀9876乀2565電/薇】供卵试管代孕包成功 一场遇见,倾注在最美的年华;一次倾心,缤纷了千年的等待;一回凝眸,唤醒了沉睡的记忆;一场离别,导演了亘古的悲伤。这一场遇见,你深情的双眸刺入我的心扉;这一次回眸,你灿烂的笑颜刻入我的骨髓。我是天空里的一片云,偶尔投影在你的波心,你不必讶异,更无须欢喜,在转瞬间消失了踪影。你给的温暖,几经周折,却没有命脉,渐渐冰凉…… 人生若只如初见,终成了不如相忘江湖的决绝。眼眸深处有着深深的忧伤,像是历经几世的沧桑。我终究只是你沿途的风景,而你的眼里如今谁是美丽的风景?那些甘愿沉沦千百次的守望,终因疼过,记住了回眸。你说,我不是你的过客,是你灵魂的邂逅,是你生命里刻骨铭心的印记。只是这段缘分太浅,但是情太深太真,最后还是有了薄凉,我离开了,却把心留在...阅读全文

博文 2019-07-26 14:11:59 qx521

一起探讨Go 语言为什么能成功?

一起探讨Go 语言为什么能成功?一起探讨Go 语言为什么能成功?常言道,历史不会重演,但总会惊人的相似。 如果您想创建一种编程语言,多向那些有经验的人士学习,他们有很多可取之处。在《Go Time》第100期节目中,两位Go语言的创造者Rob Pike和Robert Griesemer一起探讨了他们的经历。 以下是他们认为取得成功的5大原因。 正式的语言规范在讲述这个项目的起源时,Rob说:“我们经过六个多月的头脑风暴和思想成形之后,我们做的第一件重要的事情,就是花了几个星期写了一份正式的语言规范,我认为这是项目成功的关键部分。” 该规范引起了其他工程师的兴趣,比如Ian Lance Taylor。 还有最重要的事情之一是Ian Taylor看到了规范,并决定为它编写一个编译器。有一天他走进...阅读全文

博文 2019-12-04 18:33:29 wx5d6e70545a1d6