- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在运行一个 Windows Azure Web 角色,在大多数情况下,该角色接收的流量非常低,但有一些(可预见的)事件可能会导致必须完成大量后台工作。后台工作由许多数据库调用(Azure SQL)和对外部Web服务的HTTP调用组成,因此它并不是真正的CPU密集型,但它需要大量等待数据库或Web服务应答的线程。后台工作由对 Web 角色的正常 HTTP 请求触发。
我看到有两个选项可以安排此操作,但我不确定哪一个更好。
选项 1 稍微简单一些,但它的缺点是只有一个实例可以处理后台工作。如果我希望多个 Azure 实例参与后台工作,除了将 HTTP 请求从角色发送到自身之外,我看不到任何其他选项,以便负载均衡器可以将部分工作委托(delegate)给其他实例。
也许还有其他选择?
编辑:关于选项 2 的更多想法:当后台工作的请求传入时,接收它的实例会将要完成的工作保存在某种队列中(Windows Azure队列或某些充当任务队列的 SQL 表)。然后,它会向自身生成大量 HTTP 请求,以便负载均衡器“激活”所有角色实例。然后,每个实例从队列中出列一个任务并执行该任务,然后获取下一个任务等,直到所有任务完成。这就像偶尔将网络角色用作辅助角色。
我知道这种方法有臭味(滥用 Web 角色作为辅助角色,向同一 Web 角色发出 HTTP 请求),但我没有看到真正的缺点。
编辑 2:我发现我应该详细说明应用程序的具体情况:
应用程序需要一直执行一些小任务。这些任务通常不会超过 1-10 秒,并且不需要大量 CPU 工作。正常情况下,我们只有 50-100 项任务需要完成,但在“特殊日子”(新年就是其中之一),他们可能会处理 10,000 项任务,这些任务必须在 1-2 天内完成。小时窗口。这些任务是在网络角色中完成的,我们有一个Cron Job,它每分钟启动任务。因此,Web 角色每分钟都会收到处理新任务的请求,因此它会检查必须处理哪些任务,将它们添加到某种队列中(当前它是一个带有插入了 OUTPUT 的 UPDATE 的 SQL 表,但我们打算切换为有时会发送到 Azure 队列)。目前,同一实例在将任务排队后立即处理,但这无法扩展,因为串行处理多个 10'000 个任务需要很长时间。这就是为什么我们正在寻找一种机制来将“任务可用”事件从初始实例广播到其他实例。
最佳答案
您是否考虑过使用队列来分配工作?您可以将需要处理的“任务”放入队列中,然后将工作分配给许多工作进程。
我在方法 1 中看到的问题是,我将其视为“向上扩展”模式,而不是“向外扩展”模式。恕我直言,通过部署许多小型虚拟机实例而不是一个大型实例,将为您提供更高的可扩展性和可用性。此外,您提到您的工作不是 CPU 密集型的。如果您考虑 X-Small 实例,则对于 1 个小型实例(0.12 美元/小时)的成本,您可以部署 6 个 X-Small 实例(0.02 美元/小时),同样,对于 1 个大型实例(0.48 美元)的成本,您可以部署 24 个X-Small 实例。
此外,在“横向扩展”模式下,您只需添加或删除实例即可轻松扩展。如果由于您更改虚拟机大小而出现“向上扩展”(或“向下扩展”)模式,您最终将重新部署程序包。
抱歉,如果我有点离题了:)希望这会有所帮助。
关于multithreading - 编排 Windows Azure Web 角色以应对偶尔的高工作负载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12891678/
本文分享自华为云社区《【沃土方案--金融】银丰新融-反洗钱自主监测系统(一)》,作者:HuaweiCloudDeveloper 。 “三反(反洗钱、反恐怖融资、反逃税)”意见持续深化落实,第四轮互评估
关闭。这个问题需要多问focused 。目前不接受答案。 想要改进此问题吗?更新问题,使其仅关注一个问题 editing this post . 已关闭 9 年前。 Improve this ques
我们有一个数据驱动的 Activity ,它构建了一大组(通常最多 100 个)类似按钮的组件,并将它们放在一个 Scrollable 中。每个按钮都是从资源中膨胀的,并且基于 RelativeLay
我在一个非常早期的项目中使用 Hibernate EntityManager 和 Hibernate Annotations for ORM。该项目需要尽快启动,但规范不断变化,我担心系统将启动并收集
这是一个来自 SPOJ 的简单编程问题:http://www.spoj.com/problems/PROBTRES/ . 基本上,您需要输出 i 和 j 之间数字的最大 Collatz 循环。 (
由于 C++11 引入了新的统一初始化语法,许多人建议使用它来代替旧式语法。至少,如果不是这个所谓的极端情况: struct Foo { Foo(int){ std::cout
Log4J2漏洞涉及的影响太广了,昨天发文后很多粉丝留言问Spring Boot项目是否受到Log4J2漏洞影响。Spring官方已经全面进行了排查,现在大家可以知道这些信息和应对方法。 默认
我正在通过 UDP(视频数据)接收 RTP。 RTP 包含我需要解码的 H264。不幸的是,大多数 RTP 都包含零散的数据。由于缺少 RTP 序列,我无法正确重建 H264。 关于如何减少数据丢失以
我正在阅读 this thread并在解决方案中注意到,如果您发送的数据长度与实际数据分开,Nagle 的算法可能会播放和取消同步发送的数据。 我想知道这一点,因为我看到很多代码示例,客户端首先发送数
我正在创建一个简单的应用程序,它将使用react-native-firebase和react-native-maps。按照安装文档的说明,我已经启动并运行了 map ,没有任何问题。接下来,我已经安装
我是一名优秀的程序员,十分优秀!