一周 Go World 新鲜事

01 技术分享之《Golang高级讲义》 我曾经做过外面做过两次python语言的分享,一次是python gil解密,另一次是 python 内存管理。 我个人很喜欢研究探索语言本身的一些底层实现,像golang也一样。 golang前后搞了有几年,但也都是断断续续的折腾,并不是所有公司都喜好golang。 记得2014年那会看过雨痕大神的golang学习笔记,很受感触,算是我对golang底层的第一次接触。随着golang知识的不断积累,慢慢也写了不少的文章。 但到现在为止,写过的golan...阅读全文

51CTO博客 2021-04-20 22:51:32 mob604756f0bbf4

ARM 64平台之上的Go工具链实现剖析

作者简介 肖 玮 2016年至今一直在 arm 开源软件部门担任主任工程师,领导 Golang 针对 arm64 架构的功能实现(enabling)和性能优化工作,同时也是 Golang 汇编器(asm)和编译器(compile)针对 arm64 架构改进的主要贡献者之一。在加入 arm 之前一直供职于 Intel 开发者工具事业部,长期从事针对 X86 架构的动态二进制翻译器(DBT)和编译器产品等相关工作。 目录 1.Toolchain 2.Compile 3.Asm 4.Link 5.Ot...阅读全文

51CTO博客 2021-04-20 22:49:56 mob604756f0bbf4

如何用Go开发一个区块链项目:ABTC

作者简介 强 科 臻 ABitchain 项目的CTO,先后工作在互联网金融,区块链领域。专注于后端技术研发工作,主要专注 Java/Go,尤其是在分布式微服务,高并发,消息通信,区块链共识机制,加密技术等有丰富经验。 目录 1.区块链简单介绍 2.如何开发区块链 3.区块链遇见Go 4.Q&A 1.区块链简单介绍 1.1 区块链特征 去中心化 可信任的机器,防篡改分布式数据库 通过密码学构建账户体系 共识,P2P 通信是交易基础 去中心化可以理解为在区块链网络中所有的网络节点都是对等的,没有任...阅读全文

51CTO博客 2021-04-20 22:47:27 mob604756f0bbf4

一周 Go World 新鲜事

01Go语言TCP/IP网络编程 乍一看,通过TCP/IP层连接两个进程会感觉可怕, 但是在Go语言中可能比你想象的要简单的多 很多情况下,使用更高级别的网络协议毫无疑问会更好,因为可以使用华丽的API, 它们隐藏了很多技术细节。现在根据不同的需求,有很多选择,比如消息队列协议, gRPC, protobuf, FlatBuffers, RESTful网站API, websocket等等。 然而在一些特殊的场景下,特别是小型项目,选择任何其他方式都会感觉太臃肿了,更不用说你需要引入额外的依赖包了...阅读全文

51CTO博客 2021-04-20 22:44:16 mob604756f0bbf4

基于 Go-Ethereum 构建 DPOS 机制下的区块链

作者简介 朱 崇 文 恺英网络区块链组技术经理 目录 Go 版本以太坊 为何选择DPOS机制 拓展共识改造实践 智能合约的实践 压力测试下暴露的问题 1. Go 版本以太坊 1.1 以太坊的客户端 首先是以太坊技术社区的一些客户端的实现。以太坊技术协议本身是协议,它包含了一些接口协议,规范或参数定义和内部具体的实现逻辑和流程等。基于这个技术协议,可以用各自语言实现一个以太坊节点。以太坊的官方团队使用Go 语言实现了官方版本。partiy 的实现是第二大的客户端。 1.2 以太坊的工具组 核心组件...阅读全文

51CTO博客 2021-04-20 22:43:12 mob604756f0bbf4

一周 Go World 新鲜事

01 gobox介绍 我和大家介绍下我们自主开发的go语言轻型框架gobox,今天这一期,我先从宏观上给大家说下。 目前它的项目地址为:https://github.com/goinbox 出自GoCN每日新闻(2018-04-27) 原文链接:http://blog.7rule.com/2018/04/27/gobox-intro.html 02 Golang的市场行情 在工作中 Golang 已是一份子,想让大家了解一下 Golang 的市场行情,也想让更多的人熟悉它。因此主要是展示数据分析...阅读全文

51CTO博客 2021-04-20 22:34:18 mob604756f0bbf4

Golang在阿里巴巴调度系统Sigma中的实践

作者简介 李 雨 前 花名叫鹰缘 系统软件事业部调度系统。 关键词 Golang 调度系统 Sigma,阿里巴巴自有的内容 实践交流 工程 1.取材 资源调度领域Sigma 主要思路是说资源调度领域的Sigma,共性的借鉴性的东西,阿里特有的就不讲,更多在Q&A里面。因为涉及到实践会聚焦工程的问题,所以我会讲一些架构设计与语言的选择,和并发模式下面任务粒度怎么样去选择,还有一些比较大型、综合的解决方案。 工程问题 所有的工程问题,突出背后的故事,有几个线索,第一个线索就是跟规模化相关,阿里的规模...阅读全文

51CTO博客 2021-04-20 22:37:50 mob604756f0bbf4

一周 Go World 新鲜事

01 consul集群搭建与Golang服务发现示例 传统单机应用动态性不强,不会频繁地更新和重新发布,也较少地进行自动伸缩。但随着互联网分布式系统的普及,服务与服务之间的伸缩性和可扩展性的要求也越来越大。为了满足服务的垂直和水平的扩张,以往一般使用预定义的端口配置服务,当新的服务需要上线或当期服务需要冗余扩展的时候,我们需要静态化地“注册”相关ip与端口信息到一个地方,再通过程序之间定时“更新”的方法去同步信息,但这种手段问题是非常多的,例如我们需要连接kafka的master的时候,如果服务...阅读全文

51CTO博客 2021-04-20 23:22:34 mob604756f0bbf4

方圆-罗辑思维Go语言微服务改造实践

作者简介 方 圆 曾在Cisco负责流媒体工作,在微博负责feed系统研发,三年游戏行业开发经验,现任罗辑思维首席架构师,主导罗辑思维微服务改造。 内容大纲 1、 改造的背景 2、改造的过程中的 Go 语言实践 3、经验总结 4、正在做什么 1.改造的背景 得到最早的APP就是一个单体的PHP的应用,就是图中最大的黄色块,中间蓝色块代表不同模块。下面的黄色部分代表passport 和支付系统,这个是在做得到之前就存在的系统,因为公司早期有微信里的电商业务。 后来发现有一些业务逻辑并不需要从得到走...阅读全文

51CTO博客 2021-04-20 22:33:09 mob604756f0bbf4

[go-linq]-Go的.NET LINQ式查询方法

go在进行集合操作时,有很不舒服的地方,起初我真的是无力吐槽,又苦于找不到一个好的第三方库,只能每次写着重复代码。群里寻求大神帮助,混迹各大论坛,博客寻找有效信息。终于在老夫的不懈努力下,发现了一个库。它就是go-linq,使用它,能够解决我对集合大部分的需求,让编程更顺手,让工作更强经劲。关于我我的博客|文章首发开发者的福音,go也支持linq了坑爹的集合go在进行集合操作时,有很不舒服的地方,起初我真的是无力吐槽,又苦于找不到一个好的第三方库,只能每次写着重复代码。举个栗子类 学生{ 姓名 ...阅读全文

51CTO博客 2021-04-20 21:25:08 mb607022e25a607

Go语言操作数据库及其常规操作

Go操作MySQL安装: go get -u github.com/go-sql-driver/mysqlGO语言的操作数据库的驱动原生支持连接池, 并且是并发安全的 标准库没有具体的实现 只是列出了一些需要的第三方库实现的具体内容//第一次连接MySQL成功 package main import ( "database/sql" _ "github.com/go-sql-driver/mysql" // _想当于init()初始化 "log" ) func main() { // root ...阅读全文

51CTO博客 2021-04-20 21:18:36 mb6066e2a67dd68

golang pprof 性能分析工具

性能优化是个永恒的话题,而很多时候我们在作性能优化的时候,往往基于代码上面的直觉,把所有能想到的优化都优化了一遍,不错过任何小的优化点,结果整个代码的逻辑变得极其复杂,而性能上面并没有太大的提升。事实上,性能问题往往集中在某些小点,有时候很小的改动就能有巨大的提升,所以问题的关键是是怎么去找出这些优化点,幸运的是 golang 在设计的时候就考虑了这个问题,原生提供了性能分析的工具,可以很方便地帮我们找到性能瓶颈 pprof 简介golang 的性能分析库在 runtime/pprof 里,主要...阅读全文

51CTO博客 2021-04-20 17:08:51 mob604756f0bbf4

Go 在 TiDB 的实践

嘉宾介绍 姚维,现PingCAP TiDB内核专家,曾就职于360基础架构部门、UC。 为什么我会加入PingCAP呢? 在360的时候,我负责Atlas的Sharding(切片技术)的实现。在这个过程中,我发现中间件这个数据库方案存在了诸多限制。比如说数据迁移的场景,当槽位需要在原有设定值的基础上再增加,整个操作过程需要人工介入而且极其复杂,同时也避免不了系统停机。比如说分布式事务,这在跨Sharding的节点上几乎不可能支持的。 为什么要做一个新的数据库? 关于数据库发展的历史,如图一所示在...阅读全文

51CTO博客 2021-04-20 16:54:21 mob604756f0bbf4

云计算后,Go的下一个战场-游戏产业

摘要:Go 自诞生以来,因其简单高效的处理效率和对于并发的出色支持,得到开发人员的关注和实践。并在 2013 年随着重磅项目 Docker 的诞生和发展,逐步在云计算领域形成燎原之势。在占领了云计算(包括容器、大数据、区块链都归类为云计算)后,Go 的下一个发力点将会在何方?在 12 月 16 日举办的 ECUG Con 十周年盛会上,七牛云 CEO 许式伟给出了他心中的答案:游戏行业。以下就是对他此次演讲的内容记录。 作为一个技术型 CEO,我认为技术人员都是很纯粹的,以数据为导向,理性判断趋...阅读全文

51CTO博客 2021-04-20 16:52:02 mob604756f0bbf4

Hello 中国,Go官网回归中国

和Andrew一起讨论和测试了很长时间,昨天终于公布了Go重新回归中国的官网,golang.google.cn上线了。我们目前还在测试下载和go get等解决方案。 大家好!今天我们非常高兴的告诉大家,日益壮大的中国 Go 语言开发者们现在可以通过 golang.google.cn 访问 golang.org 上的内容,获取官方文档、技术文件以及二进制文档。 Go 是一种开源编程语言,可以用于大规模开发简单,高效和可靠的软件。目前 Go 语言在中国已经被广泛使用。2015 年,首批 Go 语言设...阅读全文

51CTO博客 2021-04-20 16:49:40 mob604756f0bbf4

Go社区的2017回顾

今天是2017年的最后一天,首先感谢屏幕前的你,感谢一路来对于我们Go社区的支持,让我们Go中国社区成为国际上最活跃的社区,今天放假和大家一起回顾一下我们社区这一年来的发展。 首先我们看一下目前中国社区在国际上的地位: Rob Pike 特意在回顾Go十年的时候提到了我们中国社区,Go is huge in China. 那为什么Go在中国能得到那么快速的发展和推进呢?我们先来看看这一年来我们GoCN社区做的一切。 GopherChina 2017 今年我们在上海举办了一次规模巨大的大会,Dav...阅读全文

51CTO博客 2021-04-20 16:49:01 mob604756f0bbf4

Go在酷狗数据库中间件的应用

嘉宾介绍: 来自酷狗音乐/基础架构组。目前在酷狗主要负责数据库变更通知服务(数据迁移、同步、订阅)、消息队列、数据库中间件等工作,两年通讯设备开发经验,四年互联网经验,五年C/C++开发经验,一年Golang开发经验。(E-mail:liuyun827@foxmail.com) 本次分享主要围绕Go在数据库中间件应用这方面展开;首先会聊一下程序开发的需求,具体会参考Go的特性是否满足这些需求;接下来会介绍一下近期采用Go语言开发的mysql中间件这个项目,整体方案,分表路由、故障切换、平滑扩容,...阅读全文

51CTO博客 2021-04-20 16:41:31 mob604756f0bbf4

Go语言并不简单

Go 不是一种很简单的编程语言。尽管它的许多方面都很简单:语法很简单,大多数语义也很简单。然而,语言不仅仅是语法,我们希望利用它编写出实用的代码。利用 Go 编写有用的代码并不总是那么容易。事实证明,通过某种方式将一些简单的功能组合在一起,编写出有用的代码可能会非常棘手。在 Ruby 中,如何删除某个数组中的一项?list.delete_at(i)。如何通过值删除条目?list.delete(value)。非常简单!然而在 Go 中,事情可没有那么容易,为了删除索引 i,你需要执行以下操作:li...阅读全文

51CTO博客 2021-04-20 16:09:02 mb6066e504cce6f

go语言入门教程08 包

转载请注明来源"老男孩IT教育"来源网址:https://www.sholdboyedu.com/new/485.htmlgo语言中包(package)与java中的包(package)非常类似,都是组织代码的方式,而且都和磁盘上的目录结构存在对应关系。那么如何更好的运用go语言中的包以及包作用有哪些呢,下面就和上海老男孩IT教育一起来学习一下吧!包什么是包,为什么使用包?到目前为止,我们看到的 Go 程序都只有一个文件,文件里包含一个 main 函数和几个其他的函数。在实际中,这种把所有源代码...阅读全文

51CTO博客 2021-04-20 16:31:08 上海老男孩教育

go语言入门教程08 包

转载请注明来源"老男孩IT教育"来源网址:https://www.sholdboyedu.com/new/485.htmlgo语言中包(package)与java中的包(package)非常类似,都是组织代码的方式,而且都和磁盘上的目录结构存在对应关系。那么如何更好的运用go语言中的包以及包作用有哪些呢,下面就和上海老男孩IT教育一起来学习一下吧!包什么是包,为什么使用包?到目前为止,我们看到的 Go 程序都只有一个文件,文件里包含一个 main 函数和几个其他的函数。在实际中,这种把所有源代码...阅读全文

51CTO博客 2021-04-20 16:31:00 上海老男孩教育