以下是閒聊
還有最近工作上第一次接觸web service的效能優化心得
※ 引述《screwup (sss)》之銘言:
: 好像偏離原題 不過我有個疑問XD
: 高僧A的push大法在web app上螢幕關掉就不能push的原因是甚麼??
: 難道他是用websocket?
: 如果是long polling是沒差的吧?long polling非同步push都是server端處理的
: long polling斷掉就重新讓ajax再連上去就好了阿
: 有請各位大大解答
如果是在M$環境下的web service
可以考慮用C#的SignalR去作WebServer跟WebClinet的連線處理部分
http://blogs.msdn.com/b/msdntaiwan/archive/2013/09/09/
signalr-reimagine-web-development.aspx
可以參考此篇的說明
signalR的優點 在於它會依照web clinet的條件 選擇建立
web socket, long polling...或者其他連線方式
並且可以減少web clinet透過ajax不停向web server作資料更新的請求(polling)
因為透過在web server上註冊每個web clinet 在資料更新後 作出廣播
: ------------------------------------------------------------------------
: 如果是關掉後無法在左上角顯示推播的話 這不是一開始就會知道的事情嗎...
: 中國的高僧A根本來亂的XD
:※ 發信站: 批踢踢實業坊(ptt.cc)
:◆ From: 36.229.173.187
:→ lovdkkkk:應該有別的問題, 不然 WebSocket 也可以由 ajax 起頭再轉 01/04 15:59
:→ sing10407:他應該是說關掉網頁就不能推播? 01/04 16:12
:推 f1234518456:應該是想要把網頁關掉以後能在最上方訊息顯示吧? 01/04 16:21
:推 azureshin:主管要的是螢幕關畢也能像line一樣收到訊息。但瀏覽器在 01/04 17:44
:→ azureshin:螢幕關閉後會睡眠。結局明天po, 今晚吃尾牙 01/04 17:44
:→ kvjo:那幹嘛不用 mac , google 的原生push就好 = = 01/04 18:33
:→ kvjo:是要自己打造一個push機制??? 那整個環境機制都要自己弄 01/04 18:33
:→ kvjo:用mobile web 至少也應該有導入一些 hybird framework吧 01/04 18:35
:推 kinanson:做一個主控台程式,30秒執行一次,去偵測db資料,有新資 01/04 19:06
:→ kinanson:料就在右下角跳出通知,點了就開連結.....呃....亂入 01/04 19:06
如果是MS環境下 MS-SQL可以開啟Service Broker
並且C#使用sqlDependency 對指定的SqlCommand 建立關聯
當指定的SqlCommand 資料變動時 會送出event
就可以減少polling的情況
http://www.cnblogs.com/gesenkof99/archive/2008/12/19/1358584.html
可以參考此篇
:推 MacPerson:提個疑問 如果真的不用 SOCKET 真的用樓上說的 偵測DB有 01/04 20:19
:→ MacPerson:資料 就跳出提示訊息,後果是怎樣@@? 01/04 20:19
:推 MacPerson:我猜DB會先掛... 01/04 20:22
:推 kinanson:回樓上,一個db如果每秒能承受上萬人上線瀏覽,為何30秒 01/05 00:29
:→ kinanson:一個查詢會掛掉呢???? 01/05 00:29
題外話 一個能服務多人的大型web 系統
通常DB的output操作 大於 input
所以在系統設計上必須把IO操作切割開來
並且在output用的server上建立memcache減少DB存取 並加快client的資料取得
然後透過類似如上所提的signalR的機制 減少client對server無謂的polling浪費資源
總之 就是用空間(memcache)換時間(CPU tasks)
而DB跟web clinet中間沒有用 中介層(ex:db server)做安全性與效能上的處理
真有點恐怖...
:推 MacPerson:每秒這麼多的INSERT與SELECT 「感覺」有點不妙 01/05 00:56
並且有可能insert跟update沒做data lock處理
然後導致 資料越來越髒亂 然後就gg
:→ MacPerson:以前維護過得系統常常LOCK,所以直覺DB HOLD不HOLD的住 01/05 00:57
:→ MacPerson:當然如果DB真的承受的住 另當別論... 我也只是猜.. 01/05 00:58
:推 MacPerson:註:之前維護的SERVER,是別的場淘汰過來的,經歷那個系 01/05 01:05
:→ MacPerson:統,我SQL的功力也提昇了很多@@ 01/05 01:06
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 123.240.239.100