日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關咨詢
選擇下列產品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關閉右側工具欄

新聞中心

這里有您想知道的互聯(lián)網營銷解決方案
WCF負載平衡實現(xiàn)方法總結

WCF框架是一款功能比較強大的開發(fā)工具。對于一個經驗豐富的開發(fā)人員來說,對這框架的應用應該是相當熟悉的。提高WCF應用程序能力的方法之一是通過把它們部署到負載平衡的服務器場來擴展它們。#t#

使用標準的WCF負載平衡技術,包括諸如 Windows 網絡負載平衡這樣的軟件負載平衡器以及基于硬件的負載平衡設備,可以使 WCF 應用程序實現(xiàn)負載平衡。

以下各節(jié)討論對使用各種系統(tǒng)提供的綁定生成的 WCF 應用程序實現(xiàn)負載平衡時的注意事項。

基本 HTTP 綁定的WCF負載平衡

從負載平衡的角度看,使用 BasicHttpBinding 進行通信的 WCF 應用程序與其他普通類型的 HTTP 網絡流量(如靜態(tài) HTML 內容、ASP.NET 頁或 ASMX Web 服務)并沒有什么區(qū)別。使用此綁定的 WCF 通道本質上是無狀態(tài)的,當通道關閉時,其連接也會終止。因此,BasicHttpBinding 可以很好地與現(xiàn)有的 HTTP 負載平衡技術一起使用。

默認情況下,BasicHttpBinding 會在消息中發(fā)送一個具有 Keep-Alive 值的連接 HTTP 標頭,該標頭可讓客戶端建立到支持這些客戶端的服務的持續(xù)連接。這種配置具有高的吞吐量,因為可以重新使用以前建立的連接向同一個服務器發(fā)送后續(xù)消息。然而,重新使用連接可能導致客戶端與負載平衡場中的特定服務器密切關聯(lián),從而降低循環(huán)負載平衡的效率。如果不需要此行為,則可以使用 CustomBinding 或用戶定義的 Binding 在使用 KeepAliveEnabled 屬性的服務器上禁用 HTTP Keep-Alive。下面的示例演示如何使用配置來執(zhí)行該操作。

 
 
 
  1. < ?xml version="1.0" encoding="utf-8" ?> 
  2. < configuration> 
  3. < system.serviceModel> 
  4. < services> 
  5. < service   
  6. name="Microsoft.ServiceModel.
    Samples.CalculatorService" 
  7. behaviorConfiguration="
    CalculatorServiceBehavior"> 
  8. < host> 
  9. < baseAddresses> 
  10. < add baseAddress="http://
    localhost:8000/servicemodelsamples/service"/> 
  11. < /baseAddresses> 
  12. < /host> 
  13. < !-- configure http endpoint, 
    use base address provided by host  
  14. And the customBinding --> 
  15. < endpoint address="" 
  16. binding="customBinding" 
  17. bindingConfiguration="HttpBinding"   
  18. contract="Microsoft.ServiceModel
    .Samples.ICalculator" /> 
  19. < /service> 
  20. < /services> 
  21. < bindings> 
  22. < customBinding> 
  23. < !-- Configure a CustomBinding
     that disables keepAliveEnabled--> 
  24. < binding name="HttpBinding" 
    keepAliveEnabled="False"/> 
  25. < /customBinding> 
  26. < /bindings> 
  27. < /system.serviceModel> 
  28. < /configuration> 

WSHttp 綁定和 WSDualHttp 綁定的WCF負載平衡

如果對默認的綁定配置進行一些修改,則 WSHttpBinding 和 WSDualHttpBinding 都可以使用 HTTP 負載平衡技術來實現(xiàn)負載平衡。

關閉安全上下文的建立:這可以通過將 WSHttpBinding 上的 EstablishSecurityContext 屬性設置為 false 來完成?;蛘?,如果需要安全會話,則可以按照 安全會話 主題中的說明,使用有狀態(tài)安全會話。有狀態(tài)安全會話使服務保持無狀態(tài),因為安全會話的所有狀態(tài)都隨每個請求作為保護安全令牌的一部分進行傳輸。請注意,若要啟用有狀態(tài)安全會話,必須使用 CustomBinding 或用戶定義的 Binding,因為系統(tǒng)提供的 WSHttpBinding 和 WSDualHttpBinding 上并不會公開必需的配置設置。

不要使用可靠會話。默認情況下此功能處于關閉狀態(tài)。

使 Net.TCP 綁定實現(xiàn)WCF負載平衡

可以使用 IP 層負載平衡技術實現(xiàn) NetTcpBinding 的負載平衡。不過,默認情況下,NetTcpBinding 會匯集 TCP 連接以減少連接延遲。這是一種干擾負載平衡基本機制的優(yōu)化。用于優(yōu)化 NetTcpBinding 的主配置值是租約超時,它是連接池設置的一部分。連接池導致客戶端連接與場內特定的服務器關聯(lián)。隨著這些連接的生存期的增加(一個受租約超時設置控制的因素),場內不同服務器上的負載分布會變得不平衡。結果使平均調用時間增加。

因此,在負載平衡方案中使用 NetTcpBinding 時,應考慮減少由綁定使用的默認租約超時。雖然租約超時的***值取決于應用程序,但 30 秒的租約超時對于負載平衡方案不失為一個合理的始點。有關通道租約超時和其他傳輸配額的更多信息,請參見傳輸配額。

若要在負載平衡方案中獲得***性能,請考慮使用 NetTcpSecurity(Transport 或 TransportWithMessageCredential)。


分享文章:WCF負載平衡實現(xiàn)方法總結
標題URL:http://m.5511xx.com/article/copipcc.html