HornetQ 部署指南修改版

njpenghao 贡献于2012-03-26

作者 微软用户  创建于2011-08-30 01:17:00   修改者微软用户  修改于2011-09-01 03:10:00字数7209

文档摘要:HornetQ 是一个开源项目,它的目标是一个多协议、可嵌入、高性能、可集群的异步的消息系统。
关键词:

 目录 Chapter1. 关于HornetQ 2 Chapter2. 部署方案 2 Chapter3. 部署步骤 2 3.1 HornetQ服务器实例配置 2 第一步 hornetq服务器配置实例的创建 2 第二步 运行脚本---Hornetq服务 3 第三步 消息队列的配置 3 第四步 HornetQ配置页面端口号修改 3 第五步 HornetQ服务配置检测 3 3.2应用程序的JBOSS服务器实例配置 4 第一步 新项目JBoss服务器配置 4 第二步 运行脚本----应用程序项目JBoss服务 4 第三步 HornetQ配置文件 4 第四步 本地JMS配置 5 第五步 远程JMS配置 5 第六步 消息队列的配置 6 第七步 conf.properties的配置 6 3.3 运行调试 6 A 原来的代码风格----注释依赖 6 B 现在的代码风格 7 C 运行 7 Chapter1. 关于HornetQ 什么是HornetQ? l HornetQ是一个开源项目,它的目标是一个多协议、可嵌入、高性能、可集群的异步的消息系统。 为什么使用HornetQ?以下给出了几个理由: l HornetQ是100%的开源软件。HornetQ采用Apache v2.0开源协议,对用户的限制最小。 l HornetQ的设计强调可用性。采用Java编写,可以在任何Java6+的平台上运行。 l 性能出众。不但对非持久化消息的处理性能达到了非常高的性能。独特高效的日志使持久消息处理接近非持久消息的性能。 l 简约原则。对第三方软件的依赖很少,根据不同的需要,HernetQ可以单独运行,也可以运行于JEE应用服务器中,它还可以嵌入到你自己的应用程序中。 l 超级灵活的集群方案。 l 完美的可获得性。HornetQ提供自动客户端失效备援功能,能保证在服务器故障时没有消息丢失或者消息重复。 Chapter2. 部署方案 l 部署方案:同一台机器上的两个不同的服务器实例配置。其中一个服务器实例配置是实现HornetQ服务,另一个服务器实例配置是实现应用程序项目服务。 l 优势之处:可以使用较多的监控策略,并且在一台机器上部署两个服务器实例时,可以节省资源。 Chapter3. 部署步骤 3.1 HornetQ服务器实例配置 这里在JBoss的Default服务器配置实例的基础上做些相应的修改。 第一步 hornetq服务器配置实例的创建 l 目标路径:JBOSS\server l 目标文件夹:JBOSS\server\hornetq l 操作:新建操作-----在目标路径下,新建目标文件夹hornetq,其中内容是以JBOSS\server\default文件为基础,copy过来。 第二步 运行脚本---Hornetq服务 l 目标文件:hornetq.bat l 目标路径:JBOSS\bin l 操作:新建操作------在目标路径下,新建批处理文件,文件名:hornetq.bat; l 文件内容:(不要隔行) run.bat -b 192.168.0.66 -c hornetq -Djava.rmi.server.hostname=192.168.0.66 -Dremoting.bing_by_host=false -Djboss.service.binding.set=ports-01 l 备注: -b 当前主机IP地址 -c 服务器实例配置的相对路径 即:JBOSS\server\hornetq -Djboss.service.binding.set=ports-01" 偏移量设置,该偏移量将影响JNDI和Hornet本身端口的偏移。这个是将端口的偏移量加上100 Jndi 原端口号 1099 Hornetq 原端口号 5445 l 相关文档查看: 1,bindings-jboss-beans.xml :偏移量以及相关端口的定义查看。 路径:BOSS\server\hornetq\conf\bindingservice.beans\META-INF 2. 参考文献 http://www.mastertheboss.com/jboss-application-server/296-jboss-port-configuration.html 第三步 消息队列的配置 l 目标文件:hornetq-jms.xml l 目标路径:JBOSS\server\hornetq\deploy\hornetq l 操作:修改操作,添加项目中相关的队列等 第四步 HornetQ配置页面端口号修改 l 目标文件:server.xml l 目标路径:JBOSS\server\hornetq\deploy\jbossweb.sar l 操作:修改操作: 这里修改的是端口号是 3100 l 备注:这一步的理由是为了 防止重复,防止与下面的应用程序服务器实例的配置页面端口号重复。 第五步 HornetQ服务配置检测 l 目标页面:http://192.168.0.66:3100/jmx-console/ l 操作:如果HornetQ配置成功,则会成功打开该页面 l 备注:JBOSS\server\hornetq\deploy 该部署下,只能是系统自带的架包,不可以有其他的多余的架包。 3.2应用程序的JBOSS服务器实例配置 这里设置一个新的项目JBoss服务器,目的是为了通过刚才配置的HornetQ服务来实现消息的发送和消费。因此,该JBoss服务器配置应该也是在JBOSS\server\default作相应的修改。只不过这里的修改是为了“连接”HornetQ服务的。 第一步 新项目JBoss服务器配置 l 目标文件夹:default2 l 目标路径:JBOSS\server l 操作:新建操作-----在目标路径下,新建目标文件夹default2,其中内容是以JBOSS\server\default文件为基础,copy过来。 第二步 运行脚本----应用程序项目JBoss l 目标文件:****.Bat l 目标路径: JBOSS/bin l 操作:新建操作----这里作为项目新的运行脚本,应该模仿certus.bat 与 run.conf.bat 做相应的参数设置,这里值得一提的是 类似于 certus.bat,脚本应该这样写; run.bat -b 192.168.0.66 -c default2 -Djava.rmi.server.hostname=192.168.0.66 -Dremoting.bind_by_host=false 第三步 HornetQ配置文件 l 目标文件:hornetq-configuration.xml l 目标路径:JBOSS\server\default2\deploy\hornetq l 操作:修改操作 org.hornetq.core.remoting.impl.netty.NettyConnectorFactory //host:主机地址,当然如果涉及到远程主机时,这里会另作修改 org.hornetq.core.remoting.impl.netty.NettyConnectorFactory org.hornetq.core.remoting.impl.invm.InVMConnectorFactory l 备注:这里的配置应该是依据HornetQ服务的偏移设置的。 第四步 本地JMS配置 l 目标文件:ra.xml l 目标路径:JBOSS\server\default2\deploy\jms-ra.rar\META-INF l 操作:修改操作 org.hornetq.ra.HornetQResourceAdapter The transport type ConnectorClassName java.lang.String org.hornetq.core.remoting.impl.netty.NettyConnectorFactory The transport configuration. These values must be in the form of key=val;key=val; ConnectionParameters java.lang.String host=192.168.0.66;port=5545 l 备注:这里主要涉及本地JMS的配置问题。主要修改两个配置属性,连接类名字和连接参数设置,注意端口和IP。 第五步 远程JMS配置 l 目标文件:ra.xml l 目标路径:JBOSS\server\default2\deploy\jms-remote-qms-ra.rar\META-INF l 操作:修改操作 org.hornetq.ra.HornetQResourceAdapter The transport type ConnectorClassName java.lang.String org.hornetq.core.remoting.impl.netty.NettyConnectorFactory The transport configuration. These values must be in the form of key=val;key=val; ConnectionParameters java.lang.String host=192.168.0.66;port=5545 第六步 消息队列的配置 l 目标文件:hornetq-jms.xml l 目标路径:JBOSS\server\default2\deploy\hornetq l 操作:修改操作 这里将涉及到队列的,全部删除,因为我们使用的是前面刚配置出来的HornetQ服务(3.2)。 第七步conf.properties的配置 l 目标文件:conf.properties l 目标路径:JBOSS\server\default2\deploy l 操作:修改操作: #部署配置文件 #配置QMS服务器地址 qmsIp=192.168.0.66:1099 #配置QCS id qcsId=1 #配置QCS snmp trap端口 trapPort=1162 #配置和Nsa交互的hornetq地址 HornetIp=jnp://192.168.0.66:1199 ………………… 备注:该文件是项目文件,目的是为了配置Hornetq的配置IP,之所以设置1199,原因是偏移有关的。 3.3 运行调试 A 原来的代码风格----注释依赖 一个消息的具体实例:(部分相关代码) //字段区 //依赖注释 连接工厂 @Resource(mappedName = "/ConnectionFactory") private ConnectionFactory connFactory; private Connection conn; private Session session; //依赖注释 topic消息 @Resource(mappedName = "/topic/StreamConfigQueue") private Topic topic; private MessageProducer producer; //方法区 // 连接的初始化 conn = connFactory.createConnection(); // 会话的初始化 session = conn.createSession(false, Session.AUTO_ACKNOWLEDGE); // 消息生产者的初始化 producer = session.createProducer(topic); B 现在的代码风格 //字段区 //不再需要依赖注释 连接工厂 private ConnectionFactory connFactory; private Connection conn; private Session session; //不再需要依赖注释 topic消息 private Topic topic; private MessageProducer producer; //方法区 //上下文的初始化 Properties props = PropsUtils.loadDeploy(); Hashtable c = new Hashtable(); // HornetIp 见3.2 第七步 c.put("java.naming.provider.url", props.getProperty("HornetIp")); InitialContext ctx = new InitialContext(c); // 连接工厂的初始化 lookup 主动查询的方式 connFactory = (ConnectionFactory)ctx.lookup("/ConnectionFactory"); // topic消息的初始化 lookup topic = (Topic)ctx.lookup("/topic/StreamConfigQueue"); conn = connFactory.createConnection(); session = conn.createSession(false, Session.AUTO_ACKNOWLEDGE); producer = session.createProducer(topic); C 运行 运行前,确保调试模式 不是本地调试; 运行时,先要启动HornetQ服务运行脚本,进入相关的JBOSS配置网页检测下;然后再启动新建的项目运行脚本。

下载文档到电脑,查找使用更方便

文档的实际排版效果,会与网站的显示效果略有不同!!

需要 10 金币 [ 分享文档获得金币 ] 3 人已下载

下载文档