问题标签 [horizontal-scaling]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
design-patterns - 水平缩放和设计模式
我想问一下,是否有一些重要的、易于理解的论文或文档关于众所周知且高效的水平缩放模式。我想设计一个能够在云上水平扩展的应用程序(例如在 Amazon WS 上)。是否有任何设计模式被业界接受,尤其是来自自动扩展的应用程序(例如 NoSQL 解决方案、文档数据库等)。一个例子是 REDIS 的 One Master Multiple reader 方法。
谢谢
database - 如何在实际中对 RDBMS 或 NoSQL 数据库进行水平扩展
我正在研究将 RDBMS 和 NoSQL 用于企业应用程序。在研究过程中,我发现水平扩展能力是选择合适数据库的主要优势。我的问题是我们如何在实际场景中实际做到这一点。
例如:假设我有一个包含 100 个表的客户数据库,每个表包含几百万条记录。对于这种情况,我应该如何启动水平缩放。
这就是我的想法
- 复制数据库,然后如何管理数据冗余以及我们如何编程查询数据
- 在每个服务器中保存有关数据的索引
还有什么吗?
感谢您的评论。
elasticsearch - 如何使用 Elasticsearch 动态扩展写入和索引的大小?
我目前正在探索解决方案,以便为大量文档数据存档和提供网络搜索引擎。我首先开始寻找搜索引擎解决方案,最终得出的结论是,当您必须处理大量数据时,Elasticsearch 是最好的解决方案之一。我读过它可以轻松扩展并且开箱即用,我对此深信不疑。
然后我查看了 No SQL 数据库,由于参与者的数量,我在搜索上花费了更多时间,并且我阅读了一些资源(No SQL 提炼、Amazon Dynamo 论文、Google BigTable 论文等),这些资源使我获得了更好的对分布式系统的总体理解。我还看到,大多数 No SQL 可扩展数据库都能够在分片变得太大时自动将分片分成两个分片。
然后我意识到 Elasticsearch 没有提供这个功能。此外,相信文档:http ://www.elasticsearch.org/guide/en/elasticsearch/reference/current/indices-update-settings.html
我们不能在他创建后增加索引的分片数。所以这带来了我的问题:
假设您为预期的流量/数据量创建了一个指定多个分片的索引,并且有一天超出了您的预期,您没有足够的分片来处理写入请求和索引的大小,您如何管理这种情况?
r - 匹配来自 R 中两个单独数据集的时间和数据值
我正在通过两个设备测量葡萄糖水平。每个设备每 5 分钟输出一个时间戳和相应的葡萄糖值。我希望以这样的方式对齐两个设备的时间和值,以使任何行中的两个时间都在 5 分钟内。数据帧头是Ltime
Lvalue
Rtime
Rvalue
. 我想创建一个具有相同标题但行已调整的新数据框,Lvalue
并且Rvalue
相隔不超过 5 分钟。任何不能容纳的时间都将被淘汰。
c# - 有关如何水平扩展订阅 Exchange Web 服务的服务流程的任何模式?
我想了解您的想法,如何通过跨多个服务器运行我的服务流程来水平扩展它。它是一个用 C# 编写的 Windows 服务,它的生活目的是订阅我们公司的 Exchange Web 服务 (EWS),以便在有新的传入电子邮件消息时(通过 HTTP 回调)得到通知。然后,该服务获取电子邮件消息,对其进行处理,如果可能,发送回复,然后返回睡眠状态并等待下一封传入的电子邮件。
如果我在不止一台机器上运行它,我可以让它们都订阅 EWS 通知,或者只让它们中的一个。如果我让他们都订阅,我会有点犹豫,因为它可能会给我们的 MS Exchange 基础架构增加负担。这也将导致所有机器接收和处理电子邮件。对于给定的请求消息,我不希望发件人收到 N 次回复(其中 N 是场中的服务器数量)!现在,如果我只有一台订阅 EWS 的机器,这会使我面临单点故障。
我想听听你关于如何解决这个问题的建议。我希望多台服务器通过在它们之间分发电子邮件来处理传入的消息(也许我必须通过使用消息队列服务器来做到这一点)。谢谢。
java - 水平可扩展 Web 应用程序模块之间的同步 IPC
我正在设计一个模块化的网络应用程序,主要是一个网络 api,考虑到水平可扩展性。我的问题是,对于某些任务,我需要两个或更多模块来同步交换数据,但我不希望这影响我的 Web 应用程序的水平可伸缩性。如果我可以异步执行此操作,我肯定会使用队列,但是对于同步通信,我不知道该使用什么。是否有一些事实上的标准或至少一些最佳实践,用于在不破坏水平可扩展性的 Web 应用程序模块之间进行同步通信?
FWIW,我还用 PHP 编写了这个应用程序的演示,但我计划很快迁移到 Java。但是,解决方案应该与语言无关。
谢谢
java - Dropwizard:处理多个 dropwizard 实例
当我使用 Dropwizard 开发微服务时,我试图在一个正在运行的 Dropwizard 实例/应用程序上拥有许多资源与许多实例之间找到平衡。
例如 - 我有一个项目 A 有 3 个资源。在另一个项目-B 中,我想使用项目-A 中的一个资源。公共资源与用户数据有关。现在我有这样的选择:
- 从项目-B 对项目-A 中的用户资源进行 http 调用。我可以在这里使用 dropwizard 的客户端方法
- 由于用户资源很常见 - 我可以将它从项目 A 中取出来说项目 C。我需要在项目 A 和项目 B 中创建客户端代码
- 我可以提取包含用户代码的 jar 并在项目 B 中使用。这将避免进行 http 调用。
我想获得专家意见的另一点是如何平衡/最小化与不同微服务实例之间的通信相关的网络调用。一般来说,应该使用http在不同实例之间进行通信吗?或者任何其他进程间通信方法可以用于性能本身[特别是如果不同的实例在同一系统上]?
我觉得这对于微服务领域的新手来说可能是常见的问题/困惑。因此想知道任何一般准则或最佳实践。
非常感谢
普拉迪普
alignment - Gnuplot 移动 x 轴
您好,我在 3 个文件中有以下 gnuplot 示例数据:
现在我有以下 gnuplot 命令:
这将产生以下输出文件:
在这里您可以看到 x 轴上 0-100 的值偏移不正确,有人看到代码中的错误吗?
routing - CouchDB:控制哪个分片接收数据
我对 couchDB 集群方法的理解是,通过散列文档的唯一 ID,确保集群中的每个节点都接收到均匀分布的数据。我的问题是,是否有办法改变这一点并定义自定义键以“智能”地将文档路由到集群中的特定节点?
在我的场景中,我的所有数据中都有与特定实体相关的数据(想想客户项目任务项);我将有足够的项目需要一些水平缩放;但是,每次搜索都将始终与给定的客户项目任务相关,而数据集的大小只是中等大小。
我认为最有效的方法是通过客户端项目任务对我的数据进行分区并预先分配 1000 个分区。
我知道在某个时候这会限制我的扩展能力,但是不必为每次搜索都打到每个分区的权衡使得我愿意支付它。
那么有没有办法在 CouchDb 中创建这种类型的分区逻辑?
谢谢; 布伦特
html - 导航栏中的文本未水平居中/如何
将大小缩小一半/导航栏文本之间的空间太大
这里有我的网站: http: //gyazo.com/56e069ebf8b5bd61ee30523886180b88
导航栏存在许多问题。
您可以看到文本或导航栏未水平居中,如悬停所示(顶部和底部相等)
文本之间有太多空间,(而且这个间距是我发现的唯一方法,在突出显示或悬停时文本不会四处移动。
下拉菜单中的 <.br> 间距过大。
所以对于 1. 有没有办法让文本或导航栏(不确定是什么原因)居中,这样悬停看起来更平等(水平)
2.有没有办法可以缩小文本之间的间隙,同时仍然保持相同的填充设置,所以当我使用悬停功能时它不会移动文本。
还有 3. 有没有办法让 <.br> 的空间减少一半
如果有帮助,我还添加了一个 jsfiddle: //jsfiddle.net/d1a5eshs/
导航栏的 HTML 代码:
导航栏的 CSS: