go-zero 正在参加 2020 年度 OSC 中国开源项目评选,请投票支持!
go-zero 在 2020 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
投票让它出道
已投票
go-zero 获得 2020 年度 OSC 中国开源项目评选「最佳人气项目」 !
go-zero 获得 2020 年度 OSC 中国开源项目评选「最佳人气项目」「最积极运营项目」 !
go-zero 获得 2020 年度 OSC 中国开源项目评选「最积极运营项目」 !

软件简介

go-zero是一个集成了各种工程实践的web和rpc框架。通过弹性设计保障了大并发服务端的稳定性,经受了充分的实战检验。

go-zero 包含极简的 API 定义和生成工具 goctl,可以根据定义的 api 文件一键生成 Go, iOS, Android, Kotlin, Dart, TypeScript, JavaScript 代码,并可直接运行。

使用go-zero的好处:

  • 轻松获得支撑千万日活服务的稳定性
  • 内建级联超时控制、限流、自适应熔断、自适应降载等微服务治理能力,无需配置和额外代码
  • 微服务治理中间件可无缝集成到其它现有框架使用
  • 极简的API描述,一键生成各端代码
  • 自动校验客户端请求参数合法性
  • 大量微服务治理和并发工具包

设计理念

对于微服务框架的设计,保障微服务稳定性的同时,也要特别注重研发效率。所以设计之初,就有如下一些准则:

  • 保持简单
  • 高可用
  • 高并发
  • 易扩展
  • 弹性设计,面向故障编程
  • 尽可能对业务开发友好,封装复杂度
  • 尽可能约束做一件事只有一种方式

项目实现和特点

  • 强大的工具支持,尽可能少的代码编写
  • 极简的接口
  • 完全兼容net/http
  • 支持中间件,方便扩展
  • 高性能
  • 面向故障编程,弹性设计
  • 内建服务发现、负载均衡
  • 内建限流、熔断、降载,且自动触发,自动恢复
  • API参数自动校验
  • 超时级联控制
  • 自动缓存控制
  • 链路跟踪、统计报警等
  • 高并发支撑,稳定保障了晓黑板疫情期间每天的流量洪峰

如下图,从多个层面保障了整体服务的高可用:

展开阅读全文

代码

的 Gitee 指数为
超过 的项目

评论 (30)

加载中
试试
01/19 21:54
回复
举报
准备用
2020/11/13 08:52
回复
举报
有就交流群嘛
2020/11/11 12:06
回复
举报
kevwan软件作者
有微信交流群
2020/11/11 18:57
回复
举报
姑且收藏了,有空看看源码设计
2020/11/10 21:34
回复
举报
打分: 力荐
没用过,不过带go的东西都支持。说不定哪天就用上了。
2020/11/05 17:04
回复
举报
api 写的咋样
2020/11/03 04:41
回复
举报
kevwan软件作者
极简😂
2020/11/03 08:15
回复
举报
Very good tool. easy to learn and use.
2020/10/31 09:33
回复
举报
很棒的工具
2020/10/30 16:22
回复
举报
打分: 力荐
试用了一下感觉很好,提高生产力
2020/10/30 09:42
回复
举报
打分: 力荐
听说不错,准备用
2020/10/29 14:30
回复
举报
更多评论
发表了资讯
03/29 08:56

go-zero 1.1.6 发布,web 和 rpc 框架

go-zero 1.1.5 发布了。go-zero 是一个集成了各种工程实践的 web 和 rpc 框架。通过弹性设计保障了大并发服务端的稳定性,经受了充分的实战检验。go-zero 包含极简的 API 定义和生成工具 goctl,可以根据定义的 API 文件一键生成 Go, iOS, Android, Kotlin, Dart, TypeScript, JavaScript 代码,并可直接运行。 本次更新内容包括: 框架: 支持 websocket, 示例见 https://github.com/zeromicro/zero-examples/tree/main/chat ...

1
6
发表了资讯
03/03 10:14

go-zero 1.1.5 发布,web 和 rpc 框架

go-zero 1.1.5 发布了。go-zero 是一个集成了各种工程实践的 web 和 rpc 框架。通过弹性设计保障了大并发服务端的稳定性,经受了充分的实战检验。go-zero 包含极简的 API 定义和生成工具 goctl,可以根据定义的 API 文件一键生成 Go, iOS, Android, Kotlin, Dart, TypeScript, JavaScript 代码,并可直接运行。 本次更新内容包括: 框架: 1. 可以通过 stat.DisableLog() 禁用 stat 日志 2. zrpc调用默认超时2秒,可以通过配置为...

1
4
发表了资讯
01/19 10:33

go-zero 1.1.4 发布,web 和 rpc 框架

go-zero 1.1.4 发布了。go-zero 是一个集成了各种工程实践的 web 和 rpc 框架。通过弹性设计保障了大并发服务端的稳定性,经受了充分的实战检验。go-zero 包含极简的 API 定义和生成工具 goctl,可以根据定义的 API 文件一键生成 Go, iOS, Android, Kotlin, Dart, TypeScript, JavaScript 代码,并可直接运行。 本次更新内容包括: 框架: 1. 滑动窗口算法优化 2. Windows上关闭进程的callback函数改进 goctl: 1. 全新的api解析...

0
4
发表于软件架构专区
01/06 07:13

go-zero 1.1.2 发布,web 和 rpc 框架

go-zero 1.1.2 发布了。go-zero 是一个集成了各种工程实践的 web 和 rpc 框架。通过弹性设计保障了大并发服务端的稳定性,经受了充分的实战检验。go-zero 包含极简的 API 定义和生成工具 goctl,可以根据定义的 API 文件一键生成 Go, iOS, Android, Kotlin, Dart, TypeScript, JavaScript 代码,并可直接运行。 本次更新内容包括: 创建 rest 服务时支持多个 RunOption 修复了一个 PeriodicalExecutor 中的 data race rest 中的...

0
6
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
发表了博客
2016/07/11 14:33

Zero Copy

运行在Linux平台上的JAVA程序,利用zero copy技术能够提升IO性能,通过zero copy可以避免缓冲区之间的数据拷贝。 大部分Web服务器都需要处理静态内容,处理方式为从磁盘文件读取数据,然后写到socket中。 (1)内核从磁盘文件读取数据到内核的内存空间; (2)内核将数据从内核的内存空间拷贝到应用程序的内存空间; (3)应用程序将数据从应用程序的内存空间拷贝到内核空间燃火传输给Socket; 使用了zero copy技术的应用程序的...

0
0
发表了博客
2013/08/17 15:28

/dev/zero

/dev/zero 维基百科,自由的百科全书 在类UNIX 操作系统中, /dev/zero 是一个特殊的文件,当你读它的时候,它会提供无限的空字符(NULL, ASCII NUL, 0x00)。其中的一个典型用法是用它提供的字符流来覆盖信息,另一个常见用法是产生一个特定大小的空白文件。BSD就是通过mmap把/dev/zero映射到虚地址空间实现共享内存的。可以使用mmap将/dev/zero映射到一个虚拟的内存空间,这个操作的效果等同于使用一段匿名的内存(没有和任何文件...

0
0
发表了博客
2020/09/22 10:54

go-zero之gozero+gorm

适合创业的golang微服务框架go-zero + 金光灿灿的gorm V2实践 为什么使用go-zero 可以有第三个选择 golang圈子不大,微服务框架框架屈指可数:除了go-micro、go-kit,几乎没有其他选择。go-zero为此提供第三个可能。 go-micro 对webapi支持并不友好,需要运行micro指令,难以定制 创业产品需要一款支持业务成长的框架 我们到底需要什么样的框架?我们需要一款可以支持业务成长的框架!产品运营初期,比如需求验证阶段,我们并不需要采取...

0
1
2019/01/11 17:03

Zero-copy

首先需要知道应用场景: 适用于静态资源从磁盘到网络的发送(中间不对资源进行改变),这在web server提供的功能中很常见,一个例子是:保存在磁盘上的一张图片应某个网络请求被从磁盘中取出并通过socket发送至请求方。 Linux系统分为user space和kernel space,user space中的很多操作需要通过系统调用陷入到内核中操作,比如文件读取操作。程序员通过某种编程语言提供的编程接口进行文件读取操作,比如C中的read,这个C语言的...

0
0
发表于软件架构专区
2014/04/03 16:16

zero copy

www.ibm.com/developerworks/cn/linux/l-cn-zerocopy1/ www.ibm.com/developerworks/cn/linux/l-cn-zerocopy2/

0
0
发表了博客
2020/04/24 19:16

.new_zero()

next(self.parameters()).new_zeros(4,100):按照自己的意愿创建一个变量,但是您需要在这种情况下指定数据类型。通过new,我们构造了一个数据类型相同的新张量(作为第一个参数)。 承接Matlab、Python和C++的编程,机器学习、计算机视觉的理论实现及辅导,本科和硕士的均可,咸鱼交易,专业回答请走知乎,详谈请联系QQ号757160542,非诚勿扰。 本文同步分享在 博客“于小勇”(CSDN)。 如有侵权,请联系 support@oschina.cn 删...

0
0
发表了博客
2013/09/05 10:33

Flush-to-zero mode

http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0473c/CIHGAHAE.html Some implementations of VFP use support code to handle denormalized numbers. The performance of such systems, in calculations involving denormalized numbers, is much less than it is in normal calculations. Flush-to-zero mode replaces denormalized numbers with 0. This does not comply with IEEE 754 arithmetic, but ...

0
0
2020/11/19 14:58

go-zero之web框架

  go-zero 是一个集成了各种工程实践的 web 和 rpc 框架,其中rest是web框架模块,基于Go语言原生的http包进行构建,是一个轻量的,高性能的,功能完整的,简单易用的web框架   服务创建   go-zero中创建http服务非常简单,官方推荐使用goctl工具来生成。为了方便演示,这里通过手动创建服务,代码如下   package main   import (   "log"   "net/http"   "github.com/tal-tech/go-zero/core/logx"   "github...

1
1
发表了博客
2018/02/10 22:23

AspNet Zero Core

解决AspNet Zero Core 5.0.1无法运行的问题   最近在研究AspNet Zero Core 5.0.1时发现VS点击调试后就自动退出了,从ABP QQ群里得知作者加入了licensecode校验。经过一个周左右断断续续的折腾,算是破解了吧。原本想把加密类完全反编译出来,后来发现有些方法反编译不过来,所以有些方法就直接注释掉实现了(关键方法未能反编译,比较遗憾)。 声明:本文仅供学习研究使用,若项目使用请购买正版授权   一、说明   二、运行...

0
0
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
暂无内容
30 评论
2.3K 收藏
分享
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部