作者gpmm (銀色)
看板PHP
標題Re: [請益] 虛擬主機的安全性?
時間Wed Apr 25 17:07:03 2012
前面部份就不回了,好懶 :P
: : 推 LaPass:我覺得最不可思議的是到底要怎麼用PHP寫出Facebook.....
之前看你的推文回文一直覺得的你是超級實做派的,
所以這句話從你這裡說出來格外奇怪 XD
: facebook 是 php 寫得啊. 只是流量大了之後就開始用些有的沒的.
的確,難度不是在於「要怎麼用PHP寫出Facebook」,
FB 上哪樣功能是超脫了 html + css + js + back end language + db 嗎?
完全沒有,就是 新增修改刪除檔案 / 新增修改刪除資料,
選擇任何一種 backend language 都可以「做出其中任一樣功能」
語言只是工具,
難是難在如何發想、架構、部屬、組織、規劃;
如何在億級使用量下盡可能優化,提昇反應速度、服務數量;
還要維持資料庫 / 檔案同步誤差在極小的範圍裡。
: : 推 dio833:如果有裝httpfox之類的軟體觀察,facebook透過持續連線來達 04/24
: : → dio833:成即時反應狀態,每次連線大約45秒,一旦有事件發生,立刻 04/24
: : → dio833:傳遞狀態碼到前端AJAX更新畫面,這克服了HTTP的無狀態特性 04/24
: : → dio833:但是我猜一般的web server大概很難承受這樣的HTTP連線方式 04/24
: : → dio833:用HTTP來模擬socket的溝通方式,代價應該很高@@ 04/24
: : → dio833:好像又歪樓了>< 04/24
呃,其實 socket / http 不是這樣的…(其實主要是出來回這個)
詳細的就不解釋了,放一些資訊給有需要的人自己看,
socket:
http://en.wikipedia.org/wiki/Internet_socket
http:
http://en.wikipedia.org/wiki/Http
: : 推 senser:FB的php是complied過的..另外持續連線那個是comet 04/25
: comet server aka. push server. 後端的確是的 socket server.
: 通常模式是 user <-> http(relay) <-> socket server
: 我是幹過 user <-> socket server(第一次進來的人, 我會叫socket server
: 送 http header), 但在處理短時間重複進來的人會爆麻煩,
: 代價會不會高? 一般server用ab打自己(這好像有點蝦), 同時連線到5k
: 沒有問題(file io only), 若是有DB連線那又是另一個故事了.
Comet:
http://en.wikipedia.org/wiki/Comet_(programming)
某位前輩的 Comet 介紹:
http://www.josephj.com/entry.php?id=358
另外之前跟著 nodejs 一起冒出來的 socket.io:
http://socket.io/
也值得一看,省下很多功夫… XD
: : 推 kusoayan:FB不是開發出什麼 Hip hop PHP 嗎XD 04/25
: hiphop 是 php 轉 C 讓執行效率更好? 印象中是這樣啦.
hiphop-php 本來就是 opensource 放在 git 上,
有興趣的可以自己抓下來玩玩 :P
https://github.com/facebook/hiphop-php
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 175.181.150.81
※ 編輯: gpmm 來自: 175.181.150.81 (04/25 17:11)
→ dio833:推,雖然我抓不到重點>< 04/25 17:23
→ gpmm:socket 是網路通訊的根本,http 底層本來就是 socket XD 04/25 17:26
→ gpmm:而且 comet 和 server side 有沒有開 socket 不是一定關係 04/25 17:27
→ gpmm:(我指的是單獨開 socket 來接 comet) 04/25 17:27
推 dio833:感謝說明 04/25 17:27
推 kerash:其實我對這種有一點點不太了解,像類似機制都得在主機安裝 04/25 17:34
→ kerash:一些套件嗎? 04/25 17:34
→ gpmm:是指那一部份 :O 04/25 17:36
推 kerash:nodejs,comet 這種 04/25 17:37
→ kerash:應該說就是這種持續連線及時反應的部分@@ 04/25 17:40
→ gpmm:如果 server 端不只是 php 可以處理的話,就需要另外的服務 04/25 17:45
→ gpmm:來幫忙跑了,例如用 nodejs 跑 socket.io 04/25 17:45
→ gpmm:如果要跑 nodejs 當然就需要相關的主機環境來運行 04/25 17:46
推 kerash:joseph 大的這篇其實我有看過(其實我有加入過最愛>///< 04/25 17:53
→ kerash:因為有些的安裝我不太確定是給誰的,個人沒這種經驗QQ 04/25 17:54
→ kerash:不過謝謝說明,我會在多研究一下! 04/25 17:54
→ gpmm:樓上加油 XD 04/25 18:04
→ kerash:感謝QQ,另外我是用window自己架私人主機,有些安裝指令好 04/25 18:07
→ kerash:像跟一般軟體安裝不同,這種也有辦法安裝嗎? 04/25 18:07
→ gpmm:nodejs 可以裝在 windows 下(咦你是要問這個嗎?) 04/25 18:11
推 MOONRAKER:讚 04/25 18:24
推 kerash:歐應該說安裝方法QQ.. 因為很多教學都是打指令的 04/25 18:52
→ kerash:不過知道可以安裝就好,我再找機會裝裝看! 04/25 18:52
推 LaPass:那樣說是因為,我覺得PHP要處理一些複雜的東西會很麻煩。 04/25 21:03
推 EAFV:node.js還不夠穩 流量大的話還不足以用來當正式環境使用 04/26 00:40
→ EAFV:玩玩倒是可以... 04/26 00:40
→ gpmm:我到覺得 nodejs 已經發展到一個還滿穩定的狀態了 :P 04/26 11:37
→ gpmm:而且搭配 nginx 服用會更好 04/26 11:38
推 senser:我聽FB的Architect說過 他們用php是不得已 因為Mark一開始 04/26 16:53
→ senser:用php寫 後來規模變大 很多服務都是基於php 也很難改 04/26 16:54
→ senser:然而php效能負擔太大 所以開發了Hiphop這個workaround 事實 04/26 16:56
→ senser:上他不是complier 他是把php直接翻轉成優化過的c++ 然後用 04/26 16:57
→ senser:g++等工具去編譯 事實上他正努力脫離php的噩夢 像是message 04/26 16:59
→ senser:或是feed右邊那個panel的東西 已經用其他語言了 然而官方 04/26 17:00
→ senser:說法 用php是為了增進開發速度 我個人是比較相信他跟我講的 04/26 17:02