gitlab架构科普

    技术2024-10-29  23

    gitlab架构科普

    底层存储由三个组件负责: ①PostgreSQL:类似于mysql,存储业务数据,比如有哪些项目组,某个项目组下有哪些项目,某项目下哪些人有权限等等 ②redis:用于缓存热点数据以及存储异步任务,sidekiq这组件会定期拉取分发异步任务给worker执行 ③gitaly:存储底层代码文件,提供rpc接口对外提供git操作服务

    接入层由两个组件负责: gitlab shell和gitlab workhorse,前者负责处理ssh请求,后者负责处理http/https请求 gitlab workhorse对于本地静态文件请求(例如浏览器请求的html、js、css文件)会自己处理掉,对于纯git操作请求会转发给gitaly,对于其他动态请求会转发给unicorn处理

    unicorn就是gitlab的主server程序,它会调用其他各个组件完成复杂的动态请求处理

    Processed: 0.018, SQL: 9