摘要: 微服务之间有哪些调用方式? 随着微服务架构的广泛应用,服务之间的通信方式成为了系统设计中的重要一环。微服务的核心理念是将系统拆分为多个独立的服务,每个服务负责特定的业务功能。为了实现这些服务之间的协作,通信方式的选择至关重要。 微服务之间的通信方式主要分为两大类: 同步通信:服务之间直接调用,通常需要立即返回结果。 异步通信: 阅读全文
posted @ 2025-04-27 15:04 代码拾光 阅读(1069) 评论(0) 推荐(7)
摘要: 如果单表数据量大,只能考虑分库分表吗? 程序员最怕啥?不是需求改八遍,也不是半夜报警电话,而是数据库突然卡成PPT!尤其是当单表数据冲到几千万行,查询慢得像老牛拉车,这时候团队第一反应往往是:“赶紧分库分表!” 但兄弟,分库分表可不是什么温柔小姐姐,它更像是个浑身带刺的仙人掌——你以为抱上就能解决问题,结果可能扎得你嗷嗷叫。今天咱就聊点实 阅读全文
posted @ 2025-04-11 12:25 代码拾光 阅读(2783) 评论(27) 推荐(72)
摘要: 面试官:如果某个业务量突然提升100倍QPS你会怎么做? “假设你负责的系统,某个业务线的QPS突然暴增100倍,你会怎么应对?” ——这是上周朋友去面试,被问到一道题,他答了“加机器扩容”,结果面试官眉头一皱:“如果机器不够呢?如果数据库崩了呢?”朋友当场卡壳。其实这道题就像“高压水枪”,专冲知识漏洞。 作为开发者,如果只回答“加机器”“扩容”,可能直接 阅读全文
posted @ 2025-04-09 16:43 代码拾光 阅读(1602) 评论(1) 推荐(7)
摘要: .NET8中gRPC的使用 在现代分布式系统中,服务之间的通信是一个非常重要的环节。随着微服务架构的流行,服务之间的通信方式也在不断演进。gRPC作为一种高性能、跨语言的RPC框架,逐渐成为了我们的首选。 一、简介 gRPC 是一种高性能、开源的远程过程调用(RPC)框架,基于 HTTP/2 协议,支持双向流、头部压缩等特性。 阅读全文
posted @ 2025-03-19 09:49 代码拾光 阅读(953) 评论(5) 推荐(2)
摘要: 在构建高性能的 .NET Core 应用时,缓存是提升系统响应速度、减轻数据库压力的利器。然而,缓存并非一蹴而就,它也需要“热身”才能发挥最佳性能。这就是缓存预热的意义所在。 一、什么是缓存预热? 缓存预热,顾名思义,就是在系统启动或缓存失效后,主动将热点数据加载到缓存中,避免用户首次请求时直接访问 阅读全文
posted @ 2025-03-11 11:20 代码拾光 阅读(1846) 评论(2) 推荐(8)
摘要: 在现代的分布式系统和微服务架构中,HTTP API 调用是不可或缺的一部分。为了简化 HTTP 请求的构建和解析,我们可以使用 Refit 这个强大的库。Refit 通过将 HTTP API 抽象为接口,使得调用远程服务变得非常简单和直观。 1. 初识 Refit Refit 是一个用于 .NET 阅读全文
posted @ 2025-02-28 17:16 代码拾光 阅读(223) 评论(0) 推荐(1)
摘要: 在 C# 中,异步编程是构建响应式应用程序的基础。Task 是表示异步操作的首选类型。但是,在某些高性能场景中,与 Task 相关的开销可能会达到一个瓶颈。ValueTask 是 .NET Core 2.1 中引入的结构。与引用类型的 Task 不同,ValueTask 是一种值类型,这使得它在某些 阅读全文
posted @ 2025-02-26 10:43 代码拾光 阅读(622) 评论(0) 推荐(6)
摘要: 面试官:你是如何进行SQL调优的? SQL调优是我们后端开发人员面试中的高频考点,也是实际工作中提升数据库性能的关键技能。面对“你是如何进行SQL调优的?”这个问题,你是否能条理清晰地分析问题并提供解决方案? 以下是在你原文基础上进行的优化,增加了判断方法和依据,使内容更加完整和实用: 1. 索引失效 问题分析: 索引是提高查询速度的 阅读全文
posted @ 2025-02-25 11:03 代码拾光 阅读(1084) 评论(4) 推荐(8)
摘要: .NET Core 中如何构建一个弹性的 HTTP 请求机制? 1. 理解弹性 HTTP 请求机制 什么是弹性? 弹性是指系统在面对故障或异常情况时,能够保持或快速恢复到正常状态的能力。在 HTTP 请求的上下文中,弹性意味着当请求失败时,系统能够自动采取一系列措施(如重试、降级、断路等)来确保请求最终成功或优雅地处理失败。 为什么需要弹性 HTTP 请求机制? 阅读全文
posted @ 2025-01-21 17:51 代码拾光 阅读(892) 评论(0) 推荐(6)
摘要: 在 .NET Core中如何使用 Redis 创建分布式锁 在 .NET Core WebApi 中使用 Redis 创建分布式锁可以通过 StackExchange.Redis 库来实现。分布式锁用于确保在分布式系统中,同一时间只有一个进程可以执行某段代码。 1. 场景描述 在支付系统中,可能会出现以下并发问题: 用户同时发起多次支付请求,导致重复扣款。 阅读全文
posted @ 2025-01-18 10:34 代码拾光 阅读(1112) 评论(4) 推荐(9)