C#。适用于大数据的可扩展高负载架构

Posted

技术标签:

【中文标题】C#。适用于大数据的可扩展高负载架构【英文标题】:C#. Scalable highly loaded architecture for Big Data 【发布时间】:2015-07-30 06:27:07 【问题描述】:

我们在 C# 上构建了我们的“试点”,现在看来,我们将在 6 个月内达到我们的系统无法处理的用户和数据量。 我们正试图弄清楚如何在 C#/.net 上构建可扩展的高负载架构,它也可以处理大数据。目前我们得到的是the diagram

我们需要什么

    就我们的解决方案征求专家意见 负载均衡器通常用于 .net 关于我们使用的数据库的任何建议(优点和缺点)。我们想在 MongoDB 和 CassandraDB 之间进行选择,但也许我们必须看看 其他解决方案 我们需要添加什么工具。例如,我们正在考虑 ZooKeeper

更新:

    我们将为 MongoDb 使用多台服务器,为 MSSQL 使用 2 个集群 oauth(承载)进行身份验证

谢谢。

【问题讨论】:

在添加更多之前,也许看看你可以去掉什么?为什么在数据库前面使用 Redis?消息队列已经在缓冲流量了。 @ChrisPatterson,感谢您的回答。这是我第一次使用 MassTransit。我是否正确理解 MassTransit 支持从盒子中缓冲消息?实际上,我找不到相关信息。 【参考方案1】:

从图中我几乎一无所知...要实现良好的可扩展性需要考虑很多事情...

总会想到的一件事是:用户数据状态,您是否使用会话?如果是,如何?你把它存放在哪里?

您是否也在多台服务器或仅一台主数据库服务器中“分割”数据库?使用的配置??

Redis 和其他缓存层,连接到数据库设置的先前点......您甚至可能正在缓存不正确的数据并将其带回前端(但只有您可以弄清楚如何关键,可以是也可以不是)。

负载平衡 - 通过物理机或软件?

【讨论】:

感谢您的回答。我稍微更新了我的答案。关于会话,正如我从这篇文章 ***.com/a/11479021/5100673 中得到的那样,将会话用于 RESTful API 是个坏主意。关于 LB,我们实际上并不知道我们需要使用什么(利弊),因为它是我们的第一个高负载系统。

以上是关于C#。适用于大数据的可扩展高负载架构的主要内容,如果未能解决你的问题,请参考以下文章

NoSQL 之于大数据

java架构师大型分布式综合项目实战,高并发,集群,高可用,程序设计,性能优化,架构设计,负载均衡,大数据量

大型web系统架构详解

大型高性能ASP.NET系统架构设计

浅谈大型web系统架构

大型高并发高负载web应用系统架构-数据库架构策略