国源益通智能监控综合作战平台-技术方案内容摘要:

费者注册了持久订阅。 ActiveMQ A. 产品概述 已有的 MOM 系统包括 IBM 的 MQSeries、 Microsoft 的 MSMQ 和 BEA 的 MessageQ 等。 由于没有一个通用的标准,这些系统很难实现互操作和无缝连接。 Java Message Service( JMS)是 SUN 提出的旨在统一各种 MOM 系统接口的规范,它包含点对点( Point to Point, PTP)和发布 /订阅( Publish/Subscribe, pub/sub)两种消息模型,提供可靠消息传输、事务和消息过滤等机制。 JAVA 消息服务( JMS)定义了 Java 中访问消息中间件的接口。 JMS 只是接口,并没有给予实现,实现 JMS 接口的消息中间件称为 JMS Provider,例如 ActiveMQ。 ActiveMQ 是现在最流行的功能强大的开源消息总线,完全支持 JMS 和 J2EE 规范的 JMS Provider 实现。 尽管 JMS 规范出台已经是很久的事情了,但是 JMS 在当今的 J2EE 应用中间仍然扮演着特殊的地位。 其他开源 JMS 供应商 ,包括: Jbossmq( jboss 4)、 jboss messaging( jboss 5)、 joram、 openjms、mantamq、 ubermq、 SomnifugiJMS。 开源的 JMS Provider 大部分都已经停止发展了, 但是 ActiveMQ依托于 Apache 基金组织一直持续发展。 国源益通智能交通平台 — GYYTITS解决方案 技术文件 北京国源益通软件有限责任公司 01062410166/77 10 现在的 商业应用程序服务器 大部分都 包含 JMS Provider 的实现, 但是价格昂贵,非常庞大。 当然,也有独立的 商业 JMS 供应商 ,其中包括: Apache MQ、 IBM WebSphere MQ、 BEA WebLogic JMS、 Oracle AQ、 Sonic JMS 等。 微软公司提供的 MSMQ 提供了消息队列服务,随着 Windows 操作系统免费提供。 从 行业竞争 来看, ActiveMQ 明显的竞争者并不多,因为它是作为独立的开源 JMS Provider 出现的,很容易被用于多种结构设计中,使用 ActiveMQ 作为默认 JMS Provider 的开源项目有 ServiceMix,Geronimo。 B. 产品 特性  支持使用多种语言和协议编写客户端程序。 编程语言: Java, C, C++, C, Ruby, Perl, Python,PHP。 应用协议: OpenWire, Stomp, WS Notification, XMPP, AMQP。  完全支持企业集成模式,无论在 JMS 客户端还是消息代理。  支持许多先进的功能,如邮件组、虚拟目的地、通配符和复合目的地。  完全支持 JMS 和 J2EE 规范,包括持久化、事务和 XA 消息。  支持 Spring, ActiveMQ 可以很容易内嵌到使用 Spring 的应用程序和系统中去,而且也支持Spring 的特性。  通过了常见 J2EE 服务器的测试,如 Geronimo, JBoss 4, GlassFish, WebLogic。 其中通过 JCA 资源 适配器 的配置,可以让 ActiveMQ 可以自动的部署到任何兼容 J2EE 商业服务器上。  支持多种连接协议: inVM, TCP, SSL, NIO, UDP,组播, JGroups, JXTA。  支持通过 JDBC 和 journal 提供高速的消息持久化。  高性能集群设计,客户端 /服务器模式,点对点的支持。  REST API 提供 了 技术语言无关的 纯粹基于网络消息接口。  提供浏览器 AJAX 支持,使用浏览器收发消息,实现了实时通信。  提供 CXF 和 Axis 支持,因此 ActiveMQ 很容易 嵌入 这些网站 服务 ,提供可靠的消息传递。  可作为一个在内存中的 JMS Provider,适合 JMS 的单元测试。 Microsoft Message Queue A. 产品概述 MSMQ(微软消息队列)是微软公司的成熟产品,最新版本为 MSMQ。 MSMQ 集运行系统、管理工具集和开发系统三者于一身,既为上层应用系统提供了可靠、高效的数据通信服务,又为网络国源益通智能交通平台 — GYYTITS解决方案 技术文件 北京国源益通软件有限责任公司 01062410166/77 11 系统提供了实时管理和监控的工具,同时还为编程人员提供了简单、易用、功能强大的应用开发接口,由于它对异构网络的透明性,并且保证消息的一次性可靠传输,对事 务的支持,有效的路由机制等特性,使得 MSMQ 特别适合开发分布的,松散耦合的 Windows 应用程序。 MSMQ 技术是一种利用队列机制实现部件间或者是应用程序间通信的技术,它允许以异步、实时的方式相互传递信息。 消息队列是一种灵活而可靠的通信机制,并且适合于各种程序,开发人员并不需要了解许多的细节。 B. 产品 特性  异步通信。 MSMQ 可以分布式组件并以一种异步方式进行通信,而不必担心占用宝贵的网络资源。  消息路由可靠, MSMQ 保证消息只传递一次,这样使两个接收者不会意外地得到相同的消息,消息,也不会丢失。  事务集成, MSMQ 可以自动地调用事务服务来保证数据的完整性。  自动消息日志, MSMQ 日志保存发送和接收所有的消息,并且进行自动的审计跟踪,发生错误时易于恢复。  安全性, MSMQ 具有保密性、数字签名等特性,能够对网络上传送的消息进行数字签名及加密传输,而且在 MSMQ 服务端可以过滤掉未经授权的消息,从而保证了安全性。  优先级, MSMQ 支持消息队列优先级机制,它将有选择地传送优先级较高的消息,让程序能够优先处理重要事件。  协议无关性, MSMQ 消息的发送与网络协议无关,只需提供消息队列的名字即可实现消息的发送与接收。 Windows Server 2020 R2 / Windows 7 一起发布的 MSMQ 中,引入了下列的新功能:  处理大量队列的能力。 MSMQ 提供了处理大量队列的能力。 尽管 MSMQ 未对可创建的队列数目实行特定限制,但当有数千个队列时,还是会对性能造成负面影响。 特别是将队列加载到内存中时,因队列查找的算法,而大大增加了消息队列服务的启动时间。 而对于Windows Server 2020 R Windows 7,已对消息队列在启动时使用的队列查找算法进行了优化,当系统上承载了大量队列时,会显著增 加消息队列的启动性能。  更安全的身份验证算法  MSMQ 支持安全哈希算法 ( SHA2) ,和 Windows Server 2020 R2 支持的所有高级哈希算法。 默认设置为 SHA2,摘要长度为 512 位。 由于 SHA消息摘要版本 2( MD2) 、 MD国源益通智能交通平台 — GYYTITS解决方案 技术文件 北京国源益通软件有限责任公司 01062410166/77 12 MD5 和消息验证代码 ( MAC) 等算法,被认为不够安全,因此默认情况下,对这些算法的支持在 MSMQ 中 处于禁 用状 态。 若要 启用 不够安 全的 算法 ,必 須自 行添加WeakHashAlgorithms 注册表项。 ActiveMQ 与 MSMQ 对比 1. 支持方式差异 . 发送内容 ActiveMQ 可以发送值类型也可以发送引用类型,而 MSMQ 只能发送值类型。 . 消息格式 ActiveMQ MSMQ ITextMessage XmlMessageFormatter IMapMessage BinaryMessageFormatter IBytesMessage ActiveXMessageFormatter IObjectMessage IStreamMessage . 消息划分 MSMQ 将消息划分为  用户队列  公共队列:在整个“消息队列”网络中复制,并且有可能由网络 连接的所有站点访问。  专用队列,不在整个网络中发布。 相反,它们仅在所驻留的本地计算机上可用。 专用队列只能由知道队列的完整路径名或标签的应用程序访问。  管理队列,包含确认在给定“消息队列”网络中发送的消息回执的消息。  响应队列,包含目标应用程序接收到消息时返回给发送应用程序响应消息。  系统队列  日记队列,可选地存储发送消息的副本和从队列中移除的消息副。  死信队列,存储无法传递或已过期的消息的副本。  报告队列,包含指示消息到达目标所经过的路由的消息,还可以含测试消息。 每台计算机上只能有一个报告队列。  专用系统队 列,是一系列存储系统执行消息处理操作所需的管理和通知消息的专用队列。 ActiveMQ 没有类似的划分 . 消息等级 国源益通智能交通平台 — GYYTITS解决方案 技术文件 北京国源益通软件有限责任公司 01062410166/77 13 ActiveMQ MSMQ Lowest = 0 Lowest = 0 VeryLow = 1 VeryLow = 1 Low = 2 Low = 2 AboveLow = 3 Normal = 3 BelowNormal = 4 AboveNormal = 4 Normal = 5 High = 5 AboveNormal = 6 VeryHigh = 6 High = 7 Highest = 7 VeryHigh = 8 Highest = 9 . ActiveMQ 支持软件级别的负载均衡而 MSMQ 不支持。 . 共同支持机制  都支持事务  都支持同步和异步两种接收方式  消息都具有快递方式和可恢复方式(永久存储)。  快递方式稍有差异。 MSMQ 的快递方式只有在删除、重启机器的时候消息才会销毁而ActiveMQ 可以设置保存一定时间后销毁。  都支持点对点和发布订阅两种模式 2. 性能对比 机器配置: CPU 双核 ,内存 + Windows2020 R2 . 启动停机测试 ActiveMQ MSMQ 重启测试: 20W 数据需要 1 分钟, 100W 在 3 分钟,200W 在 10 分钟左右。 恢复时间主要消耗在 kaha 上,如果使用 jdbc 存储,所有恢复时间都在 1 分钟之内。 无论重启或是停机在 20W, 100W 已及 200W 数据下都瞬间完成。 但是清空百万级别的队列操作无法响应,必须 KILL 进 程。 (有时导致死机) 停机测试: ActiveMQ 停机速度很快,基本没有出现过需要强制 kill 的情况 . 5 分钟内 25 个用户发送性能测试对比 ActiveMQ MSMQ 队列为空: ActiveMQ 发送 1k, 10K, 100K 发送总量为 5k, , 平均每秒发送 19, 15, 15 25 个线程 1 分钟 ActiveMQ 发送 1k, 10K, 100K 发送总量为 20w, 12w, 5K。 队列为空: MSMQ 发送 1k, 10k, 100k 发送总量为 42w, 31w, 平均每秒发送 , 1k, 286 队列为 1W(时间为 1 分钟): 多线程 ActiveMQ 发送 1k, 10K, 100K 发送总量为队列为 1W(时间为 1 分钟): MSMQ 发送接收 1k, 10k, 100k 发送总量为 ,国源益通智能交通平台 — GYYTITS解决方案 技术文件 北京国源益通软件有限责任公司 01062410166/77 14 17w, 12w, , 平均每秒发送 956, 230, 20。 队列为 10W(时间为 1 分钟): 多线程 ActiveMQ 发送 1k, 10K, 100K 发送总量为13w, 7w, 队列为 10W(时间为 1 分钟): MSMQ 发送 1k, 10k, 100k 发 送总量为 , , 平均每秒发送 1k, 236, 19。 . 5 分钟内 25 个用户发送接收性能对比 ActiveMQ MSMQ 队列为空: ActiveMQ 发送并接收 1k, 10k, 100k 总量为 8W,4w, 6K,平均每秒 300, 100, 30 条 25 个线程 1 分钟 Active 发送接收 1k, 10K, 100K 发送总量为 35w, 12w, 队列为空: Msmq 发送并接收 1k, 10k, 100k 总量为 29w, , 平均每秒 900, 250, 40 条 队列为 1W(时间为 1 分钟): 多线程 ActiveMQ 发送接收。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。