知乎APP的技術(shù)架構(gòu)是什么樣的?
截至2019年1月,知乎擁有2億用戶,38萬(wàn)話題,2800萬(wàn)問題,1.3億回答。今天分享一下知乎在線的技術(shù)架構(gòu),來談?wù)劵ヂ?lián)網(wǎng)平臺(tái)的技術(shù)架構(gòu)都考慮了哪些方面~
1.微服務(wù)架構(gòu):知乎11年開始探索微服務(wù),嘗試過協(xié)議緩沖區(qū)、Avro和Thrift,16年最終確定使用Thrift,使用Consul和HAProxy作為注冊(cè)中心和負(fù)載均衡。這個(gè)微服務(wù)架構(gòu)是14年確定的,一直穩(wěn)定使用到現(xiàn)在。所以唐不要問你為什么不?;不要使用gRPC。
2.云平臺(tái):知乎內(nèi)部開發(fā)了自己的ZAE。大部分線上業(yè)務(wù)容器15年已經(jīng)全部在Docker運(yùn)行,現(xiàn)在我們也在Hbase和Kafka運(yùn)行。我們最早用的是Mesos做的資源調(diào)度,現(xiàn)在換成了Kubernetes。
3.部署平臺(tái):知乎;;的部署平臺(tái)是與ZAE一起。基于Jenkins構(gòu)建的自動(dòng)集成,SonarQube自動(dòng)用于MR(Gitlab)階段的靜態(tài)代碼檢查。部署分為測(cè)試環(huán)境、辦公環(huán)境、金絲雀1(灰色單容器)、金絲雀2(灰色20%流量)和生產(chǎn)環(huán)境(100%流量在線)。如果金絲雀階段出現(xiàn)錯(cuò)誤,將自動(dòng)回滾。
4.監(jiān)控:我們主要搭建了一個(gè)基于Grafana、OpenTracing和Graphite的監(jiān)控系統(tǒng)。同時(shí)方便業(yè)務(wù)端通過研究Halo觀察服務(wù)之間的依賴、響應(yīng)時(shí)間(P95、P99、P999)和錯(cuò)誤數(shù)。同時(shí)嘗試了新的技術(shù),目前Prometheus用于商務(wù)集裝箱監(jiān)控。
5、存儲(chǔ),主要是MySQL、Redis、Hbase;TiDB正在接受調(diào)查。目前,一套生產(chǎn)集群已上線,供"閱讀"服務(wù)。
6.消息隊(duì)列:早期用的是自己開發(fā)的Sink,目前用的是Kafka。同時(shí),Beanstalkd在Kafka的基礎(chǔ)上封裝成任務(wù)隊(duì)列,方便業(yè)務(wù)使用。
7.編程語(yǔ)言,Python,Golang,Java,Rust。目前Python使用場(chǎng)景逐漸減少。Java用于一些算法項(xiàng)目和商業(yè)系統(tǒng)。搜索系統(tǒng)用的Rust重寫了Luc
為什么我回答的題一直在審核中?
一般答案會(huì)在三個(gè)小時(shí)內(nèi)審批通過,發(fā)布給你,通過。我可以查看復(fù)習(xí)的結(jié)果。如果你的答案總是在審查中,它應(yīng)該少于三個(gè)小時(shí),所以讓別著急,慢慢等。他將在三個(gè)小時(shí)內(nèi)通過審查,所以不要擔(dān)心。;不要擔(dān)心他的疏忽。如果它三個(gè)小時(shí)后?一切都會(huì)解決的。