国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術文章
文章詳情頁

php - 數據庫與邏輯應用分離的情況下怎么保證信息同步,或者叫安全

瀏覽:75日期:2022-06-13 16:04:13

問題描述

我不太明白這個詞怎么表達

是這樣的,現在有一臺服務器運行數據庫(server),另外一臺運行php程序(client),瀏覽器(Browser)訪問client,然后client邏輯判斷后通過http協議對server中的數據庫進行CURD操作

有個問題就是,如果Browser的用戶操作過快,而server和client之間http請求太慢的話,就會導致client上獲取的數據更新不及時,導致一些錯誤。。

栗子:一個用戶只能買一個商品,用戶點擊之后,client先讀取server的數據,判斷是否已經購買,沒有購買的話進行寫入操作,然后購買完成,但是如果用戶連著點擊兩次購買,兩次操作一次進入client,然后由于client和server之間網速或者其他一些問題,寫入操作沒有及時完成造成兩次購買操作的判斷為此用戶未購買,于是會有兩次寫入server數據庫的操作,就會造成錯誤。。

這個問題屬于什么?應該怎么解決?

問題解答

回答1:

用內存數據庫或者NOSQL數據庫來跟客戶端交互,然后內存數據庫跟MYSQL這類關系數據庫“同步”。

如果客戶端某些操作需要數據庫查詢來判斷,這個時候如果是高并發的情況很容易就產生錯誤了。以前就經歷過,比如用戶注冊判斷是否有重名的,理論上是先查詢數據庫是否有該用戶名存在然后插入,然而實際運營中這個邏輯竟然被打破了,發現了重名用戶。

所以把核心的數據放到關系數據庫,對速度有要求的使用內存數據庫。適當的使用緩存以減小重復的查詢。

回答2:

一般的解決方案是服務器先提供 token,有 token 才能成功操作,用完就會被標記過期。這樣既可以保證不會重復操作,還可以做限流等功能。

而你的問有些不對題。如果是數據庫與業務服務器之間通信的安全性,可以使用 SSL 協議。

還有一種做法是采用一致性哈希算出業務 id,不用自增 id。這樣就可以保證很多操作冪等,有興趣可以試試看。

回答3:

謝邀,你的栗子客戶端做判斷即可

回答4:

分配token之類的當然是非常好的解決方案。不過在實際應用中我覺得下面這種方案更加簡潔高效:

前臺js里面處理下,點擊【購買】按鈕后彈出全屏遮罩,阻止用戶點擊第二次,當后臺成功后再把遮罩干掉。此外也可以使用標志位的方式,或者使用經典的debounce/throttle算法。

后臺在購買流程中也判斷下,短時間內(比如10秒內)的重復購買的時候直接返回“請不要重復操作”的錯誤。數據庫方面可以考慮使用事務并把事務的隔離級別提高,或者使用鎖。

一般前臺js里面處理下后,很多問題都能避免了。除非有惡意用戶。

回答5:

加并發鎖,可以使用redis,memcached等,當一條請求完成后再釋放鎖

// 操作的原子性,如該key在有效時間30秒被設置過返回0,一般請求超時為30秒$redis->set($lock_key, 1, array('NX', 'EX'=>’30’));回答6:

從上面看你有兩臺服務器,一臺運行php的server,另外一臺db的server。然而你兩臺server之間的通訊為什么要使用http協議呢?而不是走mysql(假設你用的是mysql)默認的連接協議了?也就是說你應該在php中直接連到你server的數據庫,然后操作DB。

對于你例子中提到的連續插入問題,可以通過表結構設計來完成,可以給字段添加唯一索引UNIQUE。另外還有一些其它方法,個人比較推薦唯一索引做法

主站蜘蛛池模板: 亚洲三级视频在线观看 | 手机福利片 | 一级片免费的 | 草草久| 亚洲欧美日韩中文字幕在线一 | 国产在线观看91精品一区 | 亚洲毛片在线 | 全部免费毛片在线 | 欧美特黄特色aaa大片免费看 | 中文字幕国产一区 | 日本一区二区三区不卡在线视频 | 一区二区三区影视 | 久久网站免费 | 亚洲视频在线网站 | 国产精品大片天天看片 | 亚洲成aⅴ人片在线观 | 精品国产欧美精品v | 中国人免费观看高清在线观看二区 | 国产精品一区伦免视频播放 | 成人三级在线播放线观看 | 精品一区二区视频 | 免费在线观看a级毛片 | 国产成人一区二区在线不卡 | 国产精品久久久久影院色老大 | 狠狠色狠狠色综合久久第一次 | 免费视频一区二区三区四区 | 一区二区三区视频 | 亚洲高清视频在线观看 | 日韩在线 | 中文 | 国产性较精品视频免费 | 国产在线步兵一区二区三区 | 成年女人毛片免费播放视频m | 国产欧美亚洲三区久在线观看 | 综合久久一区二区三区 | 深夜爽爽爽福利动态图 | 欧美乱爱 | 婷婷在线成人免费观看搜索 | 黄色毛片视频校园交易 | 俄罗斯18videosex性欧美成人 | 久久精品.com | 国产一及毛片 |