作者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)
1F:→ dio833:推,虽然我抓不到重点>< 04/25 17:23
2F:→ gpmm:socket 是网路通讯的根本,http 底层本来就是 socket XD 04/25 17:26
3F:→ gpmm:而且 comet 和 server side 有没有开 socket 不是一定关系 04/25 17:27
4F:→ gpmm:(我指的是单独开 socket 来接 comet) 04/25 17:27
5F:推 dio833:感谢说明 04/25 17:27
6F:推 kerash:其实我对这种有一点点不太了解,像类似机制都得在主机安装 04/25 17:34
7F:→ kerash:一些套件吗? 04/25 17:34
8F:→ gpmm:是指那一部份 :O 04/25 17:36
9F:推 kerash:nodejs,comet 这种 04/25 17:37
10F:→ kerash:应该说就是这种持续连线及时反应的部分@@ 04/25 17:40
12F:→ gpmm:如果 server 端不只是 php 可以处理的话,就需要另外的服务 04/25 17:45
13F:→ gpmm:来帮忙跑了,例如用 nodejs 跑 socket.io 04/25 17:45
14F:→ gpmm:如果要跑 nodejs 当然就需要相关的主机环境来运行 04/25 17:46
15F:推 kerash:joseph 大的这篇其实我有看过(其实我有加入过最爱>///< 04/25 17:53
16F:→ kerash:因为有些的安装我不太确定是给谁的,个人没这种经验QQ 04/25 17:54
17F:→ kerash:不过谢谢说明,我会在多研究一下! 04/25 17:54
18F:→ gpmm:楼上加油 XD 04/25 18:04
19F:→ kerash:感谢QQ,另外我是用window自己架私人主机,有些安装指令好 04/25 18:07
20F:→ kerash:像跟一般软体安装不同,这种也有办法安装吗? 04/25 18:07
21F:→ gpmm:nodejs 可以装在 windows 下(咦你是要问这个吗?) 04/25 18:11
22F:推 MOONRAKER:赞 04/25 18:24
23F:推 kerash:欧应该说安装方法QQ.. 因为很多教学都是打指令的 04/25 18:52
24F:→ kerash:不过知道可以安装就好,我再找机会装装看! 04/25 18:52
25F:推 LaPass:那样说是因为,我觉得PHP要处理一些复杂的东西会很麻烦。 04/25 21:03
26F:推 EAFV:node.js还不够稳 流量大的话还不足以用来当正式环境使用 04/26 00:40
27F:→ EAFV:玩玩倒是可以... 04/26 00:40
28F:→ gpmm:我到觉得 nodejs 已经发展到一个还满稳定的状态了 :P 04/26 11:37
29F:→ gpmm:而且搭配 nginx 服用会更好 04/26 11:38
30F:推 senser:我听FB的Architect说过 他们用php是不得已 因为Mark一开始 04/26 16:53
31F:→ senser:用php写 後来规模变大 很多服务都是基於php 也很难改 04/26 16:54
32F:→ senser:然而php效能负担太大 所以开发了Hiphop这个workaround 事实 04/26 16:56
33F:→ senser:上他不是complier 他是把php直接翻转成优化过的c++ 然後用 04/26 16:57
34F:→ senser:g++等工具去编译 事实上他正努力脱离php的噩梦 像是message 04/26 16:59
35F:→ senser:或是feed右边那个panel的东西 已经用其他语言了 然而官方 04/26 17:00
36F:→ senser:说法 用php是为了增进开发速度 我个人是比较相信他跟我讲的 04/26 17:02