我的一个朋友过去告诉我他看过ServiceStack.说它看起来不错,但它没有异步支持所以在他的书中,它不是一个使用这个框架的选项(没有好的,如果没有异步),我必须有点同意.
除非ServiceStack添加了异步,否则不确定这对我来说是不是一个好选择.
它让我想知道a)如果没有异步,stackoverflow真的使用它吗?b)如果a是,那么它显然必须是一个高度定制的版本,它可能有异步吗?
我相信来自stackoverflow的人可以回答这篇文章.
myt*_*thz 15
在最需要的功能,服务器端异步支持已被添加其中ServiceStack HttpHandlers的,现在从一个共同继承HttpAsyncTaskHandler
实现基类IHttpAsyncHandler
.这使您可以通过多种方式从服务返回异步任务,如http://bit.ly/1cOJ3hR所示
例如,服务现在可以有一个对象,任务或异步任务返回类型,可以返回已启动或未启动的任务(我们将自己启动).这种转变尽可能顺利,所有现有服务都像以前一样继续工作,所有测试都通过.
在匹配新的服务器端异步故事并且现在所有项目都已升级到.NET 4.0时,所有服务客户端都已更改为返回所有异步操作的.NET 4.0任务,因此可以在C#的async/await方法中使用它们.Async的一些例子:http://bit.ly/17ps94C
Async API还提供OnDownloadProgress回调,您可以使用它来在UI中提供进度指示器,例如:http://bit.ly/19ALXUW
HTTP Utils也添加了异步重载,它为调用外部第三方(即非ServiceStack)HTTP服务提供了一个很好的API.
不确定实际测量结果是什么导致Async对于维护高性能系统是强制性的,因为良好的缓存策略将提供比Async更好的性能.有许多高性能服务和网站不使用异步,例如,YouTube使用1M线阻塞Python构建,每天处理40亿次视图,最近还发布了如何获取Django(一个庞大的Python Web框架)的帖子)通过利用HTTP缓存扩展到80亿页面查看.对于大多数多线程站点/服务(例如.NET/Ruby/Python),阻塞IO是常态,而不是异步 - 这应该测量所有过早优化以计算它是否实际产生任何最终用户/利用率的好处.
StackOverflow本身是一个ASP.NET MVC网站,它使用标准的同步MVC控制器,并采用良好的缓存策略,利用本地和分布式缓存,并使用ServiceStack的JSON序列化程序.因此,即使使用同步MVC控制器,StackOverflow也具有极佳的服务器利用率,可处理95M页面浏览量/月.StackOverflow Careers 2.0使用ServiceStack及其RedisMQ支持其所有BackOffice操作.
归档时间: |
|
查看次数: |
3190 次 |
最近记录: |