一周 Go World 新鲜事[Asta 优选]

mob604756f0bbf4 · · 1061 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

百万在线的美拍直播弹幕系统如何实现
直播弹幕指直播间的用户,礼物,评论,点赞等消息,是直播间交互的重要手段。美拍直播弹幕系统从 2015 年 11 月到现在,经过了三个阶段的演进,目前能支撑百万用户同时在线,这期间的发展比较好地诠释了根据项目阶段进行平衡演进的过程。这三个阶段分别是快速上线,高可用保障体系建设,长连接演进。本文是作者对构建弹幕系统的经验总结。

在公众号中回复(非评论)关键词“ 弹幕系统 ”即可阅读原帖

gops - Go语言程序查看和诊断工具
想必 Java 的开发者没有不知道或者没用过 jps 这个命令的,这个命令是用来在主机上查看有哪些 Java 程序在运行的。

一周 Go World 新鲜事[Asta 优选]

作者刚用 Go 语言程序的时候也很苦恼:部署在公司服务器上的 Go 程序,其他的同事由于不清楚就经常找不到。

那么 Go 语言有没有像 jps 这样的工具呢?当然有,不仅有,而且还是 Google 自己出品的,官方认证(这种问题 Google 不可能自己想不到啊)。名称也跟 jps 很像,叫 gops。

在公众号中回复(非评论)关键词“ gops ”即可阅读全文

结合 Go 读 APUE-基本文件I/O
每个语言基本都有对应的函数或方法,直接调用就行,在这种情况下可以理解成 -> 语言就是个工具。作者比较偏向 Go 的风格,所以本文中选择以 Go 的函数库为例,但在介绍其之前,要明白一个概念:文件描述符——

  • 对于内核而言, 所有打开的文件都通过文件描述符引用。文件描述符是一个非负整数。

如果对上面的描述还是有点模糊呢?——

  • 当打开一个现有文件或创建一个新的文件时,内核向进程返回一个 文件描述符。

  • 当读、写一个文件时,使用 open 或 create 返回的 文件描述符 标识该文件,将 文件描述符 作为参数传递给 read 或 write。

  • 通常用变量 fd 来表示文件描述符 (file descripter)

在公众号中回复(非评论)关键词“ APUE ”即可阅读全文

Channel 的行為(译)
当作者第一次开始使用 Go 的 channel 来工作时,误把 channel 作为一个资料结构,同时又接受了 channel 作为 queue 来使用,提供 goroutine 之間的自動同步存取。這種結構的理解使作者寫了很多不好而且複雜的 concurrent 程式碼。

经过不斷的學習,作者不再关注如何結構化 channel,而是專注在它們的行為。所以現在回到 channel 思考一件事情:信號。经过一個 channel 允許一個 goroutine 對於一個特定的事件去通知另一個 goroutine。信號在你的 channel 中應該是一切核心。將 channel 作為一個信號機制的思考將讓你撰寫更良好的程式碼,並具有明確定義和更精確的行為。

要了解信號的工作原理,必須了解它的三個屬性:

  • 交付保證(Guarantee Of Delivery)

  • 狀態(State)

  • 有無資料(With or Without Data)

這三個屬性共同圍繞在建立一個設計信號的原理。之後我會討論這些屬性,我將提供一些程式碼範例來示範信號與這些屬性的應用。

在公众号中回复(非评论)关键词“ 信号 ”即可阅读全文

理解go的反射机制reflection
不同语言的反射模式是不同的。本文中将讲解反射实现的前提、如何从接口变量中获取value和type信息、如何从Value中获取接口信息,以及如何通过reflect.Value设置实际变量的值和收到reflect.Value变量后如何获取信息。

在公众号中回复(非评论)关键词“ reflection ”即可阅读全文

开源项目

目前功能最丰富性能最好的路由器

在公众号中回复(非评论)关键词“ 路由器 ”即可阅读全文
基于 event-loop 的网络库

在公众号中回复(非评论)关键词“ evio ”即可阅读全文

今日鸡汤

吴恩达:你所下过的那些笨功夫,才是你的核心竞争力

点击“阅读原文”即可查看


有疑问加站长微信联系(非本文作者)

本文来自:51CTO博客

感谢作者:mob604756f0bbf4

查看原文:一周 Go World 新鲜事[Asta 优选]

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

1061 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传