Go

关注
收录了Go频道下的 233 篇内容
  • 全部
  • 文章
  • 视频
  • 话题
  • 电子书
深入浅出 Go - sync.Map 源码分析
深入浅出 Go - sync.Map 源码分析

Go 的 map 在并发场景下,只读是线程安全的,读写则是线程不安全的。Go1.9 提供了并发安全的 sync.Map,通过阅读源码我们知道 snyc.Map 通过读写分离的机制,降低了锁的粒度,以此来提高并发性能

Java 微服务能像 Go 一样快吗?
Java 微服务能像 Go 一样快吗?

“Java 微服务能像 Go 一样快吗?”为此,我们创建了一系列微服务并进行了基准测试,本文将和大家分享我们的测试结果。

一例 Go 编译器代码优化 bug 定位和修复解析
一例 Go 编译器代码优化 bug 定位和修复解析

本文中介绍了 Go 编译器的整体编译流程脉络和一个编译优化错误导致数据越界访问的 bug,并分析了对这个 bug 的排查和修复过程。

go-zero 如何扛住流量冲击(一)

不管是在单体服务中还是在微服务中,开发者为前端提供的 API 接口都是有访问上限的,当访问频率或者并发量超过其承受范围时候,我们就必须考虑限流来保证接口的可用性或者降级可用性。即接口也需要安装上保险丝,以防止非预期的请求对系统压力过大而引起的系统

熔断原理与实现 Golang 版

在微服务中服务间依赖非常常见,比如评论服务依赖审核服务而审核服务又依赖反垃圾服务,当评论服务调用审核服务时,审核服务又调用反垃圾服务,而这时反垃圾服务超时了,由于审核服务依赖反垃圾服务,反垃圾服务超时导致审核服务逻辑一直等待,而这个时候评论

数据结构与算法系列之递归(GO)
数据结构与算法系列之递归(GO)

打破对递归的固有思维

Go 语言开源发布十一年,未来将重点支持Go模块和泛型
Go 语言开源发布十一年,未来将重点支持 Go 模块和泛型

Go 语言发布十一周年了。回想 Go 语言的十周年庆典已经恍如隔世,2020 年是艰难的一年,但我们一直在推动 Go 的发展,也带来了不少值得回忆的美好瞬间。

聊聊Go代码覆盖率技术与最佳实践
聊聊 Go 代码覆盖率技术与最佳实践

Go 代码覆盖率技术底层实现与最佳实践,内容有点干。

Dubbo-go Server 端开启服务过程

导读:随着微服务架构的流行,许多高性能 rpc 框架应运而生,由阿里开源的 dubbo 框架 go 语言版本的 dubbo-go 也成为了众多开发者不错的选择。本文将介绍 dubbo-go 框架的基本使用方法,以及从 export 调用链的角度进行 server 端源码导读,希望能引导读者进

Go发起HTTP2.0请求流程分析(后篇)——标头压缩
Go 发起 HTTP2.0 请求流程分析 (后篇)——标头压缩

在一个连接上,client 和 server 维护一个相同的 HPACK 索引列表,多个请求在发送和接收 Header 数据时可以分为两种情况

Go语言内存管理三部曲(三)图解GC算法和垃圾回收原理
Go 语言内存管理三部曲(三)图解 GC 算法和垃圾回收原理

白话 Go 语言的垃圾回收机制、图解 Go 语言 GC 的三色标记清楚算法。

Go发起HTTP2.0请求流程分析(中篇)——数据帧&流控制
Go 发起 HTTP2.0 请求流程分析 (中篇)——数据帧 & 流控制

本篇主要分为三个部分:数据帧,流控制器以及通过分析源码逐步了解流控制。 本有意将这三个部分拆成三篇文章,但它们之间又有联系,所以最后依旧决定放在一篇文章里面。由于内容较多,笔者认为分三次分别阅读三个部分较佳。

浅析 Golang 垃圾回收机制
浅析 Golang 垃圾回收机制

介绍 Golang 的垃圾回收机制

Go 语言内存管理三部曲(二)解密栈内存管理
Go 语言内存管理三部曲(二)解密栈内存管理

Go 应用程序运行时,每个 goroutine 都维护着一个自己的栈区,这个栈区只能自己使用不能被其他 goroutine 使用。栈区的初始大小是 2KB(比 x86_64 架构下线程的默认栈 2M 要小很多),在 goroutine 运行的时候栈区会按照需要增长和收缩

关于 GO 语言,这篇文章讲的很明白

摘要:本文从 Go 的语法,类型系统,编码风格,语言工具,编码工具和使用案例等几方面对 Go 语言进行了学习和探讨。

Go语言内存管理三部曲(一)内存分配原理
Go 语言内存管理三部曲(一)内存分配原理

现代高级编程语言管理内存的方式分为两种:自动和手动,像 C、C++ 等编程语言使用手动管理内存的方式,工程师编写代码过程中需要主动申请或者释放内存;而 PHP、Java 和 Go 等语言使用自动的内存管理系统,有内存分配器和垃圾收集器来代为分配和回收内存。

go-zero流数据处理利器
go-zero 流数据处理利器

流处理 (Stream processing) 是一种计算机编程范式,其允许给定一个数据序列 (流处理数据源),一系列数据操作 (函数) 被应用到流中的每个元素。同时流处理工具可以显著提高程序员的开发效率,允许他们编写有效、干净和简洁的代码。

如何使用gRPC、Ballerina和Go开发高效的微服务
如何使用 gRPC、Ballerina 和 Go 开发高效的微服务

在这篇文章里,我们将通过真实的微服务案例来研究 gRPC 的关键概念,了解将 gRPC 作为服务间通信的好处及其用法。

用go语言实现快排
用 go 语言实现快排

用 go 语言实现快排,用好名字表明算法思路。

程序员技术选型:写Go还是Java?
程序员技术选型:写 Go 还是 Java?

本文作者根据自己的使用体验,详细对比了 Go 和 Java 的使用差异,给了开发者们一个中肯的选用参考。

Go中的HTTP请求之——HTTP1.1请求流程分析
Go 中的 HTTP 请求之——HTTP1.1 请求流程分析

今天笔者站在 GoPher 的角度对 http1.1 的请求流程进行全面的分析。希望读者读完此文后, 能够有以下几个收获: 对 http1.1 的请求流程有一个大概的了解, 在平时的开发中能够更好地重用底层 TCP 连接, 对 http1.1 的线头阻塞能有一个更清楚的认识

Golang 反射性能优化

Golang 的反射最为人诟病的就是它极差的性能,接下来我们尝试使用各种不常见的方法,来优化它的性能。

[Go] 设置各种选项的最佳套路

在 Go 里面写一个 struct 时,经常会遇到要给 struct 里面的各个字段提供设置功能。这个问题看起来很简单很容易,实际上困扰了不少人,连 Go 的三巨头之一 Rob Pike 都曾经为之苦恼了一段时间,后来找到了最佳实践后还为此开心地写了一篇 Blog。

Golang领域模型-依赖倒置
Golang 领域模型 - 依赖倒置

毫不夸张的说,不理解《依赖倒置》的程序员只能写功能,没法写出框架来!

Golang领域模型-资源库
Golang 领域模型 - 资源库

作为领域模型中最重要的环节之一的 Repository,其通过对外暴露接口屏蔽了内部的复杂性,又有其隐式写时复制的巧妙代码设计,完美的将 DDD 中的 Repository 的概念与代码相结合!

Golang领域模型-实体
Golang 领域模型 - 实体

前言: 实体具有业务属性、业务逻辑和业务行为,是是实实在在的业务对象。在事件风暴中,我们可以根据命令、操作与事件将业务上紧密结合在一起的多个实体与值对象进行聚合形成聚合根。

Go 云原生应用实战系列(二)
Go 云原生应用实战系列(二)

本章节我将专注于开发第一个微服务系统,我们将学会如何用 go chassis 开发微服务并完成微服务之间的调用

What's new in Dubbo-go v1.5.1

近期我们发布了 Dubbo-go v1.5.1,虽然是 v1.5 的一个子版本,但相比于 v1.5.0, 社区还是投入了很大人力添加了如下重大改进。

Go云原生应用实战系列(一)
Go 云原生应用实战系列(一)

go chassis 是一个 go 语言微服务开发框架,专注于云原生应用的开发,我们主要的使用场景是云服务开发。我们将自己在云服务开发过程中沉淀的能力融入到了开发框架中,以帮助开发团队快速编写云原生应用。

    阿里智能化故障治理流程探索和实践
    阿里智能化故障治理流程探索和实践

    司宇 | 阿里巴巴 GOC-监控中心技术专家

    立即下载
    诗和远方:蚂蚁金服 Service Mesh 深度实践

    敖小剑 | 蚂蚁金服 高级技术专家

    立即下载
    基于事件和知识图谱技术的智能运维实践

    高科 | 睿象云 联合创始人兼 CEO

    立即下载