16、目录规范:几万行的大文件,如何重构目录结构

你好,我是徐逸。 上节课我们学习了如何拆分项目,不过对于复杂系统来说,即便拆分了项目,每个子项目里的文件庞大且复杂,管理和维护都非常困难。这时候我们就需要学会如何抽丝剥茧,为这样的文件建立一个合理的目录结构。 今天我就用分层架构的思想,带你将一个包含...

Go服务开发高手课

15、项目拆分:业务逻辑复杂,如何拆分服务让协作清晰有序

你好,我是徐逸。 作为后台研发,在我们的日常工作中或多或少都接触过微服务架构。对于微服务架构,我们除了要熟悉常用的微服务技术栈之外,还有一个极为重要的部分,那就是如何进行微服务拆分。要知道,服务拆分决策与实施的过程,会直接对系统未来的迭代效率和可维护...

Go服务开发高手课

14、本地缓存:缓存存不下又不能回源怎么破

你好,我是徐逸。 在前面两节课里,我们已经深入探讨了多种解决分布式缓存问题的策略。然而,在面对高并发、低延迟的场景,特别是在抖音、快手这类短视频应用的推荐与搜索功能场景,我们发现Redis作为缓存解决方案存在一定的局限性。 这是因为Redis主要支持...

Go服务开发高手课

13、分布式缓存:大Key更新,拆分大Key如何防脏读

你好,我是徐逸。 在上一节课中,我们深入探讨了如何应对Redis中的热Key问题,并掌握了多种解决方案。然而,在面对高并发的挑战时,我们不仅要关注热Key问题,还必须关注另一个可能影响Redis性能的因素——大Key问题。 今天这节课,我们就来聊聊R...

Go服务开发高手课

12、分布式缓存:大促抢购,不知热点咋防热Key

你好,我是徐逸。 通过上节课的学习,我们知道了提升服务吞吐的数据库架构方案。 不过在实践中,除了在数据库层面做优化之外,我们还可以通过搭配缓存的方式,来减轻数据库的访问压力,避免数据库成为性能瓶颈点。例如电商大促的商品详情页,由于商品的名称、图片链接...

Go服务开发高手课

11、数据库:分库分表,没有用户id怎么分

你好,我是徐逸。 通过前面的课程学习,我们已经了解了如何从编码和框架这两个层面来优化服务性能。不过呢,当性能瓶颈点是下游数据库时,这两个层面的优化就无能为力了。 对于数据库性能的优化,除了合理使用索引等使用细节上的优化之外,在高并发场景,我们还需要在...

Go服务开发高手课