色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

知乎APP的技術架構是什么樣的

劉柏宏2年前16瀏覽0評論

知乎APP的技術架構是什么樣的?

知乎截止2019年1月,用戶數2億、話題38萬、問題2800萬、回答數1.3億。今天我們通過知乎在線部分的技術架構分享,來聊聊互聯網平臺技術架構都考慮了哪些層面~

1、微服務架構,知乎從 11 年就開始了微服務的探索,嘗試過 protocol buffers、Avro、Thrift,最終在 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、監控,我們主要基于 Grafana、OpenTracing、Graphite 等搭建了監控系統。同時自研了 Halo 可以方便的是業務方觀測到服務之間的依賴關系、響應時間(P95, P99, P999)、錯誤數。同時也進行了新技術的嘗試,目前在業務容器監控使用了Prometheus 。

5、存儲,主要是 MySQL、Redis、HBase;正在調研 TiDB,目前有一套生產集群上線準備給「已讀」服務使用。

6、消息隊列,早期使用自研的 Sink,目前使用 Kafka,同時提供在 Kafka 的基礎上包裝了Beanstalkd 作為任務隊列方便業務進行使用。

7、編程語言,Python、Golang、Java、Rust。目前Python 使用場景逐漸變少。Java 在一些算法項目和商業系統中有使用。搜索系統使用的 Rust 重寫 Lucene,現并在此基礎上重寫了類 ES 的集群化搜索引擎。