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..

做过负载均衡的应该一眼就能看出效果主要做的什么,这里我们就不做过多的解释了..

首先我们来看看微软给出的实现参考图:

使用的先决条件

Microsoft SQL Server 2005或更高版本。 它不支持SQL Server精简版或SQL Azure数据库。 (如果您的应用程序是托管在Azure,你懂的,考虑其他的版本代替吧.)

概述

详细的教程之前,这里是一个快速概述你将做什么。

  1. 创建一个新的空数据库。 集线器Hub将在这个数据库创建必要的表。
  2. 将这些NuGet包添加到您的应用程序:
  3. 创建一个SignalR应用程序。
  4. 添加以下代码来启动。 配置启动器(记得我们之前第一篇文章中的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/p/4635675.html

最新文章

  1. float4与half4数据类型
  2. 使用Shell创建GitHub仓库
  3. 挂载NFS
  4. poj 2186 有向图强连通分量
  5. Ansible :一个配置管理和IT自动化工具
  6. HDU1565+状态压缩dp
  7. 仿path菜单button的实现
  8. 【4】JAVA---地址App小软件(UpdatePanel.class)(表现层)
  9. [Leetcode][020] Valid Parentheses (Java)
  10. JavaScript -- 时光流逝(五):js中的 Date 对象的方法
  11. JavaScript 小工具
  12. [svc]cfssl模拟https站点-探究浏览器如何校验证书
  13. 64_r3
  14. SpringInAction--XML配置Spring Aop
  15. js中的new操作符与Object.create()的作用与区别
  16. 【BZOJ 2803】【POI 2012】Prefixuffix
  17. Codeforce 1004C
  18. TabLayout实现底部导航栏(2)
  19. Excel的列数以数字格式查看
  20. 模拟利器Mockito

热门文章

  1. jquery 获取 outerHtml 包含当前节点本身的代码
  2. PHP学习系列(1)——字符串处理函数(4)
  3. Linux系统挂载点与分区的关系(转载)
  4. MVC + LigerUI 做后台管理还真是清爽
  5. WebService实现文件上传下载
  6. 51单片机 Keil C 延时程序的简单(晶振12MHz,一个机器周期1us.)
  7. java并发6-小结
  8. 程序设计实习MOOC / 继承和派生——编程作业 第五周程序填空题1
  9. MYSQL存储过程,清除指前缀的定表名的数据
  10. MarkWord - 可发布博客的 Markdown编辑器 代码开源