西安协同系列软件产品SynchroMQ消息中间件版本4.0白皮书SynchroMQ消息中间件白皮书概述SynchroMQ4.0是一个健壮、高性能、极具扩展性的具有工业标准、安全、可靠的消息传输系统,它为开发企业级应用提供了一个“消息高速路”,很好地支持分布式系统的开发、集成和运行,为跨越不同操作系统和网络平台的分布式应用提供可靠、高效的消息发送和管理服务,可以应用在企业应用集成(EAI)、电子商务、电子政务、ERP、CRM、电信、金融等广大领域。SynchroMQ4.0采用纯Java开发,完全实现了SUN的JMS接口规范(JavaMessageServiceAPI)1.02标准,为开发和部署消息应用提供了所有必须的特性,包括了分布式系统的关键服务的支持,例如事务和可靠消息传输,为开发者屏蔽了底层的网络通信细节,提供了标准、易用的编程接口,极大的减少了开发Internet/Intranet应用所花费的时间和费用。SynchroMQ4.0高级的联邦式集群体系架构使得多个服务器节点可以在Internet中以任意拓扑结构组成虚拟网络,借助于自动的动态路由算法实现分布式发布/订阅和远程队列的访问,从而允许客户端在任意节点向系统发送和接收消息,这使得系统的扩展性和可用性得到了极大的提高,满足了企业级大规模应用的需要。同时不需要任何复杂的人工配置,易学易用,管理简单方便。此外,SynchroMQ4.0支持通过可靠组播进行服务器互连,提供局域网范围内无限的扩展性。任意拓扑的联邦式路由网络为了最大限度的提高系统的扩展性,SynchroMQ可以将多个服务器节点组成一个联邦SynchroMQServerSecurityJNDINIOThreadPoolRoutingReliableMulticastAdministrationQueueswithCacheHigh-PerformanceFile-basedDataStore/JDBCDatabaseERPCRMLegacySynchroMQ服务器主要组成式的虚拟网络,该服务器网络对于JMS客户端就如同一个虚拟的SynchroMQ服务器一样,和网络中的不同服务器节点相连接的JMS客户端可以正常的进行消息通信,消息会在虚拟网络中进行路由和存储转发并最终到达目的地。为了最大限度的提高系统的灵活性,用户可以将服务器节点组成任意拓扑结构的虚拟网络,即使有环路也不会对路由有任何影响。SynchroMQ所采用的独一无二的动态路由算法可以在节点间自动交换路由信息,无需任何人工配置和干预,它可以自动找到到达目标的最优路径,而且一旦某个该路径上的服务器节点崩溃,下一个最佳的冗余路径会被选择继续进行消息的传输,如果没有到达目的地的路径,则消息会被持久保存在相关的服务器节点,当路由重新建立后,消息会被继续传输。高可靠和容错特性对于SynchroMQ服务器,其可以保证持久消息的的可靠传输,即使在网络异常中断、人为关闭进程、操作系统崩溃等情况下,仍可以确保消息不丢失。当服务器故障恢复或者重新启动后消息能继续完成传输,并且实现消息传输一次且仅有一次(Onceandonlyonce)的语义;对于SynchroMQ服务器所组成的联邦式虚拟网络,其中的任一节点的失效不会导致整个系统的失效,具有良好的容错性。正如上面所介绍的,一旦某个路由被破坏,下一个最佳的冗余路径会被选择继续进行消息的传输,如果当前没有到达目的地的路径,则消息会被持久保存,待路由重新建立后,消息会被继续送达目的地。SynchroMQServerSynchroMQServerSynchroMQServerSynchroMQServerSynchroMQServerJMSClientJMSClientJMSClientJMSClientJMSClientJMSClientJMSClientSynchroMQ服务器组成的任意拓扑的虚拟网络可靠组播服务器互连在局域网范围内,通过可靠组播协议可以大范围的进行服务器互连,提供很高的消息转发效率,并且可以和联邦路由网络结合,极大的提高系统的扩展性。SynchroMQSynchroMQSynchroMQSynchroMQSynchroMQSynchroMQSynchroMQSynchroMQ路由失效之前的消息传输路由失效之后的消息传输SynchroMQ虚拟网络的自适应路由机制可靠组播和SynchroMQ虚拟网络的结合完全符合JMS标准SynchroMQ100%符合国际消息中间件标准JMS规范,完全实现JMS规范所要求的所有功能,包括队列和发布/订阅两种消息模型、同步和异步处传输、五种消息类型、消息的内容过滤、本地事务、持久订阅等。SynchroMQ完全遵循JMSAPI,极大降低了开发人员的学习难度,最大化了用户应用系统的互操作性和移植性。此外还在安全、层次性主题、联邦网络、管理以及系统的高扩展性方面做了很多的扩展。高伸缩性和扩展性SynchroMQ支持大规模的分布式应用。对于单个的服务器节点,采用Java异步网络NIO技术、自适应线程池设计以及更高效率的先进缓冲交换技术,使每个结点都可以承受多达上千个并发客户的连接。采用联邦集群和动态路由技术,支持在Internet范围内的部署和应用。高性能、灵活的数据库连接池SynchroMQ实现了高性能和灵活的数据库连接池,它支持Oracle、Sybase、DB2、SQLServer、MySQL、HSQLDB等所有提供JDBC连接的大中型数据库。数据库连接池支持动态建立和去除连接,能够按需提供数据库连接,在不需要时又可以节省资源的消耗,极大的提高了数据库资源的利用率和访问效率。高度的安全性SynchroMQ提供了一个高度可配置和完整的安全子系统,它通过结合用户、用户组、主题和队列资源、访问控制列表(ACL)以及允许连接的主机列表来细致入微的控制用户的访问权限:谁可以向某个主题/队列发布或者发送消息、谁可以从某个主题/队列订阅或者接收消息、哪些主机允许向服务器发起连接等。此外,SynchroMQ通过JSSE提供SSL安全,它支持128位的消息加密。使用HTTP隧道技术穿透防火墙SynchroMQ通过HTTP隧道技术实现了防火墙内的客户与服务器的连接以及防火墙内外的服务器之间的连接,仅需非常简单的设置,HTTP隧道即可自动建立。层次性主题SynchroMQ对JMS所定义的主题概念进行了扩展,使其具有层次性的结构。一个主题可以定义成包含多层子主题的结构,例如“news.sports.football,news.sports.basketball”。消息发布者可以使用类似SQL语言中的通配符实现一次对多个主题发布消息以及订阅者可以一次订阅多个主题,例如“news.sport_.%ball”。SynchroMQ4.0特性列表SynchroMQ4.0分为精简版和企业版,下面是企业版的特性列表及和精简版的对比:(1)SynchroMQ4.0企业版特性列表特性说明JMS1.0.2标准使用了开放的工业标准,最大化互操作性和移植性。任意拓扑的联邦式路由网络为了最大限度的提高系统的扩展性,将多个服务器节点组成一个联邦式的虚拟网络,对于JMS客户端该网络就如同一个虚拟的SynchroMQ服务器一样,和网络中不同服务器节点相连接的JMS客户端可以正常的进行消息通信,极大的提高系统的扩展性,使其可以支持Internet的应用。内部网络防火墙SynchroMQServerJMSclientJMSclientHTTP代理内部网络防火墙SynchroMQServerHTTP代理SynchroMQServerJMS客户和SynchroMQ服务器建立HTTP隧道连接SynchroMQ服务器之间的路由连接建立HTTP隧道连接100%高可靠消息传输确保信息可靠传输,即使在网络通信不可靠或服务器崩溃也能保证消息不丢失。访问控制提供了完备的访问控制,包括可创建用户、用户组和资源组,可以对任意队列或者主题进行授权访问;可以定义允许访问主机列表流量控制在Point-to-point和publish/subscribe模式下自动控制发送者发送消息的速率,保证消息接收者不会被淹没传输任意数据支持Text,Object,Byte,Map,Stream五中类型的消息,可以方便的传输任意数据同步和异步消息接收同时支持同步和异步两种接收模式持久订阅对于持久订阅者,当它和SynchroMQ断开,它所订阅的消息依然由SynchroMQ保留,当它再次连接后,这些消息又会发送给它层次性主题支持发布者一次对多个主题发布消息以及订阅者可以一次订阅多个主题本地事务支持可以将若干发送和接收的消息作为一个逻辑单元进行提交或者回滚操作消息过滤订阅者可以采用SQL-92语法对消息进行过滤,SynchroMQ保证只发送他所感兴趣的消息支持非阻塞IO非阻塞网络IO可以使SynchroMQ仅使用少量线程就可以支持数以千计的并发网络连接,使系统具有无限的伸缩性,非常适合于大规模的消息应用数据库存储支持和JDBC数据库连接池支持Oracle、Sybase、DB2、SQLServer、MySQL、HSQLDB等所有提供JDBC连接的大中小型数据库。数据库连接池支持动态建立和去除连接,极大的提高了数据库资源的利用率和访问效率。可靠组播服务器互连在局域网范围内,通过可靠组播协议可以大范围的进行服务器互连,提供很高的消息转发效率,并且可以和联邦路由网络结合,极大的提高系统的扩展性安全SocketSSL可以使用SSL进行数据传输,保证消息的安全性HTTP隧道技术支持HTTPS,从而可以利用HTTP代理服务器进行消息传输持久消息和非持久消息对于持久消息传输,保证一次且仅有一次语义(onceandonlyonce);对于非持久消息,保证至多一次语义(atmostonce)JNDI实现了JNDI1.2接口规范的部分接口,客户可以利用该接口访问队列和主题对象完全支持point-to-point模式和publish/subscribe模式PTP是点对点传输消息,建立在消息队列的基础上;Pub/Sub允许一个消息同时被发送给多个接收者高度可配置系统SynchroMQ是一个灵活的消息系统,可以按照不同的应用要求对其进行相应的配置,以便使其达到最优化(2)SynchroMQ4.0精简版和企业版特性对比版本特性SynchroMQLiteVersionSynchroMQEnterpriseVersion支持JMS1.02标准和API√√任意拓扑的联邦式路由网络√100%高可靠消息传输√√路由冗余,高容错√可靠组播服务器互连√支持非阻塞IO√√流量控制√√同步和异步消息接收√√消息过滤√√本地事务支持√√持久订阅√√传输任意数据√√高性能数据库连接池√√高级监控工具√√细粒度安全控制√√使用HTTP隧道技术穿透防火墙√√持久消息和非持久消息√√JNDI√√安全SocketSSL√√层次性主题√√并发连接数限制√需要注册授权√