过去我们从网络上获得信息都是通过拉,浏览器定期检查RSS,很多事件的激发都是通过拉机制实现的。Webhooks或PubSubHubBub将改变这个现状。
PSHB hub是一个基于云计算内容发布中心,发布者将他们的内容数据发布到合适的hub通道中,订阅者通过hub通道接受数据. hub的美丽之处在于:HUB能够将数据广播推送到每个订阅者那里。容易伸缩,并且是实时推送,每当发布者有什么新的内容,就能够发布到PSHB, 而HUB知道是谁订阅了这些信息,将会立即将新数据广播到所有订阅者。
说白了,过去都是poll拉机制,将来我们要进入推Push机制,这也许是Web 3.0的新模式。这个推模式实际就是Java JMS消息机制架构的推广。
个人认为这在技术已经可行,当前Java流行的异步非堵塞以及REST架构,例如基于xLightweb的异步推机制,加上REST架构,以及客户端的异步事件机制完全可以实现这个目标:
1. 服务器中间件技术:轻量可伸缩的非堵塞的异步的xlightweb,类似产品有MINA Grizzly、JBoss的Netty以及SUN的Grizzly
2.架构技术:RESTful http架构实现
3.客户端技术:基于Javascript的ZK 5 RIA已经实现了先进的事件异步监听模式
4. 需要一种新的内容协议,(publish/subscribe)协议。
open source PubSubHubBub:
是一个简单基于服务器对服务器的 web-hook-based pubsub (publish/subscribe)协议,可以看成是Atom (或RSS)的拓展。服务器之间使用 PubSubHubbub 协议通讯,能够在它们有兴趣的数据发生变化时,得到及时提醒和通知。
这个idea真正草设计之中,值得关注。
在OSCON '08大会上,Evan 'Rabble' Henshaw-Plath和Kellan Elliott-McCrea抛出新概念:
超越REST?使用XMPP PubSub构建数据服务
Kellan谈到了FriendFeed,它是一个让使用者知道他们的朋友共享了新项目的网站。在这个例子中,Kellan指出:为了给45000名使用者检查更新,FriendFeed向Flickr轮询了290万次。而且在这45000名使用者中,在任意时刻只有6700名处于已登录状态。这当然是一种蹩脚的内容更新检查方式。Kellan说道:“轮询太逊了!
轮询意味着使用一种RESTful Web服务来为每个使用者获得(GET)更新。与之相反,PubSub(Publish/Subscribe,发布/订阅)是一种使用异步消息传递协议的架构性方法,其中发布者和任何订阅者都是解耦的。在需要向大量客户端发送更新通知的场合下,这些特征使得PubSub成为一种合适的可伸缩性选择。
在这个幻灯片中,Evan和Rabble描述了Jabber(一种基于XMPP[Extensible Messaging and Presence Protocol,可扩展消息传递和现场协议]的PubSub服务)的各种优势:
1. XMPP工作在持久化连接之上
2. 它是有状态的(SSL变得便宜)
3. 被设计成为一个事件流协议
4. 联邦和异步的天性
5. 内置身份认证、安全和现场(presence)
6. 为此构建和部署了Jabber服务器
尽管使用PubSub进行通知是一个优秀的架构方法,但是很多人对幻灯片的标题存有疑问。Dare Obasanjo对此概括得非常好,指出REST并非一个“金锤”:
这个例子并非是指REST象Evan和Kellan的讲演标题暗示的那样不能进行伸缩,而是一个使用错误工具解决问题的例子。选择它的原因在于它碰巧能在其他场合很好的工作。
看来,REST是可以定位在Poll拉机制,因为REST是GET能手。这样总结一下:
1.REST是GET能手
2.SOAP是POST能手
3.PubSub是PUSH能手。
分享到:
相关推荐
功能说明: 环境说明: 开发软件:VS 2017 (版本2017以上即可,不能低于2017) 数据库:SqlServer2008r2(数据库版本无限制,都可以导入) 开发模式:mvc。。。
labview程序代码参考学习使用,希望对你有所帮助。
大米外贸商城系统 简称damishop 完全开源版,只需做一种语言一键开启全球133中语言自动翻译功能,价格实现自动汇率转换,集成微信支付宝 paypal以及国外主流支付方式,自带文章博客系统。 软件架构 基于MVC+语言包模式,增加控制台,API导入产品方便对接其他系统(带json示例数据)。 使用要求 PHP7.4+ MYSQL5.6+ REDIS(可选) 安装方法 composer install 打开安装向导安装 http://您的域名/install 特色 1、缓存层增加时间与批量like删除 2、API产品导入方便对接其他系统 3、增加控制台命令行,命令行生成语言翻译包 4、后台一键开启自动翻译模式,支持全球133中语言,由于google代理翻译需要收费,这个功能需要付费。 5、可选购物车与ajax修改购物车产品 6、一键结算checkout 7、增加网站前台自定义路由 方便seo 更新日志 v3.9.7 集成鱼码支付接口,方便个人站长即使收款到账使用 v3.9.3 更新内容 1:增加ueditor与旧编辑器切换 2:增加可视化布局插
labview程序代码参考学习使用,希望对你有所帮助。
labview程序代码参考学习使用,希望对你有所帮助。
毕设和企业适用springboot人工智能客服系统类及旅游规划平台源码+论文+视频