文章 2024-08-27 来自:开发者社区

go-zero微服务实战系列(八、如何处理每秒上万次的下单请求)

在前几篇的文章中,我们花了很大的篇幅介绍如何利用缓存优化系统的读性能,究其原因在于我们的产品大多是一个读多写少的场景,尤其是在产品的初期,可能多数的用户只是过来查看商品,真正下单的用户非常少。但随着业务的发展,我们就会遇到一些高并发写请求的场景,秒杀抢购就是最典型的高并发写场景。在秒杀抢购开始后用户就会疯狂的刷新页面让自己尽早的看到商品,所以秒杀场景同时也是高并发读场景。那么应对高并发读写场景我....

go-zero微服务实战系列(八、如何处理每秒上万次的下单请求)
文章 2024-08-27 来自:开发者社区

go-zero微服务实战系列(七、请求量这么高该如何优化)

前两篇文章我们介绍了缓存使用的各种最佳实践,首先介绍了缓存使用的基本姿势,分别是如何利用go-zero自动生成的缓存和逻辑代码中缓存代码如何写,接着讲解了在面对缓存的穿透、击穿、雪崩等常见问题时的解决方案,最后还重点讲解了如何保证缓存的一致性。因为缓存对于高并发服务来说实在是太重要了,所以这篇文章我们还会继续一起学习下缓存相关的知识。 本地缓存 当我们遇到极端热点数据查询的时候,...

go-zero微服务实战系列(七、请求量这么高该如何优化)
文章 2024-08-27 来自:开发者社区

go-zero微服务实战系列(六、缓存一致性保证)

只要我们使用缓存,就必然会面对缓存和数据库间的一致性问题。如果缓存中的数据和数据库的数据不一致,那么业务应用从缓存中读取的数据就不是最新的数据,对业务的影响可想而知。比如我们把商品的库存数据存在缓存中,如果缓存中库存数据不对,那么可能就会影响下单操作,这是业务上很难接受的。本篇文章我们来一起聊一聊缓存的一致性问题。 如何解决缓存不一致 先删缓存再更新数据库 假设线程A删除...

go-zero微服务实战系列(六、缓存一致性保证)
文章 2024-08-27 来自:开发者社区

go-zero微服务实战系列(五、缓存代码怎么写)

缓存是高并发服务的基础,毫不夸张的说没有缓存高并发服务就无从谈起。本项目缓存使用Redis,Redis是目前主流的缓存数据库,支持丰富的数据类型,其中集合类型的底层主要依赖:整数数组、双向链表、哈希表、压缩列表和跳表五种数据结构。由于底层依赖的数据结构的高效性以及基于多路复用的高性能I/O模型,所以Redis也提供了非常强悍的性能。下图展示了Redis数据类型对应的底层数据结构。 ...

go-zero微服务实战系列(五、缓存代码怎么写)
文章 2024-08-27 来自:开发者社区

go-zero微服务实战系列(四、CRUD热身)

上一篇文章我们把整个项目的架子搭建完成,服务在本地也已经能运行起来了,顺理成章的接下来我们就应该开始写业务逻辑代码了,但是单纯的写业务逻辑代码是比较枯燥的,业务逻辑的代码我会不断地补充到 lerbon 项目中去,关键部分我也会加上注释。 那么本篇文章我主要想和大家分享下服务的基本配置和几个典型的代码示例。 日志定义 go-zero的 logx 包提供了日志功能,默认不需要...

go-zero微服务实战系列(四、CRUD热身)
文章 2024-08-27 来自:开发者社区

go-zero微服务实战系列(三、API定义和表结构设计)

前两篇文章分别介绍了本系列文章的背景以及根据业务职能对商城系统做了服务的拆分,其中每个服务又可分为如下三类: api服务 - BFF层,对外提供HTTP接口 rpc服务 - 内部依赖的微服务,实现单一的业务功能 rmq服务 - 负责流式任务的处理,如消费kafka等等 admin服务 - 对内部管理后台提供HTTP接口,通常数据操作权限比较高 ...

go-zero微服务实战系列(三、API定义和表结构设计)
文章 2024-08-27 来自:开发者社区

go-zero 微服务实战系列(二、服务拆分)

微服务概述 微服务架构是一种架构风格,它将一个大的系统构建为多个微服务的集合,这些微服务是围绕业务功能构建的,服务关注单一的业务功能,这些服务具有以下特点: 高度可维护和可测试 松散的耦合 可独立部署 围绕业务功能进行构建 由不同的小团队进行维护 微服务架构能够快速、频繁、可靠地交付大型、复杂的应用程序,通过业...

go-zero 微服务实战系列(二、服务拆分)
文章 2024-08-27 来自:开发者社区

go-zero 微服务实战系列(一、开篇)

前言 在社区中经常看到有人问有没有基于 go-zero 的比较完整的项目参考,该类问题本质上是想知道基于 go-zero 的项目的最佳实践。完整的项目应该是一个完整的产品功能,包含产品需求、架构设计、关键流程的编码、表设计以及各种性能优化和数据一致性等,是一个真正贴近生产级的项目,是可以直接拿来在自己的生产项目中进行参考的,而目前社区并没有类似的比较完整的开源项目参考,因此决定和大家一起...

go-zero 微服务实战系列(一、开篇)
文章 2024-08-26 来自:开发者社区

从代码到部署微服务实战(一)

当前微服务已经成为服务端开发的主流架构,而Go语言因其简单易学、内置高并发、快速编译、占用内存小等特点也越来越受到开发者的青睐,微服务实战系列文章将从实战的角度和大家一起学习微服务相关的知识。本系列文章将以一个“博客系统”由浅入深的和大家一起一步步搭建起一个完整的微服务系统 该篇文章为微服务实战系列的第一篇文章,我们将基于 go-zero + gitlab + jenkins + k8s...

从代码到部署微服务实战(一)
文章 2024-08-26 来自:开发者社区

微服务过载保护原理与实战

在微服务中由于服务间相互依赖很容易出现连锁故障,连锁故障可能是由于整个服务链路中的某一个服务出现故障,进而导致系统的其他部分也出现故障。例如某个服务的某个实例由于过载出现故障,导致其他实例负载升高,从而导致这些实例像多米诺骨牌一样一个个全部出现故障,这种连锁故障就是所谓的雪崩现象。 比如,服务A依赖服务C,服务C依赖服务D,服务D依赖服务E,当服务E过载会导致响应时间变慢甚至服务不可用,...

微服务过载保护原理与实战

本页面内关键词为智能算法引擎基于机器学习所生成,如有任何问题,可在页面下方点击"联系我们"与我们沟通。

产品推荐

微服务

构建可靠、高效、易扩展的技术基石

+关注