JBoss 4.0.2集群指南(二)----建立JMS集群服务

全面指南:JBoss应用服务器开发手册 本文还有配套的精品资源,点击获取 简介:《JBoss开发者手册》为Java开发人员提供了一站式的指南,全面涵盖了JBoss应用服务器的安装、配置、管理以及应用开发和部署。详细介绍了JBoss的核心功能,如EJB、JMS、JPA、Hibernate,并深入探讨了Web服务、安全管理、集群、热部署、日志记录与性能优化。手册旨在帮助开发者有效利用JBoss功能,并遵循最佳实践以提... 阅读详情

JBoss 4.0.2集群指南(二)

建立JMS集群服务

bromon原创 请尊重版权

  本问讲解如何在jboss 4.0.2中建立jms消息集群服务器,本文以《jboss 4.0.2集群指南》为基础,请参照阅读。(http://blog.yam.com/bromon/archives/454467.html)

  Jms集群的意义在于提升系统在处理消息时的并发能力,建立这样的集群,有三个步骤:

1、 配置jms消息持久化所使用的数据库
2、 配置分布式的jndi环境
3、 配置分布式jms

   在jboss 4.0.2中,系统采用hibernate的方式来保存消息,所以能够兼容hibernate支持的所有数据库。Jboss默认采用hsql,在我们的例 子中,将使用oracle 9.2。首先需要配置连接到数据库的jndi数据源。方法是把doc/examples/jca下的oracle-ds.xml文件拷贝到server/ all/farm下,并且修改其中的参数,保证数据库能够正确连接。Cluster启动后,该文件能够通过jboss的farm服务,自动拷贝到其他集群 节点,并且自动部署。假设jndi数据源的名称为:GlobalDS将doc/examples/jms下的oracle-jdbc3- service.xml文件拷贝到server/all/deploy-hasingleton/jms目录下,并且删除该目录下的hsqldb- jdbc2-service.xml。修改oracle-jdbc3-service.xml,在56行左右指定name的值为数据源的名字: GlobalDS。这样系统会使用该数据源来保存jms消息。

使用如下命令启动boss: run –c all

启动完成后,正常情况下会发现oracle数据库中多出了三张表:
1、Jms_message_log  该表用于保存所有未处理的点对点消息,表结构是:
    Messageid   消息id
   Destination  目的地
   Txid   事务id
   Txop   消息操作类型(a为新增,d为删除)
   Messageblob  消息内容

2、JMS_REFERENCE_LOG 用于保存所有未处理的topic消息,表结构是:
   Messageid
   Destination
   Txid
   Txop
   Messageblob
   Redelivered  消息是否被重发

3、JMS_TRANSACTION_LOG 用于保存处理消息过程中的一些重要的事务

  需要注意的是,jboss 3.2之后就不在支持以文件形式保存消息,虽然这样最会比数据库操作快一倍以上。Jboss官方的解释是,使用文件会让系统不可靠。

   客户端在发送jms消息的时候,首先需要向app server查询jndi,在jboss cluster中,jndi是作为一个分布式的singleton出现的。每个节点除了有自己的jndi环境以外,整个cluster还具有一些全局的 jndi,客户端在进行jndi查询的时候,只需要向这个全局的jndi进行查询,cluster如果在全局jndi中找不到对应的jndi对象,就会按 次序向每个节点询问,看他们的本地jndi中是否有匹配的对象,如果有则返回给客户,如果所有的节点都没有,则抛出异常。所有以all方式启动的 jboss,都会打开1100端口,这个端口是全局jndi的入口,所有节点都是如此。

  分布式的jndi有的节点有主次的区别,第一个 启动的jboss是主服务器,它会保存所有的全局jndi,其他的节点如果收到客户查询jndi的请求后,都会向主服务器请求数据。如果主服务器不幸 down掉,那么次节点会发现这个变化,然后启动自己的jndi环境,取代主服务器提供服务。

  下面是配置jms的jndi,打开server/all/deploy-hasingleton/jms下的jbossmq-destinations-

service.xml文件,增加一个名为test的destination,如下:
  name="jboss.mq.destination:service=Queue,name=test">
   

name="DestinationManager">jboss.mq:service=DestinationManager
 

  为了预防主服务器down了之后丢失该jndi,所以最好在每个节点都进行这个配置。

  在jboss 4.0.2的默认配置下,是不支持消息bean的集群的,要达到这个目的,必须下载一个jar包才能实现,可以从这里获得: http://blog.yam.com/bromon/archives/489460.html

  得到这个jar文件后,将它命名为cdot-jbossx.jar 文件放到server/all/deploy/jms下。下面编写消息bean,它的功能很简单,接收到来自test队列的消息后,打印消息id。

public class TestJmsBean
    implements MessageDrivenBean, MessageListener {
  MessageDrivenContext messageDrivenContext;
  public void ejbCreate() {
    System.out.println("消息bean创建");
  }

  public void ejbRemove() {
  }

  public void onMessage(Message msg) {
    try
    {
      System.out.println(msg.getJMSMessageID());
    }catch(Exception e)
    {
      e.printStackTrace();
    }
  }

  public void setMessageDrivenContext(MessageDrivenContext messageDrivenContext) {
    this.messageDrivenContext = messageDrivenContext;
  }
}

  把这个消息bean部署到server/all/farm目录下,它会被自动拷贝到cluster的其它节点,并且被自动部署,你会

看到如下部署信息:

  上面显示通过farm的方式,部署了一个名为GlobalDS的连接池,以及一个名为TestJms的消息bean。

下面写个客户端来测试一下:

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
      Properties p = new Properties();
      p.put(Context.INITIAL_CONTEXT_FACTORY,
            "org.jnp.interfaces.NamingContextFactory");
      p.put(Context.URL_PKG_PREFIXES, "jboss.naming:org.jnp.interfaces");
      p.put(Context.PROVIDER_URL, "172.16.0.116:1100"); // 全局jndi入口
      InitialContext ctx = new InitialContext(p);
      QueueConnectionFactory qcf = (QueueConnectionFactory) ctx.lookup(
          "ConnectionFactory");
      QueueConnection conn = qcf.createQueueConnection();

      Queue q = (Queue) ctx.lookup("queue/test");//查询名为test的destination
      QueueSession session = conn.createQueueSession(false,
          QueueSession.AUTO_ACKNOWLEDGE);
      conn.start();
      QueueSender sender = session.createSender(q);
      for (int i = 0; i < 10000; i++) {
        TextMessage tm = session.createTextMessage(sdf.format(new Date()));
        sender.send(tm, DeliveryMode.PERSISTENT, 4, 0);//发送持久化消息
        System.out.print("第" + i);
      }

      conn.stop();
      session.close();
      conn.close();

   执行一下,可以看到每个节点都创建了若干个消息bean,同时在处理消息,任意关闭一个次服务器,系统会自动fail over。查看Jms_message_log数据表,里面没有任何数据,表示所有的消息都已经被处理。
 Jboss 的jms cluster功能与websphere mq比较起来,是非常简陋的,可以配置的地方也很少,毕竟是免费的东西。Jboss的论坛上透露,在jboss 6.0中将会有全新的jboss messaging服务,不知要等到何年何月。针对这个cluster,我做过简单的测试,800万左右的消息数量,无一丢失,应该说还算比较可靠。响应 时间也还过的去,在简单的网络环境下,能够应付比较高的并发。

JBoss-4.2.3.GA-jdk6:企业级Java应用服务器安装包 JBoss 应用服务器是一款流行的开源 Java 应用服务器,为开发和部署企业级 Java 应用程序提供了一个全面的平台。它的设计重点是简化开发人员和管理员的工作,同时保持企业级性能和可伸缩性。JBoss 特别重视遵循 Java EE 规范,使得在 JBoss 上运行的应用能够享受跨平台兼容性和高度的可移植性。 阅读详情

相关推荐

RK3588与银河麒麟V10 SP1 2403深度适配:国产化硬件与操作系统的完美融合

本文深入探讨了RK3588处理器与银河麒麟V10 SP1 2403操作系统的深度适配,展示了国产化硬件与操作系统的完美融合。通过性能验证和实际应用测试,证明了这套组合在多媒体处理、AI推理和日常办公中的卓越表现,实现了完全自主可控的计算平台。

weixin_29194255的博客 248

JMS 端口

conf/bindingservice.beans/META-INF/bindings-jboss-beans.xml: bean name="ServiceBindingManagementObject"定义多个端口系列(以base为基础增长100 200 300...) ports-default 0 ports-01 100 ports-02 ...

weixin_34216196的博客 680

招行收款通SM2加密解密全流程解析:PHP开发者必看

本文详细解析了招商银行收款通服务中SM2加密解密的完整流程,特别针对PHP开发者提供了从密钥管理到签名验签的实战指南。涵盖国密算法基础、PHP环境配置、密钥安全存储及生产环境优化方案,帮助开发者快速实现高安全性的支付系统集成。

weixin_30632089的博客 651

JBoss 4.0.2集群指南(二)---建立JMS集群服务

 bromon原创 请尊重版权    本问讲解如何在jboss 4.0.2中建立jms消息集群服务器,本文以《jboss 4.0.2集群指南》为基础,请参照阅读:(http://blog.yam.com/bromon/archives/454467.html)    Jms集群的意义在于提升系统在处理消息时的并发能力,建立这样的集群,有三个步骤:1、    配置jms消息持久化所使用的数据库2、 

黑马王子的专栏 451

sentinel——SLC数据下载、DEM数据下载拼接、精密轨道数据下载方法

Sentinel——SLC数据下载、DEM数据下载、精密轨道数据下载方法 SLC数据下载 网址:https://search.asf.alaska.edu DEM数据下载 1 手动下载 http://srtm.csi.cgiar.org/srtmdata/ 3.在SARscape中使用下载好的DEM 将下载好的DEM放在软件默认下载DEM路径下(默认路径是C:\Users<用户名&g...

u011322358的博客 2万+

vivado Block Design 设计 .tcl 文件使用,导出,修改,添加方式

在vivado中生成 Block Design可以导出tcl文件进行保存(体积小),或者在别的版本vivado中打开(版本互通),这是一个非常好的功能。另外GitHub中很多项目都是采用这种方式上传的,学会如何使用可以快速修改历程项目。

2203_75345038的博客 2493

[转载]JBoss 4.0.2集群指南 建立JMS集群服务(图)

JBoss 4.0.2集群指南 建立JMS集群服务(图)Jms集群的意义在于提升系统在处理消息时的并发能力,建立这样的集群,有三个步骤:    1、  配置jms消息持久化所使用的数据库    2、  配置分布式的jndi环境 ...

congji3817的博客 164

01-FreeSWITCH 的安装、部署、配置以及可能遇到的问题和解决方法

一文让您了解从FreeSWITCH 的安装、部署、配置、可能遇到的问题及解决方法。一切从实际项目出发,以工程应用为目的。

秋风的博客 2127

JBOSS建立JMS应用实例

 环境配置说明Jboss4.2.3Java ee 5MySql5.0安装jdk,我的目录为C:/Sun/SDK安装jboss.我的目录为D:/jboss4.2.3安装mysql配置环境变量JBOSS_HOME D:/jboss4.2.3配置环境变量 JAVA_HOME C:/Sun/SDK/jdkJBOSS的JMS配置由于没有用到集群所以用JBOSS

点滴知识从这里积累 2031

PyQtWebEngine安装避坑指南:快速解决ModuleNotFoundError

本文详细解析了PyQt5开发中常见的ModuleNotFoundError: No module named 'PyQt5.QtWebEngineWidgets'错误。核心原因是PyQt5 5.11版本后,网页引擎组件被独立为PyQtWebEngine包。文章对比了退回旧版本、独立安装及使用Conda等多种解决方案,并提供了针对Windows、macOS和Linux不同平台的实战安装指南与验证方法,帮助开发者快速解决依赖问题。

weixin_29056101的博客 427

保姆级教程:在爱快iKuai虚拟机里装OpenWrt旁路由,实现去广告和特殊功能

本文提供在爱快iKuai虚拟机中安装OpenWrt旁路由的详细教程,帮助用户实现去广告和特殊功能扩展。通过分步指导,包括虚拟机配置、网络设置和功能优化,打造稳定高效的家庭网络环境,特别适合软路由爱好者和网络管理员。

weixin_31364787的博客 809

JBOSS4.0.2集群配置

JBOSS4.0.2 HTTP集群配置之一:JBOSS集群介绍Jboss 支持如下类型的cluster:EJB、HTTP、JNDI、JMS,本文主要了解HTTP cluster。JBOSS的HTTP cluster实现了两项任务:会话状态复制(Session state replication)与负载平衡(Load-balance of incoming invocations)。会话状态

wudouguerwxx的专栏 1211

基于ADMM的TV正则化最小化稀疏实现图像重建

ADMM算法是一种求解带有约束条件的优化问题的有效方法,它可以将原问题分解成两个子问题,然后交替求解这两个子问题,直到收敛。为了解决这些问题,研究人员提出了许多图像重建方法,其中一种常用的方法是基于正则化的方法。在图像重建中,TV正则化是一种比较常用的正则化方法,可以有效地降低图像的噪声,并保持图像细节特征。通过本文的介绍和源代码的演示,我们可以看出基于ADMM的TV正则化最小化稀疏实现图像重建的方法是一种简单、高效、有效的图像重建方法,能够在一定程度上提高图像质量,对于实际应用具有一定的参考意义。

学习使你进步。 1761

原创重量级:JBoss 4.0.2集群指南

JBoss 4.0.2集群指南bromon原创 请尊重版权    本文主要讲解JBoss cluster的基本知识以及简单的配置方法,其间涉及了一些jboss的补充知识。一、材料准备:1、    JBoss 4.0.2    JBoss各个版本之间差异比较大,即使同为jboss 4.x的版本,内部组件的版本也不一致,所以请尽量使用同一版本的server。目前已经证明可以配置cluster的版本多为

Sometimes Java 2293

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

JBoss 4.0.2集群指南(二)-建立JMS集群

JBoss 4.0.2集群指南(二)-建立JMS集群。Jms集群的意义在于提升系统在处理消息时的并发能力,建立这样的集群,有三个步骤: 1、 配置jms消息持久化所使用的数据库 2、 配置分布式的jndi环境 3、 配置分布式jms 在jboss 4.0.2中,系统采用hibernate的方式来保存消息,所以能够兼容hibernate支持的所有数据库。Jboss默认采用hsql

在水一方 883

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

实战JBossMQ JMS集群

作者:JBossWeek http://blog.csdn.net/JBossweek email:jbossweek AT gmail.com 版权声明:可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息

JBossWeek的专栏 4280

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

JBOSS5.1 HA-JMS 集群的JMS服务

 集群的JMS服务         JBoss AS 3.2.4 和更高的版本支持高可用性的 all 服务器配置里的 JMS(HA-JMS)服务。在 JBoss AS 当前的发布版本里,HA-JMS 服务用一个群集的 singleton fail-over 服务来实现。注意        如果你希望自己来配置 HA-JMS,你可以在以前的 JBoss AS 版本里让它运行。我们有一个客户成功地在...

topMan'blog 265

JBoss 4.0.2集群指南

原文:http://www.javaresearch.org/article/showarticle.jsp?column=556&thread=34682JBoss 4.0.2集群指南bromon原创 请尊重版权    本文主要讲解JBoss cluster的基本知识以及简单的配置方法,其间涉及了一些jboss的补充知识。一、材料准备:1、    JBoss 4.0.2    JBoss各个版本

pauliz的专栏 1504

jboss-4.2.3.GA 配置JMS集群

<br />问题描述:<br /><br />linux 下做了三个节点的jboss集群。<br />如:   A: 192.168.0.1 <br />          B: 192.168.0.2<br />          C: 192.168.0.3<br />应用放在共享存储上,三台机器中的任何一台都可以访问这个共享存储。<br />在每台机器上部署一套jboss,在delploy目录下通过软链接的方式发布应用。<br />由于业务需要使用了JMS.由于每个节点监听的端口不一致<br /><p

lwei_998的专栏 1346

JBOSS4,JBOSS5和JBOSS6各主要版本特性

<br />JBOSS4<br />JBoss4包括web服务器(servlet/JSP容器,HTML服务器)、EJB2.0容器。完整的纯Java的数据库引擎,(Java消息服务)JMS,JavaMail,和Java事务处理API/Java事务处理服务(JTA/JTS)支持。早期的JBoss使用了Apache Tomcat Web服务器,但在JBoss4.0中已经吧Apache Tomcat内嵌到JBoss中了。后续又集成Java数据对象(JDO),对于JMS多点传送机制支持的修补,对J2EE1.4的完全实

清风抚白杨 1万+

Jboss的production配置下去除集群(cluster)服务

介绍一下实验的原因:朋友因为历史原因开发伊始就是使用的jboss的production配置,众所周知这个配置下启动时默认开启了集群服务。这个时候会产生大量的节点广播信息,所以当他们改成硬件集群时是不希望有这些信息产生的,于是就希望在既有jboss配置的基础之上删除cluster服务。 一 测试版本:JBoss-eap-4.3 实验过程:将jboss的production复制出一份,命名为pr

潜心修炼 554

JBOSS4.0.2 HTTP集群配置详解

原文出处:http://blog.chinaunix.net/u2/65250/showart_725581.html一、JBOSS集群介绍Jboss 支持如下类型的cluster:EJB、HTTP、JNDI、JMS,本文主要了解HTTP cluster。JBOSS的HTTP cluster实现了两项任务:会话状态复制(Session state replication)与负载平衡(L

挨踢农场 607

小白入职记(二):初识JBoss应用服务器(一)

我们公司的项目使用的服务器主要分为web服务器(存放静态页面)、应用服务器(运行后台)、负载均衡服务器(控制分发)这三类服务器,其中应用服务器用到的是JBoss,由于学生阶段没使用过JBoss,因此,查阅了相关资料,对JBoss有了初步的了解,在这里做个笔记,也分享给大家。下面是本次笔记的主要要点: 1.JBoss是什么 2.与其它服务器(tomcat,apache)比较 3.快速搭建 4.目录及...

qq_37955930的博客 677
上一篇: 原创重量级:JBoss 4.0.2集群指南
下一篇: JSF开发实战(一)
bromon
博客等级 码龄25年 61粉丝 81原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值