go-zero 实战之 blog 系统

go-zero 实战项目:blog 本文以 blog 的网站后台为例,着重介绍一下如何使用 go-zero 开发 blog 的用户模块。 本文涉及的所有资料都已上传 github 仓库 kougazhang/go-zero-demo,感兴趣的同...

你了解微服务的超时传递吗?

为什么需要超时控制? 很多连锁故障的场景下的一个常见问题是服务器正在消耗大量资源处理那些早已经超过客户端截止时间的请求,这样的结果是,服务器消耗大量资源没有做任何有价值的工作,回...

2021/10/18 10:52
3.4K
多图详解万星 Restful 框架原理与实现

rest框架概览 我们先通过 go-zero 自带的命令行工具 goctl 来生成一个 api service,其 main 函数如下: func main() { flag.Parse() var c config.Config conf.MustLoad(*configFile, &c) ...

go
2021/10/11 07:45
4K
定制个机器人帮你和Ta聊天

自动聊天示例 这是基于200万聊天记录训练出来的,你可以用自己和女朋友的记录训练了试试效果 :P 至于微信机器人怎么用,你可以 GitHub 搜搜看哈 聊天1: user: 在吗? bot: 在 user: 在干嘛呢...

高可用延迟队列设计与实现

延迟队列:一种带有 延迟功能 的消息队列 延时 → 未来一个不确定的时间 mq → 消费行为具有顺序性 这样解释,整个设计就清楚了。你的目的是 延时,承载容器是 mq。 背景 列举一下我日常业务...

服务注册与发现的原理和实现

什么是服务注册发现? 对于搞微服务的同学来说,服务注册、服务发现的概念应该不会太陌生。 简单来说,当服务A需要依赖服务B时,我们就需要告诉服务A,哪里可以调用到服务B,这就是服务注册发...

自适应负载均衡算法原理与实现

背景 在选择负载均衡算法时,我们希望满足以下要求: 具备分区和机房调度亲和性 每次选择的节点尽量是负载最低的 每次尽可能选择响应最快的节点 无需人工干预故障节点 当一个节点有故障时,负...

2021/08/18 11:33
4.1K
一文搞懂一致性hash的原理和实现

一致性hash 在 go-zero 的分布式缓存系统分享里,Kevin 重点讲到过一致性hash的原理和分布式缓存中的实践。本文来详细讲讲一致性hash的原理和在 go-zero 中的实现。 以存储为例,在整个微服务...

2021/07/20 10:55
2W
听说过对 Go map 做 GC 吗?

在 Golang 中的 map 结构,在删除键值对的时候,并不会真正的删除,而是标记。那么随着键值对越来越多,会不会造成大量内存浪费? 首先答案是会的,很有可能导致 OOM,而且针对这个还有一个讨...

一文讲懂服务的优雅重启和更新

在服务端程序更新或重启时,如果我们直接 kill -9 杀掉旧进程并启动新进程,会有以下几个问题: 旧的请求未处理完,如果服务端进程直接退出,会造成客户端链接中断(收到 RST) 新请求打过来...

自适应微服务治理背后的算法

前言 go-zero 群里经常有同学问: > 服务监控是通过什么算法实现的? > > 滑动窗口是怎么工作的?能否讲讲这块的原理? > > 熔断算法是怎么设计的?为啥没有半开半闭状态呢? 本篇文章,来分...

go
2021/06/01 07:52
4.8K
通用连接池帮你解决资源管理难题

前言 群里老有同学问,go-zero 的 数据库 和 redis 库是否有连接池支持。先说结论:有的,可以放心大胆用! 从框架设计来说,对于数据库连接这种资源当然是尽可能减少频繁操作: 为业务减负 ...

go
2021/05/26 08:26
2.1K
懂得取舍才是缓存设计的真谛

Previously 前两篇文章(缓存稳定性 和 缓存正确性)跟大家讨论了缓存的『稳定性』和『正确性』,缓存常见问题还剩下『可观测性』和『规范落地&工具建设』 稳定性 正确性 可观测性 规范落地和...

go
2021/05/24 09:00
1.9W
进程内缓存助你提高并发能力!

前言 缓存,设计的初衷是为了减少繁重的IO操作,增加系统并发能力。不管是 CPU多级缓存,page cache,还是我们业务中熟悉的 redis 缓存,本质都是将有限的热点数据存储在一个存取更快的存储介...

go
2021/05/19 08:32
4.4K
缓存数据一致性 - 架构师峰会演讲实录

Previously 缓存系统涉及的问题和知识点是比较多的,我主要分为以下几个方面来跟大家探讨: 稳定性 正确性 可观测性 规范落地和工具建设 上篇 我们分析了缓存系统的稳定性,介绍了 go-zero ...

go
2021/05/17 08:51
6.3K
如何让消息队列达到最大吞吐量?

你在使用消息队列的时候关注过吞吐量吗? 思考过吞吐量的影响因素吗? 考虑过怎么提高吗? 总结过最佳实践吗? 本文带你一起探讨下消息队列消费端高吞吐的 Go 框架实现。Let’s go! 关于吞吐...

go
2021/05/13 08:01
1W
缓存系统稳定性 - 架构师峰会演讲实录

前言 大家好!我是万俊峰,go-zero 作者。感谢 ArchSummit 提供这么好的机会来跟大家分享一下go-zero的缓存最佳实践。 首先,大家可以想一想:我们在流量激增的情况下,服务端哪个部分最有可...

go
2021/05/10 10:48
4.4K
一文带你理解最简消息队列实现

最近在看公司的 redis queue 时,发现底层使用的是 go-zero 的 queue 。本篇文章来看看 queue 的设计,也希望可以从里面了解到 mq 的最小型设计实践。 使用 结合其他 mq 的使用经历,基本的使...

go
2021/05/07 10:09
4.7K
一文带你更方便的控制 goroutine

上一篇我们讲了 go-zero 中的并发工具包 core/syncx。 从整体分析来看,并发组件主要通过 channel + mutex 控制程序中协程之间沟通。 Do not communicate by sharing memory; instead, share...

更简的并发代码,更强的并发控制

有没感觉 Go 的 sync 包不够用?有没遇到类型没有 sync/atomic 支持? 我们一起看看 go-zero 的 syncx 包对标准库的一些增值补充。 https://github.com/tal-tech/go-zero/tree/master/core/s...

2021/04/12 09:31
3.6K

没有更多内容

加载失败,请刷新页面