searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

go-zero框架简介

2023-12-25 01:26:13
11
0

背景

微服务旨在将复杂的项目进行拆分,明确各服务之间的边界,实现服务内部高内聚,服务间低耦合

为什么要使用微服务?

1.降低开发难度,有利于大团队的分工,细化模块开发,开发人员能够更专注于业务模块优化

2.独立部署,服务间依赖降低,服务部署更为简单

3.提高容错和容灾能力,微服务之间独立,能够最大程度降低服务故障的连环影响

简介

在go语言的发展历程中涌现出了许多的微服务框架,而go-zero就是其中脱颖而出的一位选手。

go-zero是一个集成了各种工程实践的web和rpc框架,通过弹性设计保障了大并发服务端的稳定性,并广泛应用于各大企业的业务使用。

go-zero拥有以下优点:

1.适用支撑高并发的后端服务

2.具备微服务治理能力,无需配置和额外代码

3.微服务治理中间件可无缝集成到其他框架中使用

4.极简API,一键生成代码

5.大量的开源工具包

优缺点

一到五星

框架 基本概况 组件依赖程度(少为佳) API支持力度(大为佳)
go-micro 元老级 ★★★★★ ★★★
go-kit 元老级 ★★★★★ ★★
tars-go 腾讯开源,依托于基于c++的tars框架 ★★ ★★★★
dubbo-go 阿里开源,依托于基于java的dubbo框架 ★★ ★★★★
go-kratos b站开源,轻量级 ★★★★ ★★★★★
go-zero 最新力作,社区不断更新 ★★★★★ ★★★★★

 

依赖

1.goctl,go-zero框架的基础工具,用于生成模板框架和代码

2.protoc,web框架必备,proto文件的编译器

 

组件

相比于传统框架,go-zero集成了很多实用的组件,例如

1.并发利器

mr: mapReduce强于sync.WaitGroup,容错高

fx: 流处理和函数并发

2.服务编排

ServiceGroup

3.groutines编程

RoutineGroup

GoSafe

RunSafe

TaskRunner

WorkerGroup

4.通讯

gRPC

http

gRPC Gateway

http client

5.存储

MySQL

PosgreSQL

Monggo

Redis

6.消息队列

kafka

7.延时队列

beanstalk

8.服务注册与发现

内置Etcd

支持k8s

9.服务治理

内置令牌桶、计数限流器

内置熔断器

内置负载均衡组件

超时控制

10.数据监控

指标采集上报

链路追踪

11.工具

goctl脚手架

 

0条评论
0 / 1000
docker整点薯条
4文章数
0粉丝数
docker整点薯条
4 文章 | 0 粉丝