Welcome 微信登录

首页 / 软件开发 / JAVA / WildFly评估之消息子系统

WildFly评估之消息子系统2014-10-14 infoq 吴杰WildFly,前身是JBoss AS,从V8开始为区别于JBoss EAP,更名为WildFly。HornetQ是JBoss开发的一个独立的消息中间件,被整合进WildFly作为消息子系统。

HornetQ完全支持JMS,HornetQ不但支持JMS1.1 API同时也定义属于自己的消息API(如下图中的Core Client),以最大限度地提升HornetQ的性能和灵活性。

图 1 客户程序HornetQ的两种交互模式

关于Core Client的API介绍请参见:http://docs.jboss.org/hornetq/2.3.0.CR2/docs/api/hornetq-client/

1.1.1. 消息类型

HornetQ与JMS保持一致支持两种消息类型:Point-to-Point和Publish/Subscribe。

Point-to-Point

图 2 消息类型之Point-to-Point

URL:http://www.bianceng.cn/Programming/Java/201410/45833.htm

Publish/Subscribe

图 3 消息类型之Publish/Subscribe

1.1.2. HornetQ的专用术语说明

为了能够更好地使用WildFly的消息子系统,有必要对其专用术语做一下说明。其中有两组概念比较重要:

Acceptors and Connectors

Invm and Netty

1.1.2.1. Acceptors and Connectors

Acceptor

指定HornetQ Server接受什么类型的连接(Connection)

Connector

为客户端指定连接HornetQ Server的方式

相关配置定义在standalone以及domain的profile中,以下列举片段供参考。

<connectors><netty-connector name="netty" socket-binding="messaging"/><netty-connector name="netty-throughput" socket-binding="messaging-throughput"><param key="batch-delay" value="50"/></netty-connector><servlet-connector name="servlet" socket-binding="http" host="default-host"/><in-vm-connector name="in-vm" server-id="0"/></connectors><acceptors><netty-acceptor name="netty" socket-binding="messaging"/><netty-acceptor name="netty-throughput" socket-binding="messaging-throughput"> <param key="batch-delay" value="50"/><param key="direct-deliver" value="false"/></netty-acceptor><in-vm-acceptor name="in-vm" server-id="0"/></acceptors>