原创 web端實現消息實時性有哪些方式

短輪詢: 基於http協議,客戶端每隔一定時間與服務端建立http連接,無新消息就返回,有消息就把數據帶回來。 優點:好理解,實現簡單 缺點:隔的時間不好定,太長會影響實時性,太短就會對服務器壓力大,浪費資源 長輪詢: 同樣也基於http

原创 分頁查詢的幾種思路

背景:今天發現一個獲取list的接口返回空的數據,一看日誌發現是超時了,不由得就分析起來了原因,看了代碼發現應該是懷疑兩個地方有些問題,一個是獲取數據的地方,一個是獲取count的地方。 於是連上只讀庫測試查詢語句,發現了count那裏真

原创 db與緩存一致性

背景: 我們項目裏的代碼大量使用了redis緩存,數據更新時,都是先操作db再淘汰緩存,好像也沒有遇到什麼問題,但心中還是不解,先操作db再淘汰緩存,不是會有數據不一致的情況嗎? db是新的了,再淘汰緩存之前,緩存還是舊的。於是網上查閱記

原创 什麼是僞共享(false sharing)

今天看go的sync.pool的代碼,發現了一個比較陌生的名詞 false sharing , 之前沒聽說過,就去查了下,瞬間學到了 type poolLocal struct { poolLocalInternal //

原创 使用go來實現一個簡單的負載均衡

How does our simple load balancer work 負載均衡有不同的負載策略 Round Robin:輪詢,就是每個請求依次打到每個服務商去 Weighted Round Robin :加權輪詢,額外加了權重 L

原创 在go裏像crontab一樣,實現你的定時任務

下載 go get -u -v github.com/robfig/cron 說明 1.crontab命令見https://www.runoob.com/linux/linux-comm-crontab.html 2.一個比較好用的cro

原创 mongo——分片(sharding)

概念 隨着應用系統規模的增長,成本會變得越來越高,而且有時候無法實現使用單臺機器來處理負載壓力。這種問題的一個解決方案就是匯聚大量低價、低處理能力的機器來解決問題。mongodb的分片就是爲解決這種問題而設計的:把超大數據使用更小的片進行

原创 mongo——複製

複製 複製是跨多個mongodb服務器(節點)分佈和維護數據的方法。mongodb可以把數據從一個節點複製到其他節點並在修改時進行同步。這種類型的複製通過一個叫可複製集的機制提供。集羣中的節點配置爲自動同步數據,並且在服務器出錯時自動災備

原创 後端存儲實戰一

訂單系統的核心功能和數據 必備的功能,包括但不限於如下: 1.創建訂單 2.隨着購物流程更新訂單狀態 3.查詢訂單,包括用訂單數據生成各種報表 爲了支撐這些必備功能,在數據庫中,我們至少需要有這樣幾張表 1.訂單主表:也叫訂單表,保存訂單

原创 kong自定義插件的部署

1.插件部署 官方文檔有2種, LuaRocks和手動部署 這裏因爲對lua的熟悉有限,選用手動部署 注意:每個節點都需要部署 1.插件的目錄 一個標準的Kong插件的目錄結構是:kong.plugins.<plugin_name>.<m

原创 常用的認證&授權方法以及在kong上的實踐

  基本介紹 優 缺 使用場景   基本介紹 優 缺 使用場景 basic auth HTTP Basic Auth 在HTTP中,基本認證是一種用來允許Web瀏覽器或其他客戶端程序在請求時提供用

原创 kong自定義插件實現——使用post發送請求

kong插件機制 代碼實現 -- handler.lua local BasePlugin = require "kong.plugins.base_plugin" -- 調用模塊 local zhttp = require "

原创 關注feed流推拉

1.方案一 推模式(寫擴散): 1.用戶發表的內容插入到所有粉絲的接收隊列裏,粉絲拉取關注流從自己的接收隊列里拉取 2.用戶撤銷發表,從每個粉絲的隊列裏刪除掉 3.新粉絲新關注了此用戶,將該用戶的發表內容插入到新粉絲的隊列裏 4.新粉絲取

原创 搞懂oauth2.0授權碼模式

最早的簡單登錄 圖1 去訪問一個網站,如果登錄的話,需要註冊,填一堆信息,用戶名密碼啥的,通常密碼是前端加鹽、哈希(md5,sha1等)然後再發給後端,後端存儲起來,不能直接存儲明文。然後再跳轉到登錄頁面,輸入用戶名和密碼,後端驗證用戶名

原创 JWT使用指南

什麼是jwt以及工作流程? 可以看下面的鏈接 http://blog.leapoahead.com/2015/09/06/understanding-jwt/ JWT是否要設置過期? 如果不設置過期的話,jwt一旦被中間人獲取,就可以永遠