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