BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

.NET消息服务器Laharsub简介

| 作者 Abel Avram 关注 9 他的粉丝 ,译者 侯伯薇 关注 0 他的粉丝 发布于 2010年10月31日. 估计阅读时间: 3 分钟 | QCon上海2018 关注大数据平台技术选型、搭建、系统迁移和优化的经验。

Laharsub是一种开源的.NET发布-订阅消息服务器,用于实时的web应用程序,像聊天、在线写作、新闻或者股票交易更新等等。

Laharsub是一种构建在三层架构之上的发布-订阅消息服务器: 前端——客户端,中间层——web服务,后端——带有发布-订阅功能和存储能力的系统。 客户端一般是浏览器,但是可以是所有已知能够做出HTTP请求的程序。 中间层是一种WCF的HTTP服务,它会从客户端接收消息,并向其发送消息,而后端会包含真正的与消息相关的逻辑。

客户端可以创建主题,并通过RESTful 的API向它们提交消息,而其它客户端会通过HTTP的长轮询机制(long polling)来订阅多种主题。 客户端使用一个请求就可以订阅多个主题。 Laharsub提供了jQuery、Silverlight和.NET 4.0的客户端,负责设计结构、多路传递以及长轮询的管理。 据项目的协作者Tomasz Janczuk所说,Laharsub在将来会使用WebSockets。

据Janczuk所说,由于web服务没有状态,因此可以很好地伸缩。 Laharsub具有能够在内存中扩展到上千用户的后端,但是仅限于单独的节点。 对更好的可伸缩性感兴趣的人提出了这样的建议,“提供发布-订阅功能的自定义后端,消息存储,并扩展到web farm的多个节点中”。 web服务会以Windows service或者控制台应用程序的形式运行。

订阅主题的示例如下:

GET http://laharsrv/ps/sql/subscriptions/volatile?subs[0][topicid]=14&subs[0][from]=1 HTTP/1.1
Host: laharsrv

响应会是这样的:

HTTP/1.1 200 OK
Content-Length: 406
Content-Type: multipart/mixed; boundary=1d69db84.154e.47f7.be93.cc8b65b6efd0
Server: Microsoft-HTTPAPI/2.0
Date: Tue, 18 May 2010 23:14:24 GMT

--1d69db84.154e.47f7.be93.cc8b65b6efd0
Content-Type: text/plain; charset=UTF-8
Content-Description: 14/929

Hello, world!

该项目位于CodePlex中,遵从新的BSD许可(BSD)。 在这里发布了一个页面,其中描述了在服务器上应用的压力测试和性能结果。 对未来的计划包括将服务器部署到Windows Azure和Amazon EC2上的能力,同时包括扩展到多台计算机上的功能。

查看英文原文:Laharsub, a .NET Messaging Server

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT