我打算在应用层和数据库层之间构建另一层,以减少数据库访问。
有200个应用服务器和一个巨型数据库服务器。
我不想让200台服务器查询数据库服务器。因此计划在之后构建另一个层并缓存数据,如缓存场。此层中的服务器将定期查询数据库并将结果缓存在服务层中,客户端将查询WCF服务器。
我不是在谈论我已经拥有的分布式缓存。
我不熟悉WCF,为此目的实现它是一个很好的选择吗?
你会推荐REST吗?或网络服务?
答案 0 :(得分:3)
WCF 是 Microsoft堆栈上的Web(和其他)服务的新标准,它还支持构建基于SOAP和基于REST的服务。
它也非常适合处理内部(公司内部LAN /内部网 - 使用快速高效的TCP / IP通信)以及面向外部的服务。如果您需要支持,它可以与Windows Azure和云连接。它可以与任何SOAP或REST客户端互操作,它具有高度可配置性,高度可扩展性,并且非常有用,并提供统一的编程模型。如果需要,它可以与消息队列连接 - 所有这些都具有相同的编程经验。
基于WCF,您可以轻松定义数据库模型并将其公开为基于REST的OData源 - 您将在几分钟内将数据库放在网上(如果您喜欢冒险并希望这样做... ..但它至少是可能的!)。
所以:是! WCF绝对是您要走的路!
至于资源:MSDN WCF Developer Center有从初学者的教程到文章和示例代码的所有内容。
另外,请查看screen cast library up on MSDN,了解一些非常有用的10-15分钟信息块,其中包含与您可能感兴趣的WCF相关的任何主题。
答案 1 :(得分:1)
标准SOAP Web服务就像使用WCF时一样简单,您可以同时控制服务器和客户端。
您在服务器端需要做的就是定义您的运营合同和数据合同,客户将能够构建代理类来自动访问您的Web服务。
在定义操作和数据协定时,您需要学习一些东西,但一旦完成,客户端可以非常容易地在设计时戳服务,访问生成的WSDL,并自动生成代理类以访问新的与他们的数据合同的操作。
答案 2 :(得分:1)
我很少使用REST作为应用程序服务器和数据库服务器之间的主要交互机制。如果交互的两端都由您控制并且位于同一数据中心并且可以同步更新,那么创建RESTful系统所需的额外工作可能会被浪费。
就个人而言,我更倾向于看一下消息传递类型系统。像nServiceBus这样的东西。