1、關於微信的架構問題
最初的方案是客戶端記錄一個本地數據的快照(Snapshot),需要同步數據時,將Snapshot帶到伺服器,伺服器通過計算Snapshot與伺服器數據的差異,將差異數據發給客戶端,客戶端再保存差異數據完成同步。不過這個方案有兩個問題:一是Snapshot會隨著客戶端數據的增多變得越來越大,同步時流量開銷大;二是客戶端每次同步都要計算Snapshot,會帶來額外的性能開銷和實現復雜度。
幾經討論後,方案改為由服務計算Snapshot,在客戶端同步數據時跟隨數據一起下發給客戶端,客戶端無需理解Snapshot,只需存儲起來,在下次數據同步數據時帶上即可。同時,Snapshot被設計得非常精簡,是若干個Key-Value的組合,Key代表數據的類型,Value代表給到客戶端的數據的最新版本號。Key有三個,分別代表:帳戶數據、聯系人和消息。這個同步協議的一個額外好處是客戶端同步完數據後,不需要額外的ACK協議來確認數據收取成功,同樣可以保證不會丟數據:只要客戶端拿最新的Snapshot到伺服器做數據同步,伺服器即可確認上次數據已經成功同步完成,可以執行後續操作,例如清除暫存在服務的消息等等。
此後,精簡方案、減少流量開銷、盡量由伺服器完成較復雜的業務邏輯、降低客戶端實現的復雜度就作為重要的指導原則,持續影響著後續的微信設計開發。記得有個比較經典的案例是:我們在微信1.2版實現了群聊功能,但為了保證新舊版客戶端間的群聊體驗,我們通過伺服器適配,讓1.0版客戶端也能參與群聊。
3. 定型了後台架構

圖 2 微信後台系統架構
微信後台使用三層架構:接入層、邏輯層和存儲層。
接入層提供接入服務,包括長連接入服務和短連接入服務。長連接入服務同時支持客戶端主動發起請求和伺服器主動發起推送;短連接入服務則只支持客戶端主動發起請求。
邏輯層包括業務邏輯服務和基礎邏輯服務。業務邏輯服務封裝了業務邏輯,是後台提供給微信客戶端調用的API。基礎邏輯服務則抽象了更底層和通用的業務邏輯,提供給業務邏輯服務訪問。
存儲層包括數據訪問服務和數據存儲服務。數據存儲服務通過MySQL和SDB(廣硏早期後台中廣泛使用的Key-Table數據存儲系統)等底層存儲系統來持久化用戶數據。數據訪問服務適配並路由數據訪問請求到不同的底層數據存儲服務,面向邏輯層提供結構化的數據服務
2、java微信開發用什麼框架好
核心框架:來Spring Boot2 + Spring Cloud Alibaba + Spring Cloud Gateway
這是joolun微信快速開發系統的自核心框架選型,用目前流行的微服務前後端分離技術開發的java源碼框架,你可以參考一下
3、mui框架 微信支付服務端怎麼寫
客服被,
4、請問微信企業號的功能架構都有哪些?
據我所知,微企企業號是企業管理平台,即企業號將在移動互聯網上為企業提供對內部員內工的管理容、溝通與服/務。
21cn微企,基於微信企業號的的wei信辦公系統,為企業和員工提供了移動考勤、任務交辦、外勤管理、審批流程、企業郵箱等13大辦公應用功能,讓員工積極主動使用移動辦公,助力企業高效便捷管理。
5、要做一個類似於微信或者QQ的Android、ios的聊天應用,請問伺服器端用什麼技術或開源框架比較好?
即時聊天通用的協議是 XMPP,基於這個協議有一套java開源的服務端 openfire,可以快內速的搭建一套即時聊容天服務端。
但是現在有不少雲即時通訊服務。例如
容聯雲通訊、雲之訊、環信、融雲
這些雲服務提供了api,我們基於他的api開發很容易實現自己的即時聊天軟體。服務端,伺服器都不用我們自己管了,極大的節省了成本和開發周期。而且這些雲服務基礎服務都是免費的。
建議用第三方的雲服務實現。
6、怎麼在買的騰訊雲伺服器上架構微信公眾號?
直接去騰訊雲官網申請就可以了
7、微信公眾平台開發用什麼框架最好
你好!
單純微信介面servlet就夠了, 管理後台的話看喜好。
jersey感覺比SpringMVC好一點。
不管哪個,自己熟悉的才是最好的。
8、微信的後台架構是怎樣的?
具體的內部後台構架應該算是商業機密,一般人不會泄露出來的。微信在最開始的階段它是創立了KV存儲平台,去承載整個微信的後台核心數據存儲
9、kik 米聊,微信的伺服器和客戶端架構是怎樣的
米聊和復kik是XMPP協議制的,微信是activesync協議的。米聊早期似乎使用的ejabberd,後期自己寫了,kik使用的是 tigase server。陌陌早期也是xmpp,用的openfire,後來自己做了。
10、怎麼做微信公眾號的架構?請專業人士回答
你的公眾號准備幹嘛用的,都需要哪些功能你問的具體點我再一一給你回答