10040 微信與朋友圈後台架構

2021-07-16 09:09:55 字數 783 閱讀 6196

原文

視屏講解

伺服器的配置基本都是普通的伺服器,最好的伺服器也就是64g記憶體,這部分佔比不多,大部分是32g記憶體,也有很少一部分8g記憶體的。硬碟是ssd和sata都有。cpu以16核居多,有一部分新機器是32核。至於頻寬則是比較多的,對外頻寬很大。

涉及朋友圈資料的有四個核心的表:

在發布的表寫完之後,會把這個k2的發布索引到小王的相簿表裡。所以相簿表其實是很小的,裡面只有索引指標。相簿表寫好了之後,會觸發乙個批處理的動作。這個動作就是去跟小王的每個好友說,小王有乙個新的發布,請把這個發布插入到每個好友的時間線裡面去。

在這個過程中,發布是很重的,因為一方面要寫乙個自己的資料副本,然後還要把這個副本的指標插到所有好友的時間線裡面去。如果乙個使用者有幾百個好友的話,這個過程會比較慢一些。這是乙個單資料副本寫擴散的過程。但是相對應的,讀取就很簡單了,每乙個使用者只需要讀取自己的時間線表,就這乙個動作就行,而不需要去遍歷所有好友的相簿表。

為什麼選擇這樣乙個寫擴散的模型?因為讀是有很多失敗的。乙個使用者如果要去讀兩百個好友的相簿表,極端情況下可能要去兩百個伺服器上去問,這個失敗的可能性是很大的。但是寫失敗了就沒關係,因為寫是可以等待的,寫失敗了就重新去拷貝,直到插入成功為止。所以這樣乙個模型可以很大的減少服務的開銷。

解法其實也簡單,只要單項同步最初的發布寫操作。比如小王這個使用者是在上海資料中心的,他在自己相簿上新增了一條發布k2,那麼就只要單項同步把k2寫到香港去就好了。反過來,比如mary是在香港,那麼她有新的發布,只要在香港寫進去之後,單項同步到上海就可以了。這樣就不存在時間線多資料副本同步的問題了,只要在各個資料中心內分別做批處理。

微信朋友圈api使用

3 匯入相關的庫檔案 官方文件有詳細資訊 編譯出錯的話檢查匯入libc dylib這個庫沒有 if success else return yes return wxapi handleopenurl url delegate self return wxapi handleopenurl url ...

微信朋友圈運營規則

一 哪種行為或內容不應在朋友圈出現?1 誘導分享行為 符合以下任意一條即算違規 b 利誘使用者分享 分享後對使用者有獎勵。包括但不限於 邀請好友拆禮盒,集讚,分享可增加一次 機會 c 脅迫 煽動使用者分享 用誇張言語來脅迫 引誘使用者分享。包括但不限於 不轉不是中國人 請好心人 一下 後一生平安 轉...

android 微信朋友圈微博分享

新增 和資源引用,我們提供了新增資源檔案和jar檔案的兩種方式,可以根據需求選擇 解壓sdk壓縮包,將資料夾中的 main libs 和 main res 資料夾複製到你的專案工程根目錄下 如使用 adt 17 以下使用者需要手動新增 libs 下的jar檔案到工程path中 解壓sdk壓縮包,將資...