知乎在线部分的技术架构

作者:姚钢强
链接:https://www.zhihu.com/question/314356555/answer/625772570
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

知乎截至 2019 年 1 月的数据:

  • 用户数:2.2 亿
  • 话题数: 27 万
  • 问题数: 3000 万
  • 回答数: 1.3 亿

以下内容全部基于 2019.1 之前情况

简述下知乎在线部分的技术架构,先看下整体的架构图,整体比较清晰不再赘述。

知乎在线架构

  1. 微服务架构,知乎从 11 年就开始了微服务的探索,尝试过 protocol buffersAvroThrift,最终在 16 年确认使用 Thrift,同时使用 Consul 和 HAProxy 作为注册中心和负载均衡。是在 14 年确认的这套微服务架构,并且稳定使用到了现在。所以大家不要问为什么不使用 gRPC 了。
  2. 云平台,知乎有自己的内部研发的 ZAE ,绝大部分的在线业务容器在 15 年就已经全部跑在了 Docker 里,现在我们 HBase 和 Kafka 也是跑在容器里的。我们最开始使用的是Mesos 做的资源调度,现在已经切换到了 Kubernetes 。
  3. 部署平台,知乎的部署平台是与 ZAE 在一起的, 基于 Jenkins 搭建的自动集成,在 MR(Gitlab) 阶段自动使用 SonarQube 进行静态代码检查。部署分为测试环境,办公室环境,金丝雀1(灰度单个容器),金丝雀2(灰度 20% 流量),生产环境(100% 流量上线)。如果金丝雀阶段出现错误,会自动进行回滚操作。
  4. 监控,我们主要基于 GrafanaOpenTracingGraphite 等搭建了监控系统。同时自研了 Halo 可以方便的是业务方观测到服务之间的依赖关系、响应时间(P95, P99, P999)、错误数。同时也进行了新技术的尝试,目前在业务容器监控使用了Prometheus 。
  5. 存储,主要是 MySQLRedisHBase;正在调研 TiDB,目前有一套生产集群上线准备给「已读」服务使用。
  6. 消息队列,早期使用自研的 Sink,目前使用 Kafka,同时提供在 Kafka 的基础上包装了Beanstalkd 作为任务队列方便业务进行使用。
  7. 编程语言,PythonGolangJavaRust。目前 Golang 使用比较广泛,Python 使用场景逐渐变少。Java 在一些算法项目和商业系统中有使用。搜索系统使用的 Rust 重写 Lucene,现并在此基础上重写了类 ES 的集群化搜索引擎。架构师
    @孙晓光

    会去 https://rustcon.asia/ 做分享。

  8. 目前已经搭建好完备的测试环境,会在 Q2 投入使用。
  9. 现在已经搭建了多机房,目前重要的业务都是异地多活。

总结:

  1. 勇于探索新的技术,例如早期的微服务(11 年)和容器化(15年)。
  2. 在开源技术可以满足的前提下,尽量不自造轮子,从而使项目可以持续维护。
  3. 知乎技术上一直崇尚工具化、自动化,例如我们的部署平台,监控,报警系统等,不管是平台还是业务方,都没有专职的运维人员。
  4. 整体来说知乎的平台化(我不是做平台的)一直做得很统一,比较少出现业务方自造一套轮子的情况,但是也不排斥业务方的尝试。

感谢知乎优秀的技术平台工程师,给我们业务方带来这么好的基础设施。:-D

==================== End

转载于:https://www.cnblogs.com/lsgxeva/p/10578281.html

知乎在线部分的技术架构相关推荐

  1. 「优知学院」淘宝技术架构的前世今生(上)

    " 淘宝技术架构经历从最初的LAMP架构,到IOE架构,再到分布式架构,再到去IOE,最后到现在的云计算平台架构这一变化过程在不断解决上面的技术问题,可以说淘宝技术架构的演变就是活生生的一本 ...

  2. Worktile 技术架构概要

    其实早就该写这篇博客了,一直说忙于工作没有时间,其实时间挤挤总会有的,可能就是因为懒吧!从2013年11月一直拖到现在,今天就简单谈谈 Worktile 的技术架构吧 . Worktile 自上线到现 ...

  3. 阿里巴巴闲鱼架构负责人王树彬:万亿交易规模技术架构实践

    中生代技术 链接技术大咖,分享技术干货 全文:5000字 预见未来的最好方式就是创造未来,用「云原生Talk」记录云原生时代下每个造梦者的故事. 造梦者 | 王树彬,阿里巴巴闲鱼架构负责人 2014年 ...

  4. 趋势发布SecureCloud云安全技术架构

    本文讲的是趋势发布SecureCloud云安全技术架构,[IT168 专稿]7月22日,趋势科技在主题为"Web安全云时代"的发布会上,展示了公司基于云安全技术架构(Cloud-C ...

  5. 初识阿里云(云计算)--发展历程和技术架构、地域和可用区

    文章目录 一.初识阿里云 1.概述 2.阿里云log 3.品牌口号 4.云计算价值 二.阿里云整体架构 1.阿里云发展历程 2.阿里云技术架构 3.地域和可用区 三.云端实践 1.杭州城市大脑 2.1 ...

  6. 支持百亿数据场景,海量高性能列式数据库HiStore技术架构解析

    支持百亿数据场景,海量高性能列式数据库HiStore技术架构解析 HiStore介绍 HiStore是阿里中间件团队研发的数据库产品,是一款基于独特的知识网格技术的列式数据库,定位于海量数据高压缩比列 ...

  7. 海量高性能列式数据库HiStore技术架构解析

    HiStore 介绍 HiStore是阿里中间件团队研发的数据库产品,是一款基于独特的知识网格技术的列式数据库,定位于海量数据高压缩比列式存储,是低存 储成本,低维护成本,海量数据OLAP存储引擎;有 ...

  8. 分布式计算,大型网站技术架构:核心原理与案例分析

    这个回答,非常详细. 但是,大部分内容,都来自"大型网站技术架构:核心原理与案例分析". 最近,初步看了这本书,觉得写得太好了,比较系统和全面. 不过,我还是不喜欢吹B" ...

  9. 第三章 区块链技术架构与发展趋势

    第三章 区块链技术架构与发展趋势 整个区块链与密码学大体内容介绍安排如下: https://blog.csdn.net/qq_43479839/article/details/114630163 参考 ...

  10. ChatGPT发展历程、原理、技术架构详解和产业未来

    点击上方"芋道源码",选择"设为星标" 管她前浪,还是后浪? 能浪的浪,才是好浪! 每天 10:33 更新文章,每天掉亿点点头发... 源码精品专栏 原创 | ...

最新文章

  1. 研究生论文盲审、查重再加码!毕业或将变的更加困难...
  2. 动态创建DeepZoom
  3. 了解Java中的检查与未检查异常
  4. 云计算之KVM虚拟化实战
  5. cie计算机科学,爱德思IGCSE 计算机科学 edexcel computer science
  6. double转整数问题
  7. python如何安装scrapy_Python爬虫之Scrapy的安装
  8. [Spring5]IOC容器_Bean管理注解方式_完全注解开发
  9. 7000更换控制器电源步骤_开关电源控制环路(初级篇:上)
  10. php提示是否运行,php运行错误提示
  11. oracle多线程删除,请教高手:多线程访问时如何实现删除一个文件?
  12. jQuery中的跨域问题
  13. 为什么要在网站上主动放置沃通全球可信网站认证标志
  14. mysql 单精度和双经度,mysql – 计算距离给定2点,纬度和经度
  15. lateX 编译中文_受够了 Word 的排版?让专业的 Latex 帮你打造精美文档
  16. python爬虫requests设置代理ip_Python 爬虫的代理 IP 设置方法汇总
  17. java水仙花数编程_水仙花数java编程实现
  18. 【学习笔记】软件测试-版本迭代总结
  19. 此共享需要过时的smb1协议
  20. IR2184死区时间介绍

热门文章

  1. 微信小程序 获取php值,微信小程序如何获取javascript里的数据
  2. java应用安全设计_应用层安全架构设计-访问控制
  3. python 边缘计算_OpenEdge首页、文档和下载 - 边缘计算平台 - OSCHINA - 中文开源技术交流社区...
  4. iphone已停用怎么解锁_iPhone X已停用 连接iTunes 怎么办
  5. 5.并发工具和执行器(Concurrency Utilities and Executors)5.1 并发工具介绍
  6. 数据预处理第5讲:特征缩放
  7. ACM 学习笔记(三) 数学入门
  8. Lecture 2:马尔可夫决策
  9. 解决 IDEA 无法找到 java.util.Date 的问题
  10. 俞昆20155335《网络对抗》MSF基础应用