记录一次线上502排查过程

# 现象 article-go微服务有请求502,之前稀稀拉拉有少量的502(有同学排查过,未果),但是运维同学最近升级了ingress,502变多了。 ![img](https://imeipian.feishu.cn/space/api/box/stream/download/asynccode/?code=ZWRiOWUxZTVjMDgwOWZhMmJiMGQ5YTQzOWZmODEzM2VfQ290dG84bHNOUDA2NTZaM2VtWkVmSFRFVzg1cDFhcDd...阅读全文

Go语言中文网 2021-10-12 17:15:01 nanjingfm

golang —— 未来服务器端编程语言

# Golang知识体系 * 环境安装 * 知识归纳 * 电子书籍 * 精选文章 * 大佬视频 * 开源项目 * 学术论文 * 大会PPT * 云原生 # Golang 资料补给包(满血战斗) 包含文章,书籍,作者论文,理论分析,开源框架,云原生,大佬视频,大厂实战分享 ppt: [https://github.com/0voice/Introduction-to-Golang](https://github.com/0voice/Introduction-to-G...阅读全文

Go语言中文网 2021-10-12 16:15:13 hanaper

深度剖析分布式事务性能

随着微服务的大规模应用,跨微服务的分布式事务也越来越多,那么分布式事务的性能究竟怎么样?性能会下降多少?能否满足业务需求?这些指标关系到分布式事务能否顺利的引入到生产应用,是大家非常关心的问题。 本文尝试深入分析分布式事务带来的额外开销,应用中的哪些因素会影响最终的性能,瓶颈点在哪里,如何提升性能。本文以支持多语言的分布式事务管理器https://github.com/yedf/dtm的saga事务作为性能测试的样本,对性能测试的结果,进行深度剖析。 ## 测试环境 | 机型...阅读全文

Go语言中文网 2021-10-11 06:47:31 yedf

NFT交易平台定制开发|NFT交易平台项目搭建

NFT是数字世界中的一种“独特”z产,可以在现实世界中买√卖和使用来代表商√品,它定义了一种生态中不可分割的、具有唯一性的代必交互和流通的接口规范。 而NFT交Y平台是NFT的基础设施,类似于NFT领域的陶√宝,用户可以在NFT交Y平台贝勾买和出受加密艺术品、游戏道具、金r产品等各种NFT商√品。但是,无论是游戏、艺术作品的NFT交Y平台开√发,还是盲盒、卡牌类的NFT开√发,都需要专业技术成熟的团√队来进行开√发搭建,He~Fei艾数~区块链工页目开√发经验丰富,NFT交Y平台搭建,定制...阅读全文

Go语言中文网 2021-10-07 16:52:50 153o56o1oo3

Go 简单而强大的反向代理(Reverse Proxy)

在本文中,我们将了解反向代理,它的应用场景以及如何在 Golang 中实现它。 反向代理是位于 Web 服务器前面并将客户端(例如 Web 浏览器)的请求转发到 Web 服务器的服务器。它们让你可以控制来自客户端的请求和来自服务器的响应,然后我们可以利用这个特点,可以增加缓存、做一些提高网站的安全性措施等。 在我们深入了解有关反向代理之前,让我们快速看普通代理(也称为正向代理)和反向代理之间的区别。 在**正向代理**中,代理代表原始客户端从另一个网站检索数据。它位于客户端(浏...阅读全文

Go语言中文网 2021-10-06 11:36:19 h1z3y3

从 JavaScript 到 Go 语言的排序算法

在计算机科学中,排序的意思是获取一个数组,然后重新对他们进行排列,使他们遵循指定的顺序,例如按字母顺序对字符串进行排序、按最小到最大的顺序对数字进行排序,或按结构中的一个字段对结构数组进行排序。您可以使用它(排序)来提高算法的工作效率,或按特定顺序显示数据(例如时间上的从最近到最远)。 对于 Go 中的排序,标准库提供了 sort 包,有意思的是,它使用了 Go 接口来定义对数据进行排序的规则。如果您使用过 JavaScript 的 Array.prototype.sort 方法,(那么,...阅读全文

Go语言中文网 2021-10-06 11:07:13 gogeof

如何使用 Go 从 HTML 生成 PDF 报告

![](https://raw.githubusercontent.com/studygolang/gctt-images2/master/how-to-generate-a-pdf-report-from-html-with-go/1.jpg) 作为一名开发人员,我有时需要为我的应用程序创建 PDF 报告。完全通过编程来创建它们可能很麻烦,并且每个库都有些不同。最后,让事物看起来像设计师想要的那样可能具有挑战性。如果我们能在不花大量时间的情况下让它看起来像设计,那不是很好吗?设计师和前端...阅读全文

Go语言中文网 2021-10-06 10:51:12 lavaicer

作为一个Golang开发者学习Rust,非常容易把Rust的String 等价于 Golang中的string 这是个错误。

# 通过golang和rust代码对比快速学习rust(2)- 字符串 ## 1. 字符串类型定义 - Golang 中只有一个 string类型,对应字符串。 > string是所有8位字节的字符串的集合,通常但不一定代表UTF-8编码的文本。一个字符串可以是空的,但不能是零。字符串类型的值是不可改变的。 - Rust 中有三个类型 str ,&str ,String 来对应处理字符串。 > str类型,也被称为 "字符串片",是最原始的字符串类型。它通常以其借用的...阅读全文

Go语言中文网 2021-09-30 16:13:13 wandercn

详细看看Go 语言中的“错误与异常”,相关的函数如何使用(文章有点长)

[原文地址](https://printlove.cn/posts/gobasic/16-error/) ## 学到什么 1. 什么是错误? 2. 如何创建错误? 3. 如何处理错误? 4. `errors` 包的使用? 5. 什么是异常? 6. 如何处理异常? 7. `defer` 关键字的作用? 8. `recover` 函数的使用? ## 什么是错误 在写代码时,不是所有情况都能处理,对于不能处理的逻辑,就需要使用错误机制告诉上层调用者。 在 G...阅读全文

Go语言中文网 2021-09-29 13:42:11 miaogaolin

如何以及为什么在 Go 中编写枚举

一个**枚举**(enum,**enumerator** 的缩写),是一组命名的常量值。枚举是一个强大 的工具,让开发者可以创建复杂的常量集,而这些常量集有着有用的名称和简单且唯一的取值。 *在我们走远之前,我想提一下[我最近启动了 Go Mastery,一门动手的 Golang 课程](https://qvault.io/go-mastery-course/)。如果想要了解更多关于 Go 的信息,请尝试下该课程,现在让我们回到枚举上面。* ## 语法示例 在一个常量声明中,[...阅读全文

Go语言中文网 2021-09-28 00:15:55 dust347

如何在 Go 中组织项目结构

GCTT 译者注:在翻译这篇文章之前,我自己其实对 Bob 大叔的 Clean Architecture 也做过一些研究,在项目中实践之后,也确确实实体验到了分层的魅力。在层与层之间将依赖进行隔离,各个层只关注自己本身的逻辑,所以能让开发者只关注本层的业务逻辑,也更容易进行单元测试,无形中就提高了你代码的质量和可阅读性。我觉得如果你对自己的代码有追求,就一定要去学习一下 Clean Architecture。 当然另一方面,Clean Architecture 也不是银弹,在复杂的项目中确...阅读全文

Go语言中文网 2021-09-28 00:10:04 h1z3y3

深入剖析 Golang Pprof 标签

Polar Signals 提供的持续分析工具可以和任何格式的 pprof 分析适配,Go 深度集成了 [pprof](https://github.com/google/pprof) 甚至支持了它的`标签`特性。 然而,自从我们发布了我们的 [持续分析产品](https://www.polarsignals.com/blog/posts/2021/02/09/announcing-polar-signals-continuous-profiler/) 之后,收到了很多工程师的反馈,发现许...阅读全文

Go语言中文网 2021-09-27 23:58:39 h1z3y3

Go 服务中 HTTP 请求的生命周期

Go 语言对于编写 HTTP 服务来说是一个常见且非常合适的工具。这篇博文通过一个 Go 服务来探讨一个典型 HTTP 请求的路由,涉及路由,中间件以及比如并发之类的相关问题。 为了有具体的代码可以参考,让我们先从这段简单的服务代码开始(来自于 [https://gobyexample.com/http-servers](https://gobyexample.com/http-servers)) ```go package main import ( "fmt" "...阅读全文

Go语言中文网 2021-09-27 23:49:22 dust347

Go:用 kqueue 实现一个简单的 TCP Server

## 介绍 在 [非阻塞 I/O 超简明介绍](https://dev.to/frosnerd/explain-non-blocking-i-o-like-i-m-five-2a5f) 中,我们已经讨论过现代 Web 服务器可以处理大量并发请求,这得益于现代操作系统内核内置的事件通知机制。受 Linux epoll [ [文档](https://man7.org/linux/man-pages/man7/epoll.7.html) ]启发,FreeBSD 发明了 kqueue [ [论文]...阅读全文

Go语言中文网 2021-09-27 23:40:29 h1z3y3

WgcloudAgent.go:147: 主机监控信息上报server错误: Post "http://localhost:9999/wgcloud/agentGo/minTask": dial tcp [::1]:9999: connecte

WGCLOUD这个错误原因是,agent主机ping不通server主机的ip,或连不上server主机的9999端口导致的如果是连不上server的9999,可能是server主机防火墙没有开启9999端口,给其他主机访问​阅读全文

Go语言中文网 2021-09-26 11:00:45 tianshiyeben

Go:程序如何恢复(recover)?

![由 Renee French 创作的原始 Go Gopher 作品,为“ Go 的旅程”创建插图。](https://raw.githubusercontent.com/studygolang/gctt-images2/master/20201002-Go-How-Does-a-Program-Recover/1_4zRau44piN5HjUnTnJsMOw.png) 当程序无法适当处理错误时,比如无效的内存访问,Go 中的 panic 就会被触发。如果错误是意料之外,且没有其他方式处...阅读全文

Go语言中文网 2021-09-24 10:22:16 dust347