任意拓扑的联邦式路由网络
为了最大限度的提高系统的扩展性,SynchroMQ 4.0可以将多个服务器节点组成一个联邦式的虚拟网络,该服务器网络对于JMS客户端就如同一个虚拟的SynchroMQ服务器一样,和网络中的不同服务器节点相连接的JMS客户端可以正常的进行消息通信,消息会在虚拟网络中进行路由和存储转发并最终到达目的地。
为了最大限度的提高系统的灵活性,用户可以将服务器节点组成任意拓扑结构的虚拟网络,即使有环路也不会对路由有任何影响。SynchroMQ 4.0所采用的独一无二的动态路由算法可以在节点间自动交换路由信息,无需任何人工配置和干预,它可以自动找到到达目标的最优路径,而且一旦某个该路径上 的服务器节点崩溃,下一个最佳的冗余路径会被选择继续进行消息的传输,如果没有到达目的地的路径,则消息会被持久保存在相关的服务器节点,当路由重新建立 后,消息会被继续传输。
SynchroMQ服务器组成的任意拓扑虚拟网
高可靠和容错特性
对于SynchroMQ 4.0服务器,其可以保证持久消息的的可靠传输,即使在网络异常中断、人为关闭进程、操作系统崩溃等情况下,仍可以确保消息不丢失。当服务器故障恢复或者 重新启动后消息能继续完成传输,并且实现消息传输一次且仅有一次(Once and only once)的语义;
对于SynchroMQ 4.0服务器所组成的联邦式虚拟网络,其中的任一节点的失效不会导致整个系统的失效,具有良好的容错性。正如上面所介绍的,一旦某个路由被破坏,下一个最 佳的冗余路径会被选择继续进行消息的传输,如果当前没有到达目的地的路径,则消息会被持久保存,待路由重新建立后,消息会被继续送达目的地。
SynchroMQ虚拟网的自适应路由机制
可靠组播服务器互连
在局域网范围内,通过可靠组播协议可以大范围的进行服务器互连,提供很高的消息转发效率,并且可以和联邦路由网络结合,极大的提高系统的扩展性。
可靠组播和SynchroMQ虚拟网的结合
完全符合JMS标准
SynchroMQ4.0 100%符合国际消息中间件标准JMS规范,完全实现JMS规范所要求的所有功能,包括队列和发布/订阅两种消息模型、同步和异步处传输、五种消息类型、 消息的内容过滤、本地事务、持久订阅等。SynchroMQ 4.0完全遵循JMS API,极大降低了开发人员的学习难度,最大化了用户应用系统的互操作性和移植性。此外还在安全、层次性主题、联邦网络、管理以及系统的高扩展性方面做了 很多的扩展。
高伸缩性和扩展性
SynchroMQ 4.0支持大规模的分布式应用。对于单个的服务器节点,采用Java异步网络NIO技术、自适应线程池设计以及更高效率的先进缓冲交换技术,使每个结点都 可以承受多达上千个并发客户的连接。采用联邦集群和动态路由技术,支持在Internet范围内的部署和应用。
高性能、灵活的数据库连接池
SynchroMQ 4.0实现了高性能和灵活的数据库连接池,它支持Oracle、Sybase、DB2、SQL Server、MySQL、HSQLDB等所有提供JDBC连接的大中型数据库。数据库连接池支持动态建立和去除连接,能够按需提供数据库连接,在不需要 时又可以节省资源的消耗,极大的提高了数据库资源的利用率和访问效率。
高度的安全性
SynchroMQ 4.0提供了一个高度可配置和完整的安全子系统,它通过结合用户、用户组、主题和队列资源、访问控制列表(ACL)以及允许连接的主机列表来细致入微的控 制用户的访问权限:谁可以向某个主题/队列发布或者发送消息、谁可以从某个主题/队列订阅或者接收消息、哪些主机允许向服务器发起连接等。此外, SynchroMQ 4.0通过JSSE提供SSL安全,它支持128位的消息加密。
使用HTTP隧道技术穿透防火墙
SynchroMQ 4.0通过HTTP隧道技术实现了防火墙内的客户与服务器的连接以及防火墙内外的服务器之间的连接,仅需非常简单的设置,HTTP隧道即可自动建立。

JMS客户和SynchroMQ服务器建立HTTP隧道

SynchroMQ服务器之间的路由连接建立HTTP隧道
层次性主题
SynchroMQ 4.0对JMS所定义的主题概念进行了扩展,使其具有层次性的结构。一个主题可以定义成包含多层子主题的结构,例如 “news.sports.football,news.sports.basketball”。消息发布者可以使用类似SQL语言中的通配符实现一次对 多个主题发布消息以及订阅者可以一次订阅多个主题,例如“news.sport_.%ball”。
SynchroMQ4.0特性列表:
|
特性
|
说明
|
|
JMS 1.0.2标准
|
使用了开放的工业标准,最大化互操作性和移植性。
|
|
任意拓扑的联邦式路由网络
|
为 了最大限度的提高系统的扩展性,将多个服务器节点组成一个联邦式的虚拟网络,对于JMS客户端该网络就如同一个虚拟的SynchroMQ服务器一样,和网 络中不同服务器节点相连接的JMS客户端可以正常的进行消息通信,极大的提高系统的扩展性,使其可以支持Internet的应用。
|
|
100%高可靠消息传输
|
确保信息可靠传输,即使在网络通信不可靠或服务器崩溃也能保证消息不丢失。
|
|
访问控制
|
提供了完备的访问控制,包括可创建用户、用户组和资源组,可以对任意队列或者主题进行授权访问;可以定义允许访问主机列表
|
|
流量控制
|
在Point-to-point和publish/subscribe模式下自动控制发送者发送消息的速率,保证消息接收者不会被淹没
|
|
传输任意数据
|
支持Text, Object,Byte, Map,Stream五中类型的消息,可以方便的传输任意数据
|
|
同步和异步消息接收
|
同时支持同步和异步两种接收模式
|
|
持久订阅
|
对于持久订阅者,当它和SynchroMQ断开,它所订阅的消息依然由SynchroMQ保留,当它再次连接后,这些消息又会发送给它
|
|
层次性主题
|
支持发布者一次对多个主题发布消息以及订阅者可以一次订阅多个主题
|
|
本地事务支持
|
可以将若干发送和接收的消息作为一个逻辑单元进行提交或者回滚操作
|
|
消息过滤
|
订阅者可以采用SQL-92语法对消息进行过滤,SynchroMQ保证只发送他所感兴趣的消息
|
|
支持非阻塞IO
|
非阻塞网络IO可以使SynchroMQ仅使用少量线程就可以支持数以千计的并发网络连接,使系统具有无限的伸缩性,非常适合于大规模的消息应用
|
|
数据库存储支持和JDBC数据库连接池
|
支持Oracle、Sybase、DB2、SQL Server、MySQL、HSQLDB等所有提供JDBC连接的大中小型数据库。数据库连接池支持动态建立和去除连接,极大的提高了数据库资源的利用率和访问效率。
|
|
可靠组播服务器互连
|
在局域网范围内,通过可靠组播协议可以大范围的进行服务器互连,提供很高的消息转发效率,并且可以和联邦路由网络结合,极大的提高系统的扩展性
|
|
安全Socket SSL
|
可以使用SSL进行数据传输,保证消息的安全性
|
|
HTTP隧道技术
|
支持HTTPS,从而可以利用HTTP代理服务器进行消息传输
|
|
持久消息和非持久消息
|
对于持久消息传输,保证"一次且仅有一次"语义(once and only once);对于非持久消息,保证"至多一次"语义(at most once)
|
|
JNDI
|
实现了JNDI 1.2接口规范的部分接口,客户可以利用该接口访问队列和主题对象
|
|
完全支持point-to-point模式和publish/subscribe模式
|
PTP是点对点传输消息,建立在消息队列的基础上;Pub/Sub允许一个消息同时被发送给多个接收者
|
|
高度可配置系统
|
SynchroMQ是一个灵活的消息系统,可以按照不同的应用要求对其进行相应的配置,以便使其达到最优化
|
|