B站Golang技术栈分析
技术栈 | 技术选型 | 参考链接 |
---|---|---|
RPC | 基于grpc封装的warden框架, 已开源 | https://github.com/bilibili/kratos |
HTTP框架 | 基于gin封装的blade master框架, 已开源 | 同上 |
服务注册与发现 | 初期为zk, 后面逐步改为参考Spring Cloud体系Eureka自研的discovery | 已开源 https://github.com/bilibili/discovery |
存储 | DB, redis, memcache, hbase存储一些用户kv信息和历史流水, 已封装好库 library/database/ | client库已开源 https://github.com/bilibili/kratos |
搜索 | B站视频, 用户, 历史记录等使用es搜索, 客户端已封装在基础库中 library/database/elastic | |
小文件存储 | 毛剑个人研发的bfs, 已开源. | https://www.toutiao.com/i6272104949560115714/https://github.com/Terry-Mao/bfs |
消息队列 | 基于kafka封装的databus | |
log | 基于uber的zap封装的日志框架 | |
配置及配置中心 | 支持从环境变量读取配置, 从toml中解析配置, 支持远程配置中心(自研, mysql存储, 本地落地,http协议, long poll, 客户端有更新事件, 类似于携程开源的Apollo) | |
监控 | 使用开源的prometheus, 框架和库(sql, redis, hbase等)中已预埋计数点和时间统计点, 同时也可以在业务逻辑中打点. library/stat/stat.go | |
trace | trace似乎是基于agent的方式, 使用unix domain socket进行传送, 框架和库已预埋点. library/net/trace.go | |
研发流程管理 | TAPD, 有相关的tapd struct信息 |
其中RPC, HTTP框架, 数据访问的一些库封装, 包括生成工具, 均以kratos项目在github开源了(https://github.com/bilibili/kratos )Kratos是bilibili开源的一套Go微服务框架,包含大量微服务相关框架及工具)
B站目前使用及封装的中间件的详细介绍在Gopher China 2017 B站的分享有提到原理和使用情况.
https://mp.weixin.qq.com/s/4uA6iE7HC_SAfdIATAdrrA
bfs介绍
https://www.jianshu.com/p/923917220d23
B站运维体系发展
https://myslide.cn/slides/3840
B站Golang技术栈分析相关推荐
- 服务外包技术培训——后端开发技术栈分析(Java)
技术栈 http://www.atguigu.com/download.shtml 学习资源 https://space.bilibili.com/302417610/channel/detail?c ...
- 开篇第一章简要IOT技术栈分析
个人理解的IOT相关重要技术模块统计
- 如何从0搭建公司的后端技术栈
hi 大家好,今天要说的后台是指服务器后台系统架构,比如使用的框架,语言,数据库,服务,操作系统等等. 整个后台技术栈我的理解包括 4 个层面的内容: 语言:用了哪些开发语言,如:C++/Java/G ...
- SignalR在React/Go技术栈的实践
哼哧哼哧半年,优化改进了一个运维开发web平台. 本文记录SignalR在react/golang 技术栈的生产小实践. 01 背景 有个前后端分离的运维开发web平台, 后端会间隔5分钟同步一次数据 ...
- 60个Chrome神器插件大收集:助你快速成为B站老司机,一键分析网站技术栈
乾明 编辑整理 量子位 报道 | 公众号 QbitAI 让WebP图片下载为PNG格式,从Github批量下载表情包,一键滚动截屏整个网页,助你快速成为B站老司机,一键分析网站技术栈,翻录网页视频神 ...
- Linux 服务器开发学习路线总结(配图 c/c++ )后台开发、Golang后台开发、后端技术栈
本文总结了目前互联网行业Linux c/c++ 后端岗位开发工程师.服务器开发架构师以及Golang开发工程师技术栈知识点.大家可以看看还有没有需要补充的. Linux后台开发工程师专栏 一.算法与设 ...
- 企业级自动化运维方案设计及Saltstack、Ansible等5种工具比较分析--云平台技术栈08...
导读:之前发布了云平台技术栈(ps:点击可查看),本文主要说一下其中的服务器自动化配置! 来自:公众号talkwithtrend 1.企业运维现状与发展趋势 随着企业信息化的不断发展,运维人员需要面对 ...
- 不敢相信,技术栈,居然被P站秒了
PornHub的FE,分享了P站前端一些实践,英文比较晦涩难懂,故翻译整理了一下,很多同学对前端技术不是很熟悉,故加入了简单解释,希望对大家理解相关技术有帮助. 提问:能分享一下,P站架构使用了哪些技 ...
- 下一代 Web 建站技术栈—— Jamstack
如果你之前从未了解过 Jamstack,我推荐先阅读文章:Jamstack,下一代Web建站技术栈?(https://zhuanlan.zhihu.com/p/281085404). Jamstack ...
最新文章
- R语言ggplot2包以及lattice包可视化方程、函数的曲线实战:function curve
- XamarinAndroid组件教程RecylerView适配器使用动画
- 双击执行java_双击以执行Java程序
- TabHost与RadioGroup结合完成的菜单【带效果图】5个Activity
- 10步骤优化SQL Server 数据库性能
- [JZOJ5836] Sequence
- html调用chr,FpHtmlEnCode 函数之标题过滤特殊符号的代码
- 少走弯路的10个忠告
- 洛谷 数论入门相关题目--2022.01.22
- mysql 处理数据_MySQL数据库,如何处理重复的数据?
- pytorch gather_【CV】10分钟理解Focal loss数学原理与Pytorch代码
- 05-树9 Huffman Codes
- Paragon Camptune X for Mac(Mac磁盘分区工具) V10.13.433免费版
- 读《如何阅读一本书》的小感想及笔记
- 深圳车牌识别助力汽车检测,颠覆传统方式
- 解决:java.sql.SQLException:Value ‘0000-00-00‘ can not be represented as java.sql.Date
- 如何利用福禄克FLUKE 718 校准压力开关
- win10锁屏c语言,Win10怎样在锁屏状态下打开某种应用程序
- Semi-supervised Semantic Segmentation with Error Localization Network(基于误差定位网络的半监督语义分割 )
- MIT cheetah make时 error: ‘ioctl’ was not declared in this scope
热门文章
- 条码打印软件如何设置双排标签纸尺寸 1
- 大数据就业前景如何?马云曾经说过大数据是未来顶峰时代应验了
- C语言编程>第六周 ① 编写一个录入函数:用来从键盘接收n个整型数并存放在一个整型数组中。 在主函数中调用该函数计算出这n个整数之和。
- 大数据应用导论 Chapter1 | 大数据技术与应用概述
- 计算机图形学笔记十:Geometry3(网格处理)
- 激活数字营销新引擎,亚马逊云科技为企业带来数字化营销新体验
- viewerjs 在html打开图片或打开pdf文件使用案例
- 加密狗在虚拟服务器上怎么注册,您好 我想问下 在虚拟机里面安装软件 装好后要进行加密狗注册 加密狗插进去显示安装成功 可是点击注册就提示检测不到加密锁 是什么原因呢?急急急...
- 批量更改图像背景颜色_Photoshop 2021来了,图像处理新功能让人惊叹
- 大神李沐被曝离职亚马逊,投身大模型创业!网友:“AI 已成创业致富新思路?”...