微信、陌陌的架構方案分析(LBS之二)
目標
解決大型應用(微信、陌陌級別)中,使用者經緯度在不斷更新,使用者查詢頻繁的問題。(每分鐘1000W級)
方案A
由上文,簡單可得;
1、僅需每分鐘將使用者的經緯度,上報到資料庫;
2、然後每次使用者查詢附近好友時,通過 LIKE ‘wm3yr3%’,即可獲取
缺點:稍有一定資料量,對資料庫的鴨梨可想而知
方案B
策略
假象把中國分成,若干個一平方公里的單元格,
1、使用者位置的變更,理解為一個單元格移動到另外一個單元格(或者不移動)
2、使用者查詢附近,理解為查詢,自己所在方塊的的所有人
資料結構
1、使用者基本資訊 緯度、經度、GeoHash值(經緯度,僅用於後期距離計算)
2、單元格 集合(使用者1,使用者2,…)
儲存工具
1、redis string(key->value) 結構,儲存使用者基本資訊
2、redis set(集合) 結構,以GeoHash值,前6位作為key(約表示一平方千米),儲存單元格的使用者群
演算法流程
1、更新使用者資訊,先刪除使用者原所在集合,再更新當前使用者資訊,最後更新當前使用者所在集合
2、查詢附近,直接查詢,所在單元格集合所有使用者ID
具體實現
幫助1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556相關推薦微信、陌陌的架構方案分析(LBS之二)目標解決大型應用(微信、陌陌級別)中,使用者經緯度在不斷更新,使用者查詢頻繁的問題。(每分鐘1000W級)方案A由上文,簡單可得;1、僅需每分鐘將使用者的經緯度,上報到資料庫;2、然後每次使用者查詢附近好友時,通過 LIKE ‘wm3yr3%’,即可獲取缺點:稍有一定資料量, 手把手實現微信網頁授權和微信支付,附源代碼(VUE and thinkPHP)nec ble 名單 ret 一次 hash 掃一掃 網頁 ada wechat github 手把手實現微信網頁授權和微信支付,附源代碼(VUE and thinkPHP) 概述 公眾號開發是痛苦的,痛苦在好多問題開發者文檔是沒有提到的,是需要你猜的. 在開發過程中翻 微信小程式之下拉列表實現(附完整原始碼)目錄 一、效果圖 二、實現原理 三、原始碼 四、專案下載 同類文章推薦: 更多幹貨關注公眾號: 一、效果圖 二、實現原理 跟網頁的下拉列表實現是一樣的,剛剛開始預設下拉的內容的是不顯示的(display:none),然後通過點選的時 WebApi接收微信小程式上傳的圖片(二進位制檔案流)並儲存在伺服器指定路徑找了好多天都沒找到小程式批量上傳圖片的方法,然後我現在的邏輯是: 取到上傳圖片的集合,迴圈呼叫小程式wx.UploadFile方法,依次上傳 後端取到檔案之後生成唯一MD5碼(相同的檔案生成的MD5碼是唯一的),然後取前兩位後兩位建立資料夾,儲存圖片前判斷下圖片是否存在。( 微信授權登入及儲存使用者資訊(fastadmin開發專案)最近做了一個微信投票系統,這是第一次開發微信專案,所以特此記錄一下 微信投票系統,最優先想到的就是授權登入,以及獲取使用者資訊 1.首先需要申請微信公眾號(此次使用的是服務號) 2.在微信公眾平臺基本配 微信小程式檔案預覽原始碼(可以直接用)微信小程式的檔案預覽 微信小程式的檔案預覽需要先使用wx.downloadFile下載檔案,然後使用下載檔案的臨時路徑通過wx.openDocument進行檔案的預覽 wxml程式碼: <button bindtap='preview'>簡歷預覽& [移動] Android推送方案分析(MQTT/XMPP/GCM)本文主旨在於,對目前Android平臺上最主流的幾種訊息推送方案進行分析和對比,比較客觀地反映出這些推送方案的優缺點,幫助大家選擇最合適的實施方案。方案1、使用GCM服務(Google Cloud Messaging)簡介:Google推出的雲訊息服務,即第二代的C2DM。優 微信公眾平臺java開發詳解(工程程式碼+解析)說明:本次的教程主要是對微信公眾平臺開發者模式的講解,網路上很多類似文章,但很多都讓初學微信開發的人一頭霧水,所以總結自己的微信開發經驗,將微信開發的整個過程系統的列出,並對主要程式碼進行講解分析,讓初學者儘快上手。在閱讀本文之前,應對微信公眾平臺的官方開發文件有所瞭解,知 微信開發者工具程式碼編輯區消失(程式碼未顯示)當微信開發者工具程式碼編輯區消失,寫的程式碼顯示不了時: 在編輯器控制檯輸入:openVendor 回車 會開啟一個資料夾:C:\Users\Administrator\AppData\Local\微信web開發者工具\User Data\Weapp 關於微信線上客服系統的實現(已經證實可用)1.微信線上客服系統需要認證服務號資格,如果沒有認證是沒辦法完成 和大家分享下我實現的方式: 微信前端接入資訊到資料庫->做一個JSP 頁面定時重新整理(或者在有資料插入的時候涮新)->取使用者發來的資料 主要是openid 和內容(也支援語音和圖片)到JSP 微信jssdk批量新增卡券介面(踩坑經驗)1)首先是官方介面文件: 2)坑一:接入準備 1、需要在微信公眾號平臺裡配置“JS介面安全域名”,位置:公眾號設定-》功能設定-》JS介面安全域名; 2、配置“網頁授權域名”(獲取openid時需要用到,怎麼獲取這裡就不說了),位置同上:公眾號設定-》功能設定-》網頁授權域名 3)坑二:ap 微信支付code=-1的問題解決(坑之下劃線)最近製作微信支付app支付,發現官方文件實在是很多坑,現把發現的問題列出如下。 關於支付返回值code=-1,發現網上很多文章都提及關於安卓簽名錯誤、包名錯誤等等,但是code=-1的情況其實不僅限於keystore簽名問題,以下是我們遇到的問題。 1、第一步“統一下單”中 微信小遊戲關係鏈的使用(排行榜的顯示)前言 微信小遊戲屬於微信小程式的一個類目,小遊戲對比於普通的h5遊戲,其很大的一個特點是微信提供的關係鏈資料的使用,你可以獲得同玩這個遊戲的微信好友的資料,或者你在某個群的使用者資料 概念 需要了解關係鏈api和開放域,主域等概念。以下著重介紹具體的api使用 w 微信內分享網頁,顯示圖片(PHP+JS版本)1、先登入微信公眾平臺進入“公眾號設定”的“功能設定”裡填寫“JS介面安全域名”。 2、需要指定微信公眾號的ID 和 密碼(後面設定會用到)。 3、需要三個PHP檔案 3.1 jssdk.php <?php class JSSDK { private $ap 微信小程式 java服務端記(附部署過程)1、檔案上傳,使用springmvc一直不行,後來看到別人有一樣的情況改成了serverlet就可以了2、因為要進行語音識別成文字,上傳的語音檔案是silk格式,需要用到訊飛的語音識別所以必須轉成wav,用到了kn007大神的這個工具https://github.com/kn 微信小程序 - 沈浸式抽屜(非組件)mage 分享 span img http image https draw 下載 高度有限制,可作為管理界面,點擊下載示例:drawer 微信小程序 - 沈浸式抽屜(非組件) 微信、陌陌 IM 的架構分析從現在網際網路的發展而言,IM和視訊(包括IM裡面視訊通話)是一個方向,這些都應該成為網際網路的基礎設施,就像瀏覽器一樣。現在IM還沒有一個很好的解決方案,XMPP並不能很好地做到業務邏輯獨立開來。從IM的本質來看,IM其實就是將一條訊息從一個地方傳輸到另外一個地方,這個和TCP很像,為什麼不實現一個高階點的 微信、陌陌等著名IM軟體設計架構詳解從現在網際網路的發展而言,IM和視訊(包括IM裡面視訊通話)是一個方向,這些都應該成為網際網路的基礎設施,就像瀏覽器一樣。現在IM還沒有一個很好的解決方案,XMPP並不能很好地做到業務邏輯獨立開來。從IM的本質來看,IM其實就是將一條訊息從一個地方傳輸到另外一個地方,這個和TCP很像,為什麼不實現一個高階點的 shareSDK的初步使用(shareSDK中微信、qq等兼容問題,以及cocoapods支持架構沖突問題的解決)hone 組件 友盟 環境 end 信息 uil platform i386 第一次使用shareSDK來做第三方分享,可是。昨天一天都是在調試bug,一直錯誤不斷! 先說下我的開發環境: xcode:5.1 真機調試:iPhone5s 我們都知道xcode5.1以後開 |