November 13, 2024
go-gorm源码分析(三)go-gorm源码分析(三)
GORM支持的关系类型主要包括一对一、一对多、多对多等关联关系的定义和查询。在GORM中,开发者可以在模型中定义这些关联关系,并使用GORM提供的方法进行关联查询和操作。本文重点介绍其关系的实现原理。
Expore the latest articles from Next Notion Blogger
November 13, 2024
go-gorm源码分析(三)GORM支持的关系类型主要包括一对一、一对多、多对多等关联关系的定义和查询。在GORM中,开发者可以在模型中定义这些关联关系,并使用GORM提供的方法进行关联查询和操作。本文重点介绍其关系的实现原理。
October 28, 2024
go-gorm源码分析(二)前文分析了go-gorm的大致结构,包括初始化以、连接管理以及SQL构建等,本文分析gorm下通过ORM(对象关系映射)读写数据的基本原理及执行逻辑。
October 15, 2024
go-gorm源码分析(一)最近在查找一些golang版本的SQL Builder的选型,刚好了解到了gorm的能力。gorm内嵌的SQL拼接能力其实不太适合作为独立特性来使用,其内部实现与gorm有较深的耦合关系。但是gorm的关系操作能力很强大,猜测跟directus中的实现有些类似。刚好之前阅读directus源码时觉得ts代码有些繁杂晦涩,所以阅读一遍gorm的源码,并记录其分析过程。
August 22, 2024
pREST源码分析之前的文章中已经分析了pREST的功能和基础用法,本文介绍其代码结构以及实现原理。各接口实现差异不大,本文重点关注其CRUD能力以及自定义查询的实现方案。
August 14, 2024
pREST功能简介pREST是一个使用go开发的开源项目,用于为 PostgreSQL 数据库创建实时高性能的 REST 接口,旨在简化和加速基于 PostgreSQL 的应用开发。它允许开发者通过简单的配置将现有的 PostgreSQL 数据库转化为一套完整的 REST 服务,无需自己去实现复杂的后端服务。本文重点介绍pREST的能力和使用方法。
July 5, 2024
golang BigCache源码解析golang的本地缓存方案有不少,如freecache、bigcache、groupcache等。很久前看过groupcache的源码,对其singleflight的机制印象挺深的,但是印象中没有对gc做特殊的优化。最近刚好看到了了bigcache的介绍,其内部实现重点考虑了gc对于性能的影响。所以翻出其代码快速阅读了一遍其核心思路,特此记录。
July 3, 2024
Netflix按优先级减载保障可用性(二)已经在之前的文章中介绍了Netflix在API网关Zuul中实施的按优先级减载策略来保障服务的可用性。当前这一策略已经扩展到了单个服务级别。重点关注在视频控制层面(即AWS中的后台服务)和数据平面。
July 2, 2024
Netflix按优先级减载保障可用性(一)Netflix的文章《Keeping Netflix Reliable Using Prioritized Load Shedding》探讨了Netflix如何通过引入基于优先级的减载法(Prioritized Load Shedding)来改进系统可用性,确保在系统高负载或故障时仍能保障基础功能可用。