说说你对go的认识

前言

读完本篇文章,你将可以用自己的语言讲一分钟左右以 go 为主题的单口相声

正文

一、初印象

快速了解 GO 语言 👇

  1. 谷歌开发
  2. 2009 年发布
  3. 静态强类型
  4. 编译型
  5. 如 Node.js 的【高并发 I/O】标签,Go 的标签可以是【高并发+高性能】
  6. 应用领域上看,Node.js 一般用于 【bff 层】,而 Go 写的项目一般用于【高并发、低延迟的服务】

二、【重点】国内一般拿 GO 做什么?

对比下 Java 和 Node.js

用 Java,是为了依赖其无与伦比的成熟【生态 】和【稳定性】来构建复杂可靠的企业级应用。

用 Node.js,是为了【快速开发 】、【前后端同构 】以及处理大量的 【I/O 密集型】实时连接

用 Go,是为了追求【性能 】、【并发 】和【部署效率 】,特别适合【云原生时代】的分布式系统

三、都说现在是云原生时代,那么什么是云原生?

云原生是一套构建和运行应用程序的方法论,它要求应用从诞生之初就基于云的环境(如微服务、容器、 DevOps、持续交付)来设计和开发,从而充分利用云平台的弹性【如经典的双 11 自动扩缩容】、分布式和自动化优势。

说人话就是:

云原生是一套"生在云上,长在云上"的软件设计哲学。

它不是简单地把传统软件搬到云服务器,而是从一开始就为云环境量身定制,充分利用云的计算力,让应用具备自动伸缩、故障自愈的超强能力。

上方的内容还是比较云里雾里,其实可以这样让自己心里对云原生有一个大致认识:

首先云原生是一套方法论,用这个方法做的项目(比如网站、比如 APP)如果用的人多了,它自动增加机器(比如服务器)扛住压力;人少了,自动减少机器(比如服务器)省钱。而且过程中基本不卡顿、不出错。

核心有三点:

能伸缩:自动应对流量高低。

不怕坏 :任何一台机器出问题(云原生这个方法论会提供解决方案解决这个问题),服务不停。

更新快:可以随时不停机发布新功能。

可以暂时这样粗略理解

四、Go 为什么适合云原生?

  1. 【性能好,高并发。】原生轻量级协程(goroutine)与高效调度器,能以极低资源开销处理海量并发连接,满足微服务间高频通信需求。
  2. 【部署简单】编译为单一静态二进制文件,无需依赖运行时环境。 把 Go 代码 go build 之后,会生成一个静态链接的可执行文件(Linux/Windows/macOS 上都是一个独立的二进制)。把这个二进制拷到一台裸机或者容器里,直接 ./app 就能启动。
  3. 与云原生基石(Docker/K8s)【同源】

总结

【问】说说你对 go 的认识?

【答】Go 语言是谷歌 09 年推出的一款主打【高并发】和【高性能】的【静态强类型】的【编译型】的语言。它天生就适合【云原生】时代,因为它【启动快】、【部署简单】,一个文件就能运行,特别能扛流量。像双十一这种秒杀场景,或者咱们用的哔哩哔哩、抖音这种高并发服务,背后很多都是用 Go 写的。

相关推荐
会飞的小蛮猪7 小时前
K8s-1.29.2二进制安装-第二章(K8s及ETCD下载及安装)
云原生·容器·kubernetes·etcd
Gold Steps.7 小时前
Alloy+Loki+Minio+Grafana云原生K8S日志收集方案
云原生·kubernetes·grafana
期待のcode11 小时前
MyBatisX插件
java·数据库·后端·mybatis·springboot
未来魔导14 小时前
go语言中json操作总结
数据分析·go·json
华仔啊14 小时前
这 10 个 MySQL 高级用法,让你的代码又快又好看
后端·mysql
码事漫谈14 小时前
国产时序数据库崛起:金仓凭什么在复杂场景中碾压InfluxDB
后端
上进小菜猪15 小时前
当时序数据不再“只是时间”:金仓数据库如何在复杂场景中拉开与 InfluxDB 的差距
后端
盖世英雄酱5813615 小时前
springboot 项目 从jdk 8 升级到jdk21 会面临哪些问题
java·后端
会飞的小蛮猪15 小时前
K8s-1.29.2二进制安装-第一章
云原生·容器·kubernetes
程序猿DD16 小时前
JUnit 5 中的 @ClassTemplate 实战指南
java·后端