前言
读完本篇文章,你将可以用自己的语言讲一分钟左右以 go 为主题的单口相声
正文
一、初印象
快速了解 GO 语言 👇
- 谷歌开发
- 2009 年发布
- 静态强类型
- 编译型
- 如 Node.js 的【高并发 I/O】标签,Go 的标签可以是【高并发+高性能】
- 应用领域上看,Node.js 一般用于 【bff 层】,而 Go 写的项目一般用于【高并发、低延迟的服务】
二、【重点】国内一般拿 GO 做什么?
对比下 Java 和 Node.js
用 Java,是为了依赖其无与伦比的成熟【生态 】和【稳定性】来构建复杂可靠的企业级应用。
用 Node.js,是为了【快速开发 】、【前后端同构 】以及处理大量的 【I/O 密集型】实时连接
用 Go,是为了追求【性能 】、【并发 】和【部署效率 】,特别适合【云原生时代】的分布式系统
三、都说现在是云原生时代,那么什么是云原生?
云原生是一套构建和运行应用程序的方法论,它要求应用从诞生之初就基于云的环境(如微服务、容器、 DevOps、持续交付)来设计和开发,从而充分利用云平台的弹性【如经典的双 11 自动扩缩容】、分布式和自动化优势。
说人话就是:
云原生是一套"生在云上,长在云上"的软件设计哲学。
它不是简单地把传统软件搬到云服务器,而是从一开始就为云环境量身定制,充分利用云的计算力,让应用具备自动伸缩、故障自愈的超强能力。
上方的内容还是比较云里雾里,其实可以这样让自己心里对云原生有一个大致认识:
首先云原生是一套方法论,用这个方法做的项目(比如网站、比如 APP)如果用的人多了,它自动增加机器(比如服务器)扛住压力;人少了,自动减少机器(比如服务器)省钱。而且过程中基本不卡顿、不出错。
核心有三点:
能伸缩:自动应对流量高低。
不怕坏 :任何一台机器出问题(云原生这个方法论会提供解决方案解决这个问题),服务不停。
更新快:可以随时不停机发布新功能。
可以暂时这样粗略理解
四、Go 为什么适合云原生?
- 【性能好,高并发。】原生轻量级协程(goroutine)与高效调度器,能以极低资源开销处理海量并发连接,满足微服务间高频通信需求。
- 【部署简单】编译为单一静态二进制文件,无需依赖运行时环境。 把 Go 代码 go build 之后,会生成一个静态链接的可执行文件(Linux/Windows/macOS 上都是一个独立的二进制)。把这个二进制拷到一台裸机或者容器里,直接 ./app 就能启动。
- 与云原生基石(Docker/K8s)【同源】
总结
【问】说说你对 go 的认识?
【答】Go 语言是谷歌 09 年推出的一款主打【高并发】和【高性能】的【静态强类型】的【编译型】的语言。它天生就适合【云原生】时代,因为它【启动快】、【部署简单】,一个文件就能运行,特别能扛流量。像双十一这种秒杀场景,或者咱们用的哔哩哔哩、抖音这种高并发服务,背后很多都是用 Go 写的。