前言
交流群:195866844
目錄:
用SignalR 2.0開發客服系統[系列1:實作群發通訊]
用SignalR 2.0開發客服系統[系列2:實作聊天室]
用SignalR 2.0開發客服系統[系列3:實作點對點通訊]
SignalR 2.0作為一個新的而且強大的通信工具,釋出部落格之後得到了很多人的支援,謝謝...也有人對性能和架設等問題提出了各種質疑..真的很感謝..
我特意下載下傳了SignalR 2.0的源碼硬着頭皮用我二流子的英語在微軟官方的Demo裡翻滾..
今天這個負載均衡下使用SignalR..基本完全照搬于微軟的Demo,我就當翻譯+上自己的了解吧 - -, 原文看這裡:
使用SQL server實作持久化
http://www.asp.net/signalr/overview/performance/scaleout-with-sql-server
使用redis實作持久化
http://www.asp.net/signalr/overview/performance/scaleout-with-redis
今天我們主要講使用SQL server..
開發環境
開發工具:VS2013 旗艦版
資料庫:Sql Server2008
作業系統:WIN7旗艦版
正文開始
老規矩,我們先來看看實作後的效果:
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIyZuBnLwAzN4QjNwMTN1UzMxATMvw1NwUTMwIzLcFTN4MTN28CX1EDMyc2bsJ2Lc12bj5ycn9Gbi52YuAzcldWYtl2Lc9CX6MHc0RHaiojIsJye.png)
做過負載均衡的應該一眼就能看出效果主要做的什麼,這裡我們就不做過多的解釋了..
首先我們來看看微軟給出的實作參考圖:
使用的先決條件
Microsoft SQL Server 2005或更高版本。 它不支援SQL Server精簡版或SQL Azure資料庫。 (如果您的應用程式是托管在Azure,你懂的,考慮其他的版本代替吧.)
概述
詳細的教程之前,這裡是一個快速概述你将做什麼。
- 建立一個新的空資料庫。 集線器Hub将在這個資料庫建立必要的表。
- 将這些NuGet包添加到您的應用程式:
- Microsoft.AspNet.SignalR
- Microsoft.AspNet.SignalR.SqlServer
- 建立一個SignalR應用程式。
- 添加以下代碼來啟動。 配置啟動器(記得我們之前第一篇文章中的Owin麼?)
下面就開始第一步
配置資料庫:
首先我們來建立一個庫為SignalRTable
如下圖:
然後,打開資料庫代理(這是微軟給的建議,可不開,微軟給出的原因是:服務代理提供本機支援SQL Server消息和隊列,使其接收更新更有效率。)
可以使用SQL語句查詢是否開啟了資料庫代理(新庫預設是關閉的) SQL語句如下:
SELECT [name], [service_broker_guid], [is_broker_enabled]
FROM [master].[sys].[databases]
可以使用如下SQL語句開啟你資料庫的代理服務:
ALTER DATABASE 你的庫名 SET ENABLE_BROKER
開始配置項目
我這裡直接拿我的第一個Demo來配置了,首先你要引用
using Microsoft.AspNet.SignalR.SqlServer;
這個類庫,..如果沒有的話可以通過NuGet去下載下傳.
任何Hub中的代碼都不需要修改,上面我提到過,啟動器Owin,我們這裡直接進入到Owin中,加入如下代碼:
using System;
using System.Threading.Tasks;
using Microsoft.Owin;
using Owin;
using Microsoft.AspNet.SignalR;
using Microsoft.AspNet.SignalR.SqlServer;
[assembly: OwinStartup(typeof(SignalRTest.MyStartup))]
namespace SignalRTest
{
public class MyStartup
{
public void Configuration(IAppBuilder app)
{
//加入如下代碼,Sqlconn為你的SQL資料庫連接配接字元串.
string sqlconn = "您的SQL資料庫聯接字元串";
GlobalHost.DependencyResolver.UseSqlServer(sqlconn);
//第一版Demo中我們一直隻有這句代碼.
app.MapSignalR();
}
}
}
這樣我們就完成了整個負載均衡情況下的配置.
謝謝大家的支援,我會做的更好..請大家對我二流子的英語多多包含 - -,感謝..希望能有更好的翻譯出來.
作者:顧振印
出處:http://www.cnblogs.com/GuZhenYin/
如果您覺得閱讀本文對您有幫助,請點一下“推薦”按鈕,您的“推薦”将是我最大的寫作動力!本文版權歸作者和部落格園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面