Go 项目配置文件的定义和读取

前言 我们在写应用时,基本都会用到配置文件,从各种 shell 到 nginx 等,都有自己的配置文件。虽然这没有太多难度,但是配置项一般相对比较繁杂,解析、校验也会比较麻烦。本文就给大家讲讲...

2022/05/09 09:25
1.6K
简单易懂的 Go 泛型使用和实现原理介绍

原文:A gentle introduction to generics in Go by Dominik Braun 万俊峰Kevin:我看了觉得文章非常简单易懂,就征求了作者同意,翻译出来给大家分享一下。 本文是对泛型的基本思想及其在 ...

2022/05/05 10:37
1W
Go单体服务开发最佳实践

单体最佳实践的由来 对于很多初创公司来说,业务的早期我们更应该关注于业务价值的交付,并且此时用户体量也很小,QPS 也非常低,我们应该使用更简单的技术架构来加速业务价值的交付,此时单...

通过 SingleFlight 模式学习 Go 并发编程

最近接触到微服务框架go-zero,翻看了整个框架代码,发现结构清晰、代码简洁,所以决定阅读源码学习下,本次阅读的源码位于core/syncx/singleflight.go。 在go-zero中SingleFlight的作用是:...

2022/04/25 09:17
2.7K
进程内优雅管理多个服务

前言 在 go-zero 社区里,经常会有同学问,把 API gateway 和 RPC service 放在同一个进程内可不可以?怎么弄?有时也会有同学把对外服务和消费队列放在一个进程内。咱们姑且不说此种用法合理...

2022/04/18 12:38
2.2K
带你十天轻松搞定 Go 微服务系列(四)

序言 我们通过一个系列文章跟大家详细展示一个 go-zero 微服务示例,整个系列分十篇文章,目录结构如下: 环境搭建 服务拆分 用户服务 产品服务(本文) 订单服务 支付服务 RPC 服务 Auth 验...

2022/01/20 11:29
2.7K
带你十天轻松搞定 Go 微服务系列(三)

序言 我们通过一个系列文章跟大家详细展示一个 go-zero 微服务示例,整个系列分十篇文章,目录结构如下: 环境搭建 服务拆分 用户服务(本文) 产品服务 订单服务 支付服务 RPC 服务 Auth 验...

带你十天轻松搞定 Go 微服务系列(二)

上篇文章开始,我们通过一个系列文章跟大家详细展示一个 go-zero 微服务示例,整个系列分十篇文章,目录结构如下: 环境搭建 服务拆分(本文) 用户服务 产品服务 订单服务 支付服务 RPC 服务...

2022/01/18 11:21
3.8K
带你十天轻松搞定 Go 微服务系列(一)

本文开始,我们会出一个系列文章跟大家详细展示一个 go-zero 微服务示例,整个系列分十篇文章,目录结构如下: 环境搭建(本文) 服务拆分 用户服务 产品服务 订单服务 支付服务 RPC 服务 Au...

Go 分布式令牌桶限流 + 兜底策略

上篇文章提到固定时间窗口限流无法处理突然请求洪峰情况,本文讲述的令牌桶线路算法则可以比较好的处理此场景。 工作原理 单位时间按照一定速率匀速的生产 token 放入桶内,直到达到桶容量上...

2022/01/12 12:18
4K
Go 中实现用户的每日限额(比如一天只能领三次福利)

如果你写一个 bug 管理系统,用了这个 PeriodLimit 你就可以限制每个测试人员每天只能给你提一个 bug。工作是不是就轻松很多了?:P 如今微服务架构大行其道本质原因是因为要降低系统的整体复...

Go 通过 Map/Filter/ForEach 等流式 API 高效处理数据

什么是流处理 如果有 java 使用经验的同学一定会对 java8 的 Stream 赞不绝口,极大的提高了们对于集合类型数据的处理能力。 int sum = widgets.stream() .filter(w -> w.getColor() == RED)...

2022/01/04 08:02
4.8K
最简单的服务响应时长优化方法,没有之一

序言 - From 万俊峰Kevin 我们能把服务做到平均延迟基本在30ms左右,其中非常大的一个前提是我们大量使用了 MapReduce 技术,让我们的服务即使调用很多个服务,很多时候也只取决于最慢的那一...

2021/12/29 10:34
3.9K
梦想总是要有的 - 工作20年程序员的2021年度总结

跌宕起伏的2021年快要过去了,今年对我来说经历的实在太多,提笔做个简单的总结吧。 回顾目标 去年的年终总结,我给自己立了两个flag。 第一个虽然不可量化,不是一个好的目标,但我认为完成...

2021/12/27 10:42
4.7K
微服务中的分布式事务实践

背景 随着业务的快速发展、业务复杂度越来越高,微服务作为最佳解决方案之一,它解耦服务,降低复杂度,增加可维护性的同时,也带来一部分新问题。 当我们需要跨服务保证数据一致性时,原先的...

2021/12/20 15:02
3.7K
用 Go + Redis 实现分布式锁

为什么需要分布式锁 用户下单 锁住 uid,防止重复下单。 库存扣减 锁住库存,防止超卖。 余额扣减 锁住账户,防止并发操作。 分布式系统中共享同一个资源时往往需要分布式锁来保证变更资源一...

详解布隆过滤器的原理和实现

为什么需要布隆过滤器 想象一下遇到下面的场景你会如何处理: 手机号是否重复注册 用户是否参与过某秒杀活动 伪造请求大量 id 查询不存在的记录,此时缓存未命中,如何避免缓存穿透 针对以上问...

2021/12/07 10:11
1.4W
一文讲透一致性哈希的原理和实现

为什么需要一致性哈希 首先介绍一下什么是哈希 Hash,一般翻译做散列,或音译为哈希,是把任意长度的输入(又叫做预映射pre-image)通过散列算法变换成固定长度的输出,该输出就是散列值。这...

2021/11/30 09:21
3.5K
微服务治理之自适应降载

为什么需要降载 微服务集群中,调用链路错综复杂,作为服务提供者需要有一种保护自己的机制,防止调用方无脑调用压垮自己,保证自身服务的高可用。 最常见的保护机制莫过于限流机制,使用限流...

go
2021/11/23 10:05
3.5K
一文讲透自适应熔断的原理和实现

为什么需要熔断 微服务集群中,每个应用基本都会依赖一定数量的外部服务。有可能随时都会遇到网络连接缓慢,超时,依赖服务过载,服务不可用的情况,在高并发场景下如果此时调用方不做任何处理...

go
2021/11/16 10:56
1.4W

没有更多内容

加载失败,请刷新页面