博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
用SignalR 2.0开发客服系统[系列4:负载均衡的情况下使用SignalR]
阅读量:4963 次
发布时间:2019-06-12

本文共 1964 字,大约阅读时间需要 6 分钟。

原文:

前言

交流群:195866844

目录:

 

 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旗舰版

 

正文开始

老规矩,我们先来看看实现后的效果:

 

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

 

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

 

使用的先决条件

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();        }    }}

 

这样我们就完成了整个负载均衡情况下的配置.

谢谢大家的支持,我会做的更好..请大家对我二流子的英语多多包含 - -,感谢..希望能有更好的翻译出来.

 

posted on
2017-12-15 16:13 阅读(
...) 评论(
...)

转载于:https://www.cnblogs.com/lonelyxmas/p/8043621.html

你可能感兴趣的文章
2018 Multi-University Training Contest 10 - TeaTree
查看>>
2018 Multi-University Training Contest 10 - Count
查看>>
HDU6203 ping ping ping
查看>>
《人人都是产品经理》书籍目录
查看>>
如何在git bash中运行mysql
查看>>
OO第三阶段总结
查看>>
构建之法阅读笔记02
查看>>
DataTable和 DataRow的 区别与联系
查看>>
检索COM 类工厂中CLSID 为 {00024500-0000-0000-C000-000000000046}的组件时失败
查看>>
mysql数据库中数据类型
查看>>
Fireworks基本使用
查看>>
两台电脑间的消息传输
查看>>
Linux 标准 I/O 库
查看>>
.net Tuple特性
查看>>
Java基础常见英语词汇
查看>>
iOS并发编程笔记【转】
查看>>
08号团队-团队任务5:项目总结会
查看>>
SQL2005 删除空白行null
查看>>
mysql备份与恢复
查看>>
混沌分形之迭代函数系统(IFS)
查看>>