首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
go-zero
万俊峰Kevin
创建于2021-05-11
订阅专栏
go-zero相关文章,微服务最佳实践
等 471 人订阅
共115篇文章
创建于2021-05-11
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
更简的并发代码,更强的并发控制
有没感觉 Go 的 sync 包不够用?有没遇到类型没有 sync/atomic 支持? 我们一起看看 go-zero 的 syncx 包对标准库的一些增值补充。
用 Go + WebSocket 快速实现一个 chat 服务
在 go-zero 开源之后,非常多的用户询问是否可以支持以及什么时候支持 websocket,终于在 v1.1.6 里面我们从框架层面让 websocket 的支持落地了,下面我们就以 chat 作为一个示例来讲解如何用 go-zero 来实现一个 websocket 服务。…
一文搞懂如何实现 Go 超时控制
Go 正常都是用来写后端服务的,一般一个请求是由多个串行或并行的子任务来完成的,每个子任务可能是另外的内部请求,那么当这个请求超时的时候,我们就需要快速返回,释放占用的资源,比如goroutine,文件描述符等。 为了简化本文,我们以一个请求函数 hardWork 为例,用来做…
分布式任务 + 消息队列框架 go-queue
beanstalkd 有一些特殊好用功能:支持任务priority、延时(delay)、超时重发(time-to-run)和预留(buried),能够很好的支持分布式的后台任务和定时任务处理。如下是 beanstalkd 基本部分: tube:任务队列,存储统一类型 job。p…
微服务复杂查询之缓存策略
在大型业务系统中,通过对持久层添加缓存,对于大多数单行记录查询,相信缓存能够帮持久层减轻很大的访问压力,但在实际业务中,数据读取不仅仅只是单行记录,面对大量多行记录的查询,这对持久层也会造成不小的访问压力,除此之外,像秒杀系统、选课系统这种高并发的场景,单纯靠持久层的缓存是不现…
还在用crontab? 分布式定时任务了解一下
本篇就先从 dq 开始,慢慢探究 go-queue 背后执行的逻辑。 dq 封装底层 beanstalkd 操作,分布式存储,延迟、定时设置。重启服务可以重新执行,但是消息不会丢失,因为消息的处理都交由 beanstalkd 完成。 可以看出使用非常简单,同时 dq 中使用了 …
使用Prometheus搞定微服务监控
最近对服务进行监控,而当前监控最流行的数据库就是 Prometheus,同时 go-zero 默认接入也是这款数据库。今天就对 go-zero 是如何接入 Prometheus ,以及开发者如何自己定义自己监控指标。 go-zero 框架中集成了基于 prometheus 的服…
缓存设计的好,服务基本不会倒
大家好,很高兴来到“GO开源说” 跟大家分享开源项目背后的一些故事、设计思想以及使用方法,今天分享的项目是 go-zero,一个集成了各种工程实践的 web 和 rpc 框架。我是Kevin,go-zero 作者,我的 github id 是 kevwan。 go-zero 虽…
Go开源说第四期:go-zero解读与最佳实践(上)
大家好,很高兴来到“GO开源说” 跟大家分享开源项目背后的一些故事、设计思想以及使用方法,今天分享的项目是 go-zero,一个集成了各种工程实践的 web 和 rpc 框架。我是Kevin,go-zero 作者,我的 github id 是 kevwan。 go-zero 虽…
微服务实践之分布式定时任务
承接上篇:上篇文章讲到改造 go-zero 生成的 app module 中的 gateway & RPC 。本篇讲讲如何接入 异步任务 以及 log的使用。 我们主要说一下dq,kq使用也一样的,只是依赖底层不同,如果没使用过beanstalkd,没接触过beans…
再见go-micro!企业项目迁移go-zero全攻略(二)
承接上篇:上篇文章讲到 go-zero 架构设计和项目设计。本篇文章接着这个项目设计,将生成的 app 模块 中 gateway 和 RPC 进行改造。废话不多说,让我们开始! 是的是的,这样处理就可以啦,这样只要有错误就会打印日志了,go-zero 已经把 trace-id …
再见go-micro!企业项目迁移go-zero全攻略(一)
最近发现 golang 社区里出了一个新兴的微服务框架。看了一下官方提供的工具真的很好用,只需要定义好 .api 文件模版代码都可以一键生成,只需要关心业务;同时 core 中的工具极大减少了开发成本。 最先接触go-zero是2020年10月国庆假期,说来也巧,看到有人在go…
windows下如何玩转火热的go-zero
查询很多资料都不说的,不清晰,总是报command not found: goctl错误。 环境变量也配置了,最后发现,所有网上博客都没有说,把 $GOPATH/bin,加入系统环境path变量。加入以后,重启电脑,就可以正常使用goctl工具。 接下来,就是体验goctl工具…
内置强大服务治理能力的web框架
go-zero中创建http服务非常简单,官方推荐使用goctl工具来生成。为了方便演示,这里通过手动创建服务,代码如下 rest框架中通过rest.WithJwt(secret)启用jwt鉴权,其中secret为服务器秘钥是不能泄露的,因为需要使用secret来算签名验证pa…
从代码到部署微服务实战(一)
当前微服务已经成为服务端开发的主流架构,而Go语言因其简单易学、内置高并发、快速编译、占用内存小等特点也越来越受到开发者的青睐,微服务实战系列文章将从实战的角度和大家一起学习微服务相关的知识。本系列文章将以一个“博客系统”由浅入深的和大家一起一步步搭建起一个完整的微服务系统 g…
🏆缓存原理与微服务缓存自动管理 | 🏆 技术专题第八期征文
上面提到了3种存储介质。我们都知道,三类的读写速度和成本成反比,所以我们在克服速度问题上需要引入一个 中间层。这个中间层,需要高速存取的速度,但是成本可接受。于是乎,Cache 被引入 CPU 里面的末级缓存,即 LLC。缓存内存中的数据 内存中的高速页缓存,即 page ca…
我用 go-zero 一周实现了一个中台系统,已开源!
中台的概念大概就是把一个一个的app 统一起来,反正我是这样理解的。 先聊用户服务吧,现在一个公司有很多的公众号,小程序,微信的,支付宝的,还有xxx xxx ,很多的平台,每次开发的时候,我们总是需要做用户登陆的服务,不停的复制代码,然后我们就在思考能不能有一套独立的用户服务…
我用go-zero开发了第一个线上项目
说在最前面,我是一个外表谦让,内心狂热,外表斯文,内心贪玩的一个普通人。我的职业是程序员,是一个golang语言爱好者,一半是因为golang好用,一半是因为其他语言学不好。我是从phper转为gopher的,写php的时候我认识了互联网软件,写go的时候感觉自己终于在编程…
微服务过载保护原理与实战
在微服务中由于服务间相互依赖很容易出现连锁故障,连锁故障可能是由于整个服务链路中的某一个服务出现故障,进而导致系统的其他部分也出现故障。例如某个服务的某个实例由于过载出现故障,导致其他实例负载升高,从而导致这些实例像多米诺骨牌一样一个个全部出现故障,这种连锁故障就是所谓的雪崩现…
最简单的 K8S 部署文件编写姿势,没有之一!
1. 头疼编写K8S部署文件? 2. 创建服务镜像 前一篇文章 讲解了如何快速创建自己的服务镜像,不过为了演示,这篇文章我们以 redis:6-alpine 镜像为例。 3. 完整K8S部署文件编写过程 4. 总结 goctl 工具极大简化了 K8S yaml 文件的编写,提供…
下一页