概述
消息系统允许我们以松耦合的方式连接不同的系统在一起,并具有一定可靠性。Java消息服务(JMS)提供商使用事务性的系统,能够原子性的提交或回滚的变化。不同于基于远程过程调用(RPC)模式的系统,消息系统主要使用异步消息传递模式,消息请求和响应之间没有紧密关系。大多数消息系统也支持请求-响应模式,但是这不是一个消息系统主要的功能。
HornetQ简介
HornetQ是一个多协议,由Red Hat开发的异步消息系统。HornetQ提供高可用性(HA),在一个服务器出现故障的情况下客户端自动切换到其他服务器,保证消息的可靠性。HornetQ还支持灵活的基于负载均衡消息的集群解决方案。
HornetQ的使用Acceptors和Connectors的概念作为一个消息系统的重要组成部分。Acceptors和Connectors分别决定接收进来连接的方式及使连接到服务器(其它HornetQ的服务器或JMS客户端)。换句话说,Acceptors决定HornetQ服务器的监听地址。另一方面,Connectors用于与HornetQ服务器通信,因此Connectors被客户端或其他HornetQ服务器使用。HornetQ的服务器使用BROADCAST GROUPS来广播自己的连接信息到其他监听广播消息(DISCOVERY GROUP)的HornetQ服务器,当JMS客户端通过JNDI查找一个ConnectionFactory并发送消息HornetQ的目的地,ConnectionFactory使用Connectors。
HornetQ提供两种类型的Acceptors和Connectors:invm和netty。如果连接在同一个JVM中invm更有效,net