- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我有一个基本的 Java 消息传递应用程序,它可以将 JAVA 对象发送到远程服务器进行处理。我在网络的两端都利用了 Spring 支持,并使用 ActiveMQ 作为我的 JMS 提供者。它运行良好 - 我们在同时发送消息的 10 个客户端上没有遇到任何实际问题。
但是,我们现在真的很想扩大规模。客户数量可能会增加到大约 500 个。此外,每个客户端使用的带宽比最初宣布的问题更严重。
我想知道是否有人认为 ActiveMQ 是完成这项工作的正确工具 - 或者基于套接字的 TCP/UDP 是否会帮助我们更好地扩展。我们并不精通 AMQ 的一些“高级”功能,因为我们将它与基本的 Spring JMS 模板支持一起使用。
如有任何意见/想法,我们将不胜感激。
谢谢
最佳答案
在不知道您要达到的服务质量和 SLA 的情况下,我在评估任何应用程序的消息服务实现时遵循的基本规则如下...
性能优于可靠性
在这种情况下,像 ZeroMq(和其他类似产品)这样的产品就足够了,因为它在套接字级别工作,是分散的,提供极低的延迟并在大型分布式系统中扩展良好,并且是开源的,因此成本可以忽略不计。如果某些用例需要持久性和可靠性,请准备好实现传统消息传递中间件提供的开箱即用的自定义解决方案(持久性、持久性、复制等)。
平衡性能和可靠性
这就是 ActiveMQ、RabbitMq 等产品发挥作用的地方。基于代理的中间件解决了可靠性和持久性问题,同时提供了良好的性能和可扩展性。支持成本通常很低,中小企业无需倾家荡产就能负担得起。可以肯定地说,大多数消息传递需求都属于这一类,因为它提供了对性能和可靠性的可访问性,并且随着应用程序的成熟,您可以根据 future 的需求牺牲一个来代替另一个,而不会因为做出错误的选择而更换整个消息传递基础设施几年前。
可靠性优于性能
金融公司、交易系统、银行应用程序等通常有这样的要求,其中消息系统的可靠性具有附加的美元值(value),当事情不起作用时,金钱就会损失。因此,消息持久化、HA/容错、故障转移都非常重要。如果成本不是问题,请查看 WebLogic、Websphere、SonicMQ 或 TIBCO 等产品,...它们价格昂贵,但都提供可靠的可靠性、企业支持并且在负载下表现良好。我使用过 SonicMQ,它是一个很棒的产品,非常快速和可靠,但价格昂贵。
希望对你有帮助
关于java - Java 客户端和 Java 之间的高性能消息传递 'Back End',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16634401/
有时,我倾向于(重复)执行next next a 来获取特定元素。当您需要 2 次或更少的遍历时,这很有效。然而,它很快就会变得很麻烦。对于这个简单的情况,循环的开销太大。 幸运的是,如果您知道位置,
我有一个非常复杂的表单,其中有多个“阶段”。 每个阶段都有表单,用户可以在其中添加不定数量的行。每次用户单击“继续”时,这些表单都会保存到数据库中(每个“阶段”在数据库中都有自己的表)并显示下一阶段。
我根据官方指南调整了我的网站 https://developer.apple.com/library/archive/documentation/AppleApplications/Reference
Action Bar 我说的是(图中的 1 号)带有小箭头的按钮和应用程序图标以及屏幕的左上角。当我们选择“黑色 Activity ”模板时,它会自动定义。 我的应用程序有一个非常庞大的层次结构图,现
我正在开发一个网站,我需要返回到我访问过的页面。我正在使用parent.history.back。我的一位 friend 建议使用 window.history.back 而不是 Parent.his
我正在寻找一种方法将所有后退按钮文本设置为“后退”,而不是默认显示 segue 来自的 View 的标题。 我有多个 View 和 segue,希望有比在所有 View Controller 中使用
我有一个名为 Place 的 Activity 我从其之前名为 City 的 Activity 来到 Place Activity 。 我使用以下代码在 Place Activity 中将后退按钮添加
这个问题已经有答案了: AlertDialog OnBackPressed() Not Working Properly (3 个回答) 已关闭 4 年前。 我想实现抽屉导航后按对话框上的对话框后按。
我为一家报纸开发了一个非常受欢迎的新闻应用程序。不幸的是,我的用户报告了我可以重现的以下问题: 该应用程序基本上由一个 GroupedItemsPage 和一个 ItemDetailPage (以及其
我一直想知道是否有正确的方法来执行此操作:当我使用 AJAX 动态加载脚本时,我可以选择将 url 传回服务器上的脚本,然后运行:或者只是传回脚本本身。 我采用了传回内容脚本本身的方法,因为我认为我只
我是用 Linux BASH shell 写的,但如果有更好的 PHP 解决方案就好了。 我需要从 12 个元素的数组中随机选择一个。这是我到目前为止一直在做的事情: # Display/return
据我所知,似乎插入 UINavigationController背靠背动画在 iOS7 上造成了死锁。 我最初在 iOS6 上遇到崩溃并想出了以下解决方案: 创建一个 View Controller
我目前正在为我的电子应用程序构建一个许可系统。但我在以下方面没有取得成功: promise 提示用户输入(电子提示模块) 之后立即对服务器进行 ajax 调用 评估响应(来自服务器端脚本的 1\n 或
我正在尝试为我在开发小型应用程序时遇到的一个小问题找出解决方案。我试图传递一个在一个支持 bean 中创建的对象,然后使用我在另一个支持 bean 中创建的同一对象。但是,我不想制作这些支持 bean
我有一个带有 Activity 的应用程序。在 Activity 中,我使用对话框 fragment 设置一些局部变量(这些变量确实有默认值)。我还有一个带有“三点”图标的操作栏,允许用户设置一些首选
我正在使用 React Navigation 3 升级我的 React Native 应用程序的路由器配置,现在已经改进了很多东西,但我不明白为什么当我在 Android 中按下后退按钮时,没有将我发
有没有办法通过 python 笔记本确定现有的 Azure Databricks Secret Scope 是否由 Key Vault 或 Databricks 支持? dbutils.secrets
我有一个基于 backbone.js 路由器的应用程序,它使用默认的 hashchange 处理程序在页面之间移动。在一个页面上有一个触发模态框的按钮,如果用户按下返回,我想关闭它,而不是将用户返回历
我试图了解层支持的 NSViews 是如何工作的。我在 playground 中创建了以下代码。 import Cocoa import XCPlayground class MyView: NSVi
我将鼠标悬停在导航栏中的一个链接上,它改变了颜色。 我在 Firefox 和 Safari 中遇到一个奇怪的问题:当我在浏览器中返回时(通过用鼠标单击后退按钮)悬停链接后,链接的颜色不会更改为其原始状
我是一名优秀的程序员,十分优秀!