还有这么好的文章:《一探B站后台架构, 他山之石, 何以攻玉》

转发内容

感觉总结的非常好,以后项目搭建可以参考B站的。

这里是一个小小的总结.

  1. 约329个Go服务, 历史约170人左右贡献过Go代码.
  2. 代码和目录规范性比较好, 代码生成工具建设比较好, 大家可以借鉴一下.
  3. 对于一个Golang开发者来说, 入职B站, 我觉得大概2-3天就可以copy&&paste开始贡献业务代码了. 其他语言开发者, 3-4天吧, 因为学习Golang花一天.
  4. B站Go不依赖CGO, 业务代码可以在windows编译通过! 启动!
  5. 组件基本是基于开源组件封装.
  6. RPC基于grpc封装, 协议编码为proto, 没有我们通常那样的包头.
  7. 服务注册与发现已经包装在RPC中. 注册使用自研的discovery, 基于类似url的方式去注册和寻址.
  8. 数据存储多使用memcache, redis和DB.
  9. hbase也使用比较多. 用于鉴权, 用户数据存储. 对于一些kv数据, 外部没有支持冷热分离的kv存储, hbase是一个非常好的选择: 基于HDFS, 热数据加载到内存, 列式存储, 强一致, 可配置副本数.
  10. 消息队列为使用基于kakfa, 实现了redis协议的databus.
  11. 小文件存储: B站自己实现的bfs
  12. 监控上报使用的是prometheus, 对于中小公司, 没法建设自己的监控组件, prometheus是很不错的选择.
  13. 简单浏览了下, 这份代码在SQL上没有注入风险. 生产环境的配置并没有在这份代码中. 一个合格的开发者, 即使所有源码流出去, 也不会对系统造成任何危害.
  14. 不过B站的代码似乎打点监控做的不是很多(可能没有太多的去强调?)

可以看出B站有一定的技术建设能力, 能够基于开源技术栈做封装和改进, 所选技术栈适合中小型公司业务. 技术总监毛剑水平的确挺不错, 下面会给出两篇B站在Gopher China上的分享.

详细请看下文
作者地址:
https://www.jianshu.com/p/b8e29b68252f

发布了624 篇原创文章 · 获赞 259 · 访问量 208万+

猜你喜欢

转载自blog.csdn.net/freewebsys/article/details/102914192