ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

Java客户端和Java“后端”之间的高性能消息传递

2019-11-23 08:11:36  阅读:263  来源: 互联网

标签:sockets jms activemq spring java


我有一个基本的Java Messaging应用程序,可将JAVA对象发送到远程服务器进行处理.我在两边都利用了Spring支持,并使用ActiveMQ作为我的JMS提供者.它运作良好-我们没有遇到10个同时发送消息的客户端的实际问题.

但是,我们现在确实想要扩展.客户数量可能会增加到约500个.另外,每个客户端使用的带宽比最初声明的更多.

我想知道是否有人认为ActiveMQ是完成这项工作的正确工具-还是基于套接字的TCP / UDP是否可以帮助我们更好地扩展.我们对AMQ的某些“高级”功能并不熟悉,因为我们将其与基本的Spring JMS模板支持一起使用.

任何意见/想法将不胜感激.

谢谢

解决方法:

在不知道您要达到什么质量的服务和SLA的情况下,评估任何应用程序的消息传递服务实现时遵循的基本规则如下:

性能胜过可靠性

>快速消息传递
>间歇性消息丢失可以接受
>消息是非持久性的
>几乎没有成本

在这种情况下,像ZeroMq(及其他类似产品)之类的产品就足够了,因为它可以在套接字级别工作,可以分散,具有极低的延迟并可以在大型分布式系统中很好地扩展,并且是开源的,因此成本可以忽略不计.如果某些用例需要持久性和可靠性,请准备好实施传统消息中间件提供的现成解决方案(持久性,持久性,复制等).

平衡性能和可靠性

>性能和可靠性同样重要
>丢失的邮件不可接受
>消息是持久的
>需要一些支持
>成本相对较低

ActiveMQ,RabbitMq等产品在这里发挥作用.基于代理的中间件解决了可靠性和持久性问题,同时提供了良好的性能和可伸缩性.支持成本通常很低,足以让中小型公司负担得起而又不会破产.可以肯定地说,大多数消息传递需求都属于此类,因为它提供了性能和可靠性的可访问性,并且随着应用程序的成熟,您可以根据将来的需求为彼此牺牲一个,而不会因选择错误而放弃整个消息传递基础结构年前.

可靠性高于性能

>可靠性是最重要的
>无法删除邮件
>开箱即用地重新发送邮件
>现成可用的集群,HA,复制等.
>需要企业级的全球支持和专业服务
>高成本

金融公司,交易系统,银行应用程序等通常具有这样的要求,即消息系统的可靠性附有美元价值,而当事情不起作用时,就会损失金钱.因此,消息持久性,HA /容错,故障转移都是非常重要的.如果成本不是问题,请查看诸如WebLogic,Websphere,SonicMQ或TIBCO等产品,它们虽然价格昂贵,但都提供可靠的可靠性,企业支持并在负载下表现良好.我使用过SonicMQ,它是一个很棒的产品,非常快速且可靠,但要花大钱.

希望能帮助到你…

标签:sockets,jms,activemq,spring,java
来源: https://codeday.me/bug/20191123/2066399.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有