标签: scalability

甲骨文数据卫士

Oracle DataGuard 是一种跨多个 Oracle 引擎实例复制 Oracle RDBMS 中存储的数据的技术。我想知道 DataGuard 是否真的为 RDBMS 提供了线性可扩展性。您有使用 DataGuard 的经验吗?它在重负载条件下表现如何?

oracle replication rdbms database-design scalability

1
推荐指数
1
解决办法
448
查看次数

Socket.io 命名空间限制以及如何扩展它

我有 socket.io 应用程序,必须处理很多命名空间。我想知道 socket.io 实例可以处理的命名空间数量的限制是多少,如果我创建 10k 命名空间,是否有任何问题。我如何扩展以在多个 socket.io 实例(例如,每个实例处理 1k 命名空间)中进行类似 scharding 的操作。实际上,我可以扩展以支持多个用户,但我的所有实例都必须处理所有命名空间。

更新1:

我试图解决的问题如下,我有一个多人纸牌游戏(如扑克),每个房间都有 4 个玩家在玩游戏,由 socketio 命名空间建模。由于我期望有数千个并发玩家,我的 socketio 实例应该处理这个数量的命名空间。我已经实现了Socket.io 网站中解释的可扩展性解决方案。当我向外扩展时,我在新实例中运行这个节点片段,以便它可以处理之前创建的所有命名空间。

rooms.forEach(function(room){
    var socketRoom = io.of('/room/' + room.id)
    .on('connection', function(mySocket){
        return handleTableSocket(mySocket, socketRoom, room);
    });
});
Run Code Online (Sandbox Code Playgroud)

那么用socketio命名空间对每个游戏室建模是个好主意吗?如果命名空间的数量增加怎么办?

干杯

scalability node.js socket.io

1
推荐指数
1
解决办法
1461
查看次数

如何在端口上发出超过 65k 的请求

我有一个简单的 Node js Web 套接字服务器,如下所示:

var ws = require("nodejs-websocket")
var connectionCount = 0;
console.info("Node websocket started @ 8001");

var server = ws.createServer(function (conn) {;
    console.log("New connection", ++connectionCount);
    conn.on("close", function (code, reason) {
        console.log("Connection closed")
    });
}).listen(8001)
Run Code Online (Sandbox Code Playgroud)

该服务器需要 65k 个连接(因为一个端口最多需要 65k 个连接)。如何扩展服务器以使其能够容纳超过 100k 个连接?

我最近打开了三个具有不同端口的此类服务器,并尝试使用 nginx 进行负载平衡,但无济于事,因为 nginx 服务器也只能接受 65k 连接。nginx 配置在这里

upstream localhost {
    server localhost:8001;
    server localhost:8002;
    server localhost:8003;
}


server {
    proxy_read_timeout 3600s;
    listen 8000;
    location / {
            proxy_pass http://localhost;
            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection "upgrade"; …
Run Code Online (Sandbox Code Playgroud)

scalability load-balancing nginx c10k websocket

1
推荐指数
1
解决办法
1447
查看次数

Enum.filter 不可扩展?

我解码 CSV 文件(使用https://hexdocs.pm/csv/),生成一个流,然后使用Enum.filter. 我的问题是处理时间并不随着 CSV 文件的大小线性增长:

% wc -l long.csv 
10000 long.csv
% time mix run testcvs.exs long.csv  
mix run testcvs.exs long.csv  3.08s user 0.50s system 242% cpu 1.479 total

% wc -l verylong.csv
100000 verylong.csv
% time mix run testcvs.exs verylong.csv 
mix run testcvs.exs verylong.csv  98.08s user 3.24s system 117% cpu 1:25.93 total
Run Code Online (Sandbox Code Playgroud)

应该需要十倍的时间,但实际上需要五十七倍的时间。绝对不可扩展。这是否意味着Enum.filter不使用流式传输而是将所有内容加载到内存中?是否有更可扩展的方法来过滤流?

代码:

Enum.at(System.argv(), 0)
|> File.stream!([:read], :line)
|> CSV.decode([separator: ?;])
|> Enum.filter(fn {:ok, line} -> Enum.at(line, 11) == "" end)
Run Code Online (Sandbox Code Playgroud)

scalability elixir

1
推荐指数
1
解决办法
94
查看次数

分片和规范化是否互斥?

我碰到了一条令我感到疑惑的评论:如果您使用分片方法来提高数据库的可伸缩性,是否意味着数据库已被非规范化?您可以有一个规范化的分片数据库吗?

database-design scalability

0
推荐指数
1
解决办法
630
查看次数

使用Python构建的下一代社交网络.可能?过早?笨?

我只想在这里试水.您是否认为使用Python构建大规模社交网络是否值得?鉴于Python Web开发仍然在如此大规模的实验中,您是否客观地认为其相对于PHP(高性能面向对象执行)的所谓优势将值得重新创建一些(或将是很多?)车轮?使用没有框架或像Pyramid(以前的Pylons)的框架,而不是Django.

php python performance scalability social-networking

0
推荐指数
1
解决办法
1295
查看次数

扩展MVC与扩展多层应用程序

据我所知,可以分发多层应用程序以利用可伸缩性.也就是说,当您的Web应用程序需要的资源多于单个服务器可以提供的资源时,您只需分发您的应用程序.

您可以将持久层放在一个服务器中,将业务层放在另一个服务器中,将演示文稿放在第三个服务器中.

此外,您可以将业务层划分为多个服务,并将每个服务放在单独的服务器中以应对这些请求.

因为多层应用程序本质上是通过SOAP,套接字,.Net Remoting或RMI等中间件进行通信的组件,所以通过进一步分发其组件来扩展应用程序将相当容易.

问题是,使用MVC架构而不是N层架构设计的应用程序怎么样?据我所知,模型,视图和控制器驻留在一台机器上,那么有人如何分发MVC架构的Web应用程序?

问候,

architecture scalability distribution

0
推荐指数
2
解决办法
2199
查看次数

动态扩展String数组

例如,这是内存中的一个当前实现

String companies [] = {"Alice Berned","Beyonce Cathy","Kelly Boldt"};

要求是在运行时动态扩展此目录.记录可能多达数千.数据结构应该有助于搜索,添加,删除等基本功能.

我的解决方案

我的第一个想法是使用ArrayList,易于获取和添加.

问题:有什么好方法可以解决这个问题吗?

java implementation scalability

0
推荐指数
1
解决办法
2597
查看次数

如何使用selenium执行Web应用程序的可伸缩性测试

我是否需要一些第三方工具(如load runner)来进行Web应用程序的可伸缩性测试?或者我可以使用selenium为我执行此操作.请指导.

谢谢

selenium scalability web-applications load-testing performance-testing

0
推荐指数
1
解决办法
2202
查看次数

使用PostgreSQL或PostgreSQL + MongoDB?

我目前正在计划一个社交媒体应用程序 - 尤其是后端.基本上我有我想要使用SQL的所有社交方面(我猜是PostgreSQL),但我也有列表中的地理位置组织(这么多对一),这将很可能得出最大的数据量.我知道PostgreSQL有用于GIS功能的模块,我最初的想法只是为了简单而使用PostgreSQL,只是为了简单起见,因为Geolocation搜索的性能对于两个系统都应该是相同的,如果不支持PostgreSQL的话.我也可以在PostgreSQL中使用JSON Type,因此它基本上具有MongoDB所涵盖的最明显的优势.

另一方面,我担心可伸缩性,因为地理定位将成为最大的数据块,并且表格可能会有很多行.

所以我现在的想法是在MongoDB中实现地理定位,具有易于扩展,易于使用的地理位置搜索,并嵌入例如评论/喜欢地理定位直接进入文档,这将使地理定位读取/搜索更容易,但我再次不得不将这些数据与来自SQL的社交数据相结合,例如,获取评论地理位置的所有用户,并从PostgreSQL获取他们的个人资料信息并"手动"组合它.尽管部分可以在前端完成,但为我节省了大量资源.

我不确定这个想法有多好,如果我真的在那里帮忙.

postgresql scalability geolocation mongodb database-performance

0
推荐指数
1
解决办法
1926
查看次数