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

SignalR2.0开发实例之——负载均衡的更多相关文章

  1. SignalR2.0开发实例之——设置时间、后台其他地方使用集线器、使用自己的连接ID

    一.连接的生命周期设置: 如下: // 该值表示连接在超时之前保持打开状态的时间长度. //默认为110秒 GlobalHost.Configuration.ConnectionTimeout = T ...

  2. SignalR2.0开发实例之——私聊

    一.前言 继续上一章的补充,这章介绍使用私聊的功能.主要通过一个方法   Clients.Client(Context.ConnectionId).showMessage(msg); SignalR框 ...

  3. SignalR2.0开发实例之——群发消息

    一.前言 ASP .NET SignalR 是一个ASP .NET 下的类库,可以在ASP .NET 的Web项目中实现实时通信.什么是实时通信的Web呢?就是让客户端(Web页面)和服务器端可以互相 ...

  4. SignalR2.0开发实例之——创建房间聊天

    SignalR作为一个强大的集线器,已经在hub里面集成了Gorups,也就是分组管理,使用方法如下: //作用:将连接ID加入某个组 //Context.ConnectionId 连接ID,每个页面 ...

  5. Nginx+Tomcat多实例及负载均衡配置

    Nginx+Tomcat多实例及负载均衡配置 采用nginx的反向代理负载均衡功能,配合后端的tomcat多实例来实现tomcat WEB服务的负载均衡 01 安装nginx服务 安装所需的pcre库 ...

  6. Nginx 配置实例-配置负载均衡

    Nginx 配置实例-配置负载均衡 0. 实例效果 1. 两个 tomcat 的安装(可选) 1.1 tomcat8081 的安装 1.1.1 tomcat8081 安装包的装备 1.1.2 tomc ...

  7. [转]Haproxy 1.5.0 正式发布,Web 负载均衡

    From : http://www.oschina.net/news/53070/haproxy-1-5-0 经过 4 年的不懈努力,HAProxy 1.5.0 终于发布了! 相对于 1.4 版本来说 ...

  8. 一篇对OAuth2.0开发实例的介绍

    今天看到了博友对SSO的文章,SSO单点登录的讲解突然想写一篇关于OAuth2.0用户授权的介绍. 应用场景:在APP或者网页接入一些第三方应用时,时长会需要用户登录另一个合作平台,比如QQ,微博,微 ...

  9. tomcat多实例及负载均衡

    [root@localhost ~]# tar fx apache-tomcat-8.5.40.tar.gz [root@localhost ~]# tar fx jdk-8u191-linux-x6 ...

随机推荐

  1. Eclipse关闭XML文件验证的方法,解决xml警告

    XML的编写是否符合规范,可以通过XML Schema或DTD进行验证,但有时候电脑本来就很卡,而且XML的某些错误并未导致程序无法运行的情况下,暂时关闭XML的验证也算不错的选择. 如web.xml ...

  2. 【行为型】Chain of responsibility模式

    职责链模式将对象的请求处理组成链式结构,并将请求按链式结构逐个传递下去,直接被其中的某个处理者处理为止.由此可知,职责链模式的适用场合是对指定请求,可以有多个请求处理者(或称为请求响应者),但用户并不 ...

  3. SwitchySharp怎样设置 ( proxy switch!的设置与使用方法)

    规则列表URL  https://autoproxy-G{过}F{滤}Wlist.googlecode.com/svn/trunk/G{过}F{滤}Wlist.txt 注:不同的代{过}{滤}理  相 ...

  4. 转:Qt项目中遇到的一些小问题汇总

    链接:http://blog.csdn.net/yangyunfeizj/article/details/7082001    作者:GoatYangYang 公司让负责qt界面开发,但是接触qt又不 ...

  5. RAILS局部视图操作样例

    按如下书操作的,讲得很易懂.. <html> <head> <title>SampleApp</title> <%= stylesheet_lin ...

  6. XJOI网上同步测试DAY14 T2

    思路:先考虑在D高度的最小圆覆盖,再一层一层往下走时,可以保证圆心与最开始的圆相同的时候答案是最优的. 时间复杂度O(n) 有一个坑点,就是我用了srand(time(NULL))就T了,RP太差了. ...

  7. Android项目的图标

    项目的图标就是在AndroidManifest.xml中通过android:icon="@drawable/ic_launcher"来指定的,ic_launcher这张图片可以放在 ...

  8. COJ 0026 汉诺塔问题

    汉诺塔问题 难度级别:B: 运行时间限制:1000ms: 运行空间限制:51200KB: 代码长度限制:2000000B 试题描述 经典的汉诺塔游戏相信很多同学都会玩的,规则就不用赘述,百科一下就OK ...

  9. HDU_2039——判断三条边是否能组成三角形

    Problem Description 给定三条边,请你判断一下能不能组成一个三角形.   Input 输入数据第一行包含一个数M,接下有M行,每行一个实例,包含三个正数A,B,C.其中A,B,C & ...

  10. HDU4742----Pinball Game 3D(三维LIS、CDQ分治)

    题意:三维空间内 n个小球,对应坐标(x,y,z).输出LIS的长度以及方案数. 首先可以先按x排序,先降低一维,然后 剩下y .z,在y上进行CDQ分治,按y的大小用前面的更新后面的.z方向离散化之 ...