SignalR2.0开发实例之——负载均衡
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,你懂的,考虑其他的版本代替吧.)
概述
详细的教程之前,这里是一个快速概述你将做什么。
- 创建一个新的空数据库。 集线器Hub将在这个数据库创建必要的表。
- 将这些NuGet包添加到您的应用程序:
- 创建一个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/p/4635675.html
SignalR2.0开发实例之——负载均衡的更多相关文章
- SignalR2.0开发实例之——设置时间、后台其他地方使用集线器、使用自己的连接ID
一.连接的生命周期设置: 如下: // 该值表示连接在超时之前保持打开状态的时间长度. //默认为110秒 GlobalHost.Configuration.ConnectionTimeout = T ...
- SignalR2.0开发实例之——私聊
一.前言 继续上一章的补充,这章介绍使用私聊的功能.主要通过一个方法 Clients.Client(Context.ConnectionId).showMessage(msg); SignalR框 ...
- SignalR2.0开发实例之——群发消息
一.前言 ASP .NET SignalR 是一个ASP .NET 下的类库,可以在ASP .NET 的Web项目中实现实时通信.什么是实时通信的Web呢?就是让客户端(Web页面)和服务器端可以互相 ...
- SignalR2.0开发实例之——创建房间聊天
SignalR作为一个强大的集线器,已经在hub里面集成了Gorups,也就是分组管理,使用方法如下: //作用:将连接ID加入某个组 //Context.ConnectionId 连接ID,每个页面 ...
- Nginx+Tomcat多实例及负载均衡配置
Nginx+Tomcat多实例及负载均衡配置 采用nginx的反向代理负载均衡功能,配合后端的tomcat多实例来实现tomcat WEB服务的负载均衡 01 安装nginx服务 安装所需的pcre库 ...
- Nginx 配置实例-配置负载均衡
Nginx 配置实例-配置负载均衡 0. 实例效果 1. 两个 tomcat 的安装(可选) 1.1 tomcat8081 的安装 1.1.1 tomcat8081 安装包的装备 1.1.2 tomc ...
- [转]Haproxy 1.5.0 正式发布,Web 负载均衡
From : http://www.oschina.net/news/53070/haproxy-1-5-0 经过 4 年的不懈努力,HAProxy 1.5.0 终于发布了! 相对于 1.4 版本来说 ...
- 一篇对OAuth2.0开发实例的介绍
今天看到了博友对SSO的文章,SSO单点登录的讲解突然想写一篇关于OAuth2.0用户授权的介绍. 应用场景:在APP或者网页接入一些第三方应用时,时长会需要用户登录另一个合作平台,比如QQ,微博,微 ...
- tomcat多实例及负载均衡
[root@localhost ~]# tar fx apache-tomcat-8.5.40.tar.gz [root@localhost ~]# tar fx jdk-8u191-linux-x6 ...
随机推荐
- li的border无法和上边对齐
如果利用border设置四周的border,如果一边的边框比较长无法对齐 解决办法: .test{ position: relative; border: 1px solid #808080; hei ...
- CP1W-CIF41以太网模块(使用总结)
1>插入CP1W-CIF41后,ERR灯一直闪烁? 解决方法:CIF41以太网模块在第一个扩展板槽位,需要把CP1H的4号拨码开关拨到ON的位置.同样,如果在第二个槽位,需要5号拨码拨到ON位置 ...
- Android中的webview的进度条
<application android:icon="@drawable/hunqin" android:label="@string/app_name" ...
- C51汇编语言完整源码
单片机最小系统,两位LED数码管由串口输出接两个164驱动,Lout,Rout为左右声道输出,SET, ALT0, ALT1为三个按键,也可自己在开始的I/O定义改成你想用的I/O口:12M晶振,若 ...
- 五个新知识:微软SHA2补丁,亚信专业工具,微软官方文档,使用过期签名(附官方推荐链接),注意使用具有UAC的CMD
五个新知识:微软SHA2补丁,亚信专业工具,微软官方文档,使用过期签名 不支持SHA2算法的计算机更新补丁:https://technet.microsoft.com/zh-CN/library/se ...
- windows 查看文件被哪个进程占用
经常当我们删除文件时,有时会提示[操作无法完成,因为文件已在另一个程序中打开,请关闭该文件并重试],到底是哪些程序呢? 有时候一个一个找真不是办法,已经被这个问题折磨很久了,今天下决心要把它解决,找到 ...
- 利用ftrace跟踪内核static tracepoint——实例writeback event
摘要:和很多linux内核子系统一样,static tracepoint有很多层次,其中某个层次都展示给不同层次的开发者来满足他们的不同需求.关于linux tracepoint的详细信息,我们可以在 ...
- 如何在Windows下使用matplotlib
在开始之前,向matplotlib的创造者,John D. Hunter表示崇高的敬意,和无尽的怀念. (John D. Hunter 1968-2012) matplotlib是一个给予Python ...
- JAVA面向对象总结
面向对象概述 面向对象是当前计算机界关心的重点,它是90年代软件开发方法的主流.面向对象的概念和应用已超越程序设计和软件开发,如数据库系统.交互式界面.应用结构.应用平台.分布式系统.网络 ...
- Contest - 第10届“新秀杯”ACM程序设计大赛现场热身赛 赛后信息(题解)
Problem Id Title Problem A A+B Problem B 统计字数 Problem C 生日计算 Problem D 冬瓜的寒假之旅 Problem A(略 ...