我需要拆分我的双工服务,并且想要将大型传输封装到一个服务中并从其他服务中检索。我曾经在一项服务中使用它,但现在需要从缓冲切换到流媒体,以考虑大小/内存调节。 我已经看到几个问题here和here,但它们已经很老了在服务间共享数据
我会在服务之间使用什么IPC命名管道?
服务A公开2种方法Guid Upload(stream)
,Stream Download(Guid)
,并使用的net.tcp流,这是运作良好,
现在我想坚持到服务B?这是命名的管道WCF吗?
服务C - >业务层 - >服务B与Guid
,检索和做项目的计算,坚持回到B
我的问题是用什么样的持久性/ 服务B
从客户的角度来看
- 客户端调用
ServiceA_Proxy.Upload(someLargeItem)
回报然后Guid
- 客户端调用然后
ServiceC_Proxy.DoSomeWork(GuidFromCall_1)
- 客户端调用
ServiceA_Proxy.Download(GuidFromCall_1)
- Client显示到终端用户
确实有一个例子,说明当我需要双工管道和流式传输时,“从缓冲切换到流式通信不需要您将逻辑分成更多服务”?一切都在ServiceC完成,但上传太大,我不能缓冲这些,所以我认为一个中央缓存将是要走的路 – Eric 2012-04-04 00:55:55
您的上传量有多大?传输方式存在问题还是传输完成后存储在内存中?你是对的,它不可能同时使用流媒体和双工,但你应该考虑重新设计你的解决方案,在这种情况下使用请求重放而不是双工。 – surfen 2012-04-04 01:17:54
增加/减少500MB - 2GB。当它是一个服务时,我会使用回调来处理上传块,处理并完成,并且稍后使用Dictionary进行检索。当我们签约时没有考虑到这个大小,所以它只被测试了大于100MB,现在我得到了OOM异常。正在寻找一个快速修复,但这成为相当骚动 –
Eric
2012-04-04 01:25:19