• Go语言爱好者周刊:第 5 期
    该提议建议在 Go2 中加入 ?Golang <-time.After()在计时器过期前不会被垃圾回收[9]。[12]make 针对的是 Go 的引用类型,即 chan、slice 和 map,而 new 针对的指针。[14]如果关注过 《Go语言中文网》公众号,应该知道答案吧。Go1.11 开始,官方提供了解决方案,这就是 Module。
  • Go语言爱好者周刊:第 5 期
    该提议建议在 Go2 中加入 ?Golang <-time.After()在计时器过期前不会被垃圾回收[9]。[12]make 针对的是 Go 的引用类型,即 chan、slice 和 map,而 new 针对的指针。[14]如果关注过 《Go语言中文网》公众号,应该知道答案吧。Go1.11 开始,官方提供了解决方案,这就是 Module。
  • 如何使用beego快速开发web系统【Golang 入门系列十三】
    介绍beego 是一个快速开发 Go 应用的 HTTP 框架,他可以用来快速开发 API、Web 及后端服务等各种应用,是一个 RESTful 的框架,同时也是一个关注度和使用量都比价高的开源项目。安装需要安装 Beego 和Bee的开发工具:$ go get github.com/astaxie/beego$ go get github.com/beego/bee 注意:beege和bee是两个概念。beego是框架,bee是工具,是命令。在安装Beego前,先确认是否将$GOPATH/bin写入GO环境中。
  • Golang实现单机百万长连接服务 - 美图的三年优化经验
    美图长连接服务简介随着科技的飞速发展,技术的日新月异,长连接的运用场景日益增多。美图长连接服务已经历时三年,在这三年的时间里,长连接服务经过了业务的检验,同时也经历了服务的重构,存储的升级等,长连接服务从之前支持单机二十几万连接到目前可以支撑单机百万连接。这些也是目前长连接服务面对的难题,在下文中我将会逐一介绍我们如何减少和解决问题的产生的具体实践。
  • golang微服务框架go-micro 入门笔记2.3 micro工具之消息接收和发布
    本章节阐述micro消息订阅和发布相关内容阅读本文前你可能需要进行如下知识储备golang分布式微服务框架go-micro 入门笔记1:搭建go-micro环境golang微服务框架go-micro 入门笔记2.1 micro工具之micro apigolang微服务框架go-micro 入门笔记2.2 micro工具之micro webbroker代理微服务之间需要通过broker来传递消息,go-micro支持http/nats/memory三种broker,其中http是默认的broker。同时,go-micro以强大的插件形式,提供如下几种常见的broker。
  • Golang实现单机百万长连接服务 - 美图的三年优化经验
    美图长连接服务简介随着科技的飞速发展,技术的日新月异,长连接的运用场景日益增多。美图长连接服务已经历时三年,在这三年的时间里,长连接服务经过了业务的检验,同时也经历了服务的重构,存储的升级等,长连接服务从之前支持单机二十几万连接到目前可以支撑单机百万连接。这些也是目前长连接服务面对的难题,在下文中我将会逐一介绍我们如何减少和解决问题的产生的具体实践。
  • Golang phantomjs 动态代理实现
    phantomjs 是个很优秀的软件,虽然现在被chrome headless 抢了风头,但在某些特定场合,使用phantomjs 还是很方便,这里是介绍使用Go 实现动态代理。下面是相关示例:。// IMPORTANT: Always make sure you close your pages!page.SetSettings 的优先级别最高,如果在 page.SetSettings 里设置,则使用其它两种方式设置不会生效。要动态设置phantomjs代理,要让 page.SetSettings 的Proxy 信息为空,使用page.SetProxy 或 phantomjs.SetProxy 来设置。
  • Golang http IPv4/IPv6 服务
    Golang 的网络服务,如果不指定IPv4 或 IPv6,如果VPS 同时支持 IPv4 和 IPv6,net.Listen() 只会监听 IPv6 地址。但这不影响客户端使用 IPv4 地址来访问。Proto Recv-Q Send-Q Local Address Foreign Address State. 如果觉得具体指定 IPv6地址太麻烦,可以重构 ListenAndServe 函数,会用到 net.Listen 函数, 可以在该函数里指定 network ,可选 tcp、tcp4、tcp6。"tcp", "tcp4" , "tcp6" , "udp", "udp4" , "udp6" , "ip", "ip4" , "ip6" , "unix", "unixgram" and "unixpacket". err = ListenAndServe // 重构 ListenAndServe 函数
  • Golang 实现单机百万长连接服务;软件架构万字漫谈;Python 中对象的内存使用
    点击链接或图片即可阅读喜欢请分享到朋友圈哦开发者头条Golang 实现单机百万长连接服务:美图的三年优化经验美图长连接服务历时三年,在内存优化上积累比较丰富的实践经验,本文将会介绍我们团队这些年在内存优化道路上做的一些尝试。(王鸿佳)更多「Golang」热门文章软件架构万字漫谈:业务架构、应用架构与云基础架构软件架构的核心价值,即是控制系统的复杂性,将核心业务逻辑和技术细节的分离与解耦。更多「架构」热门文章Python 中对象的内存使用(一)最近在了解 Python 语言中各种数据结构的使用的内存情况,写几篇文章和大家分享。
  • golang微服务框架go-micro 入门笔记2.4 service源码解读
    本章节阐述go-micro 服务发现原理go-micro架构下图来自go-micro官方阅读本文前你可能需要进行如下知识储备golang分布式微服务框架go-micro 入门笔记1:搭建go-micro环境,golang微服务框架go-micro 入门笔记2.1 micro工具之micro apigolang微服务框架go-micro 入门笔记2.2 micro工具之micro webgolang微服务框架go-micro 入门笔记2.3 micro工具之消息订阅和发布请进入公众号历史记录获取Service
  • TiDB 的 Golang 实践
    再后来发现 TiDB 也在做同样的事情,所以就加入了 TiDB。我今天主要讲 TiDB 从测试到优化。TiDB 可以认为是 SQL的引擎,可以发给存储,存储分两块,一个是 TiFlash,一个是TiKV,这就是我们的行存和列存。PD 是做数据调度的部分,大家可以看到,Go 用在除了存储外的所有组件,包括 PD、TiDB 、Binlog、还有周边的 k8s、薛定谔等。图3给大家讲一下 TiDB 的 SQL Layer 架构。图9我们来看一个例子,这是在 TiDB 里的一段代码。接下来讲讲PingCAP 的 Failpoint 怎么做。图12TiKV 是用 rust 写的,用 rust 写 Failpoint 很容易,因为Rust里面有宏,预编译阶段打开关闭 FailPoint 很方便。
  • Golang垃圾回收 屏障技术
    Golang中的垃圾回收主要应用三色标记法,GC过程和其他用户goroutine可并发运行,但需要一定时间的STW,STW的过程中,CPU不执行用户代码,全部用于垃圾回收,这个过程的影响很大,Golang进行了多次的迭代优化来解决这个问题。标记结束后,再次进行遍历,清除掉确认死亡的对象。在Golang中使用并发的垃圾回收,也就是多个赋值器与回收器并发执行,与此同时,应用屏障技术来保证回收器的正确性。
  • Go语言(golang)新发布的1.13中的Error Wrapping深度分析
    基于这个背景,Golang 1.13 为我们提供了Error Wrapping,翻译过来我更愿意叫Error嵌套。Wrapping Error原理按照这种不丢失原error的思路,那么Wrapping Error的实现原理应该类似我们上面的自定义error.我们看下fmt.Errorf函数的源代码验证下我们的猜测是否正确。Unwrap 函数Golang 1.13引入了wrapping error后,同时为errors包添加了3个工具函数,他们分别是Unwrap、Is和As,先来聊聊Unwrap。顾名思义,它的功能就是为了获得被嵌套的error。最终如果一个error不是warpping error,那么返回的是nil。
  • gnet: 轻量级且高性能的 Golang 网络库
    简介gnet是一个基于 Event-Loop 事件驱动的高性能和轻量级网络库。这个库直接使用epoll[1]和kqueue[2]系统调用而非标准 Golang 网络包:net[3]来构建网络应用,它的工作原理类似两个开源的网络库:libuv[4]和libevent[5]。gnet衍生自另一个项目:evio,但是性能更好。所以我最终选择了go-disruptor[9]:高性能消息分发队列 LMAX Disruptor 的 Golang 实现。自动扩容的 Ring-Buffergnet利用 Ring-Buffer 来缓存 TCP 流数据以及管理内存使用。
  • Golang : cobra 包解析
    Command 结构体是 cobra 抽象出来的核心概念,它的实例表示一个命令或者是一个命令的子命令。为根命令添加 help 子命令在执行 ExecuteC() 方法时,cobra 会为根命令添加一个 help 子命令,这个子命令主要用来提供子命令的帮助信息。help 子命令是通过 InitDefaultHelpCmd() 方法添加的,其实现代码如下:// InitDefaultHelpCmd adds default help command to c.// It is called automatically by executing the c or by calling help and usage.// If c already has help command or c has no subcommands, it will do nothing.func InitDefaultHelpCmd() { if !
  • GO vs PHP ,谁更适合创业公司的中台搭建?(文末赠书)
    前言在 4 月 27 日举办的 Gopher China 2019 中,来自花椒直播的周洋进行了题为《花椒直播关于创业公司中台的技术思考与实践》的演讲,以下为演讲实录。相信我也是近几年公开演讲中,力挺PHP做业务开发的gopher吧。这也是首次有国内大厂使用Golang在生产环境成功构建亿级在线场景。整体来说,早期的花椒业务以PHP为主。事实上无论是JAVA还是PHP,都是有一套成熟的系统在运行的。再来说大家关心的性能问题,很多同行认为使用Golang重构PHP项目,可以带来性能的提升。PHP大部分情况下只需要推送代码文件即可。
  • 2019 年,Golang 开始吊打 Java 性能了?
    点击链接或图片即可阅读喜欢请分享到朋友圈哦开发者头条2019 年,Golang 开始吊打 Java 性能了最近要同事 debug 性能,不经意间发现现在 Golang 性能开始吊打 Java 了!!!感觉 Go 发展神速!!更多「Golang」热门文章Go 语言反射的实现原理反射是 Go 语言比较重要的一个特性之一,虽然在大多数的应用和服务中并不常见,但是很多框架都依赖 Go 语言的反射机制实现一些动态的功能。更多「Golang」热门文章Golang map 底层实现在阅读 Go map 的实现代码时,最好先了解哈希表这种数据结构实现的算法思想,对理解 Go map 的实现会有帮助。更多「Golang」热门文章头条君邀请您加入开发者头条读者交流群微信号:toutiaoio007
活跃用户
《中国银行保险报》是中国银行保险监督管理委员会主管唯一工作日报。
专注于.NET Core的技术传播。在这里你可以谈微软.NET,Mono的跨平台开发技术。在这里可以让你的.NET项目有新的思路,不局限于微软的技术栈,横跨Windows,Linux 主流平台
这里有技术、算法、职场、感悟、面经、资源,一线大厂干货,10万 + 程序员都在看,做一个有趣的帮助程序员成长的公众号,每天早上8点20,第一时间与你相约。
《前端剑解》 —— 是由海之林技术团队维护的前端公众号,关注前端技能的发展;【前端面试每日3+1】 —— 365天,每天早上5点发布面试题(html, css, js, 软技能),以面试题来驱动学习,提倡每日学习与思考,每天进步一点!
号主是来自后厂村的十年资深架构师,技术leader,著有两本技术畅销书,多个业界顶级技术大会的特邀演讲嘉宾和出品人。除了分享技术干货,还关注程序员的技术生活、职场晋升、逆袭成长,助力10万+程序员崛起。
Flink/Spark/Hadoop/数仓开发,干货,面试,资料下载,源码解读等
《科技日报》是富有鲜明科技特色的综合性日报,是面向国内外公开发行的中央主流新闻媒体,是党和国家在科技领域的重要舆论前沿,是广大读者依靠科技创造财富、提升文明、刷新生活的服务平台,是中国科技界面向社会、连接世界的明亮窗口。
华为技术有限公司官方微信帐号
每天分享 Java技术栈 干货,路虽远,行则必至。
“早春江上雨初晴,杨柳丝丝夹岸莺。画舫烟波双桨急,小桥风浪一帆轻”,这是机器通过学习中华诗词然后以”早春“为题所写的一首诗。很多人非常恐惧AI的发展对人类的冲击,但我坚信AI会让世界变得更加美好,生活是美好的,所以我们一起,勇敢AI吧!
一个专注侃侃计算机视觉方向的公众号。计算机视觉、图像处理、机器学习、深度学习、C/C++、Python、诗和远方等。
程序员职业规划:职场晋升之路;探讨程序员转化转管理之路。程序员学习管理之道:团队管理、项目管理、管理工具的推荐和使用经验。
乔哥是百度java工程师,专注Java相关技术:Java面试、Spring全家桶、微服务、Mysql、集群、分布式、中间件、Linux、网络、多线程等,致力于Java全栈开发!
西安交大品牌讲座“学而讲坛”创始人和负责人,致力于打造一个跨界融合的学术共同体。北大文学博士,西安交大国家大学生文化素质教育基地副主任,人文学院高培中心主任,著有《陕西文化产业实战研究》、《视觉素养导论》、《艺术导论》、《读图范式》等。
专注于分享互联网技术文章。笔者待过BAT等一线互联网公司,文笔流畅,酷爱写作与编码,期待你的关注!