<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[向东博客 专注WEB应用 构架之美 --- 构架之美，在于尽态极妍 | 应用之美，在于药到病除]]></title> 
<link>http://www.jackxiang.com/index.php</link> 
<description><![CDATA[赢在IT，Playin' with IT,Focus on Killer Application,Marketing Meets Technology.]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[向东博客 专注WEB应用 构架之美 --- 构架之美，在于尽态极妍 | 应用之美，在于药到病除]]></copyright>
<item>
<link>http://www.jackxiang.com/post//</link>
<title><![CDATA[[转载评论]Web的Server PUSH架构将是未来主流  ]]></title> 
<author>jack &lt;xdy108@126.com&gt;</author>
<category><![CDATA[Php/Js/Shell/Go]]></category>
<pubDate>Mon, 17 Sep 2012 10:08:36 +0000</pubDate> 
<guid>http://www.jackxiang.com/post//</guid> 
<description>
<![CDATA[ 
	Rango&nbsp;&nbsp;18:02:56<br/>http://matyhtf.iteye.com/blog/1679051<br/>回忆未来-向东&nbsp;&nbsp;18:05:11<br/>对你这篇文章提到了Erlang，其中说到Push这一块，也是我研究的原因，你这块有实例吧？Push到浏览器的实例。<br/>当年搜狐的白社会就是用的Erlang能并发2W，但没有做起来，技术已经是相当先进了。<br/>Rango&nbsp;&nbsp;18:05:56<br/>只有测试的例子。目前还没有完整的方案<br/>呵呵，并发2W不算什么。<br/>搞到20W都不成问题<br/>回忆未来-向东&nbsp;&nbsp;18:06:21<br/>带逻辑的，所以并发可能要低一点儿。<br/>Rango&nbsp;&nbsp;18:06:38<br/>并发跟这个没关系，RPS和同时连接数<br/>...<br/>Rango&nbsp;&nbsp;18:22:01<br/>对啊。一直保持的，长连接<br/>需要在你的代码中自己去选择关闭<br/>回忆未来&nbsp;&nbsp;18:22:14<br/>为何要长连接？<br/>Rango&nbsp;&nbsp;18:22:26<br/>swoole_server_close<br/>...<br/><br/><br/><br/>第一代的Web技术，是基于HTML的静态页面，用于发布静态的内容。程序员们就想出来通过程序来生成HTML的技术，将内容保存于数据库中，然后通过SQl和模板引擎等技术去生成HTML页面。<br/><br/> <br/><br/>第二代的Web，开始大量使用前端程序，使用Ajax等方式动态主动触发事件，从服务端拉取数据，并且增加了前端的程序逻辑。从而实现了Web页面上的交互。<br/><br/>不过，随着技术的发展，前两种架构已经远远不能满足信息交互需求了。通过采用Server PUSH的架构，服务器端可以主动向Web推送数据，从而达到实时交互，这一定会是未来的主流。比如A，B，C3人同时在一个页面上浏览，A对B进行了评论，并且提到了C。传统的架构，B，C将无法感知到，只有B，C再次拉取内容时，才会得到此信息。显然B ，C错误了与A交互的最佳时机，而且得知信息的时间延后了很多。<br/><br/> <br/><br/>传统的PULL模式，也可以通过定时轮询的方式来尝试拉取数据。但这种技术1是并不是实时的，信息还是需要到了一定时间间隔才可以得到。2，这种方式可能大部分请求是无效的，白白浪费了一次网络请求。还造成了web Server的负载大大增高。<br/><br/>真正的PUSH技术目前有3种，WebSocket，目前还不够成熟，而且IE浏览器或其他低版本浏览器不支持。Flash Socket，虽然可以实现，但需要依赖Flash第三方组件，而且可能会被防火墙或者其他安全策略拦截，实际效果不理想。XHR轮询，这种方式目前是最成熟的解决方案，浏览器端开启KeepAlive，Server使用epoll等异步IO方式，效率非常高，实测效果非常好。目前Facebook、人人网都使用此模式。<br/><br/> <br/><br/>目前大部分PUSU架构，都是用Erlang、Node.js等语言去实现。但Web2.0时代，基本上大部分网站都用PHP来实现的。改用其他编程语言实现，与现有架构就会不兼容。PHP也有libevent的Server实现方式，不过存在各种问题，并不好用。<br/><br/> <br/><br/>Swoole通过C写了内置Server，并作为PHP扩展，提供了非常好的可编程性。Server本身的实现也非常高效，采用了多线程Epoll，全异步驱动，读写分离的方式。可以很好的利用到多核。<br/><br/>https://github.com/matyhtf/php_swoole 
]]>
</description>
</item><item>
<link>http://www.jackxiang.com/post//#blogcomment</link>
<title><![CDATA[[评论] [转载评论]Web的Server PUSH架构将是未来主流  ]]></title> 
<author> &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate> 
<guid>http://www.jackxiang.com/post//#blogcomment</guid> 
<description>
<![CDATA[ 
	
]]>
</description>
</item>
</channel>
</rss>