UFMQ使用指南.docx
《UFMQ使用指南.docx》由会员分享,可在线阅读,更多相关《UFMQ使用指南.docx(35页珍藏版)》请在冰点文库上搜索。
UFMQ使用指南
UFMQ使用指南
更新历史:
版本
日期
作者
Comments
0.1
2009-10-9
栗竹冉
初版
0.2
2009-11-3
栗竹冉
增加两个Broker之间建立网络连接的应用举例。
1术语及基本概念3
1.1JMS对象3
1.2UFMQ对象3
2安装之前4
3安装4
3.1UFMQ与NC5.6结合使用4
3.2UFMQ独立使用4
3.2.1启动安装脚本4
3.2.2版权申明5
3.2.3指定安装目录6
3.2.4选择要安装的组件并安装7
3.2.5略过启动IBM应用服务器10
4目录结构12
5启动/停止12
5.1启动13
5.2停止13
6部署与配置15
6.1启动配置工具16
6.2配置界面介绍16
6.2.1整体布局16
6.2.2界面标题17
6.2.3窗口菜单和弹出菜单17
6.2.4配置项树和属性窗口17
6.3配置网络连接18
6.4配置传输连接22
6.5配置存储限制24
6.6配置持久化适配器25
6.7配置数据源27
6.8配置系统资源限制30
6.9删除配置项/属性30
6.10部署举例30
6.10.1配置传输连接31
6.10.2配置网络连接31
7监视32
7.1启动监视工具32
7.2界面布局33
7.3监视队列34
7.4监视主题35
1
术语及基本概念
1.1JMS对象
●ConnectionFactory:
⏹最基本的对象,用来创建JMS客户端到JMSprovider之间的连接。
●Connection:
⏹JMS客户端到JMSprovider之间的连接/通道。
⏹所有客户端与服务器之间的交互信息均通过通道传送。
●Session:
⏹JMS客户端与JMSprovider之间一个完整的交互过程。
⏹如果有事务,则一个Session中的所有操作为一个事务。
●Destination:
⏹JMS客户端与JMSprovider之间交互针对的目标(Target)。
例如:
对于消息生产者需要指定所生成的消息要发到什么地方;而对于消息者也需要告诉provider要从哪里取消息。
⏹Destination一般包括两种类型:
Queue和Topic;前者用于点对点的消息传递,而后者用于发布/订阅模式的消息传递。
●Message:
⏹JMS机制中用户数据的载体。
⏹客户端应用需要将自己的数据封装成JMS消息后再进行传输。
●Producer:
生成消息的客户端。
●Consumer:
消费消息的客户端。
1.2UFMQ对象
●Broker:
⏹一个控制单元,具有JMS所规范功能的服务器端。
⏹能够响应JMS客户端的请求并根据要求存储或者转发消息到目的地。
⏹通过配置可以实现RAS。
●PersistenceAdapter:
⏹持久适配器。
通过配置PersistenceAdapterUFMQ可以实现可靠存储。
⏹可以把从JMS客户端发来的消息存储在指定的介质上从而保证在异常情况下(如机器重新启动)的可靠性。
⏹如果使用Master/Slave部署方式,可以实现高可用性(用MasterBroker存储的消息对SlaveBroker仍然可见)。
●NetworkConnector:
⏹网络连接器。
通过配置可以建立到另一个Broker的网络连接,从而把多个Broker连接成一个集群。
⏹可以同时配置多个远程Broker。
●TransportConnector:
⏹传输连接器。
通过配置可以启动一个监听模块,用来响应来自JMS客户端的连接请求。
⏹通过配置可以启动多个监听模块。
●Destination:
⏹同于标准JMS规范中的概念。
●DestinationPolicy:
⏹在UFMQ内可以使用的一些对于Destination的策略/限制。
如果存储空间等。
⏹通过配置可以影响UFMQ性能。
●SystemUsage:
⏹在UFMQ内可以使用的一些系统资源的限制。
⏹通过配置可以影响UFMQ的性能。
●DataSource:
⏹数据源。
如果在PersistenceAdapter中指定使用数据库作为存储介质则需要定义该模块。
⏹通过配置UFMQ可以将接受到的消息存储到本地或者远程的数据库里。
2安装之前
UFMQ需要使用JDK1.5或更高版本的Java运行环境支持,安装前请检查Java相关的运行环境是否正确配置(特别是环境变量JAVA_HOME)。
3安装
3.1UFMQ与NC5.6结合使用
UFMQ已经内嵌入NC5.6,同时还提供独立的安装方式;因此如果已经安装的NC5.6则不需要再安装UFMQ。
3.2UFMQ独立使用
UFMQ使用了和NC5.6相同的安装脚本。
下面将介绍详细的安装过程。
3.2.1启动安装脚本
在安装包目录下找到安装脚本ncsetup.bat(在Unix/Linux操作系统里是ncsetup.sh),并启动安装脚本,在窗口模式下双击或者在命令行模式下输入脚本名字并回车。
正常启动后出现欢迎界面如下图所示,单击下一步进入版权声明界面。
图一:
安装脚本启动的欢迎界面
3.2.2版权申明
版本申明界面如下图所示:
该界面显示了用友软件产品的版权所有及许可说明,用户需要仔细阅读并保证遵守。
选择同意并单击下一步进入指定安装目录界面;用户也可以取消安装。
3.2.3指定安装目录
安装目录配置界面如下图所示:
在这个界面用户可以输入或者选择产品要安装到的目录。
安装脚本默认的目录是c:
/ufsoft/nchome,用户也可以根据自己的情况指定目录。
设定目录后单击下一步进入产品组件选择界面。
在下面的文档里,将使用${ncmq_base}表示UFMQ的安装目录。
3.2.4选择要安装的组件并安装
组件选择界面如下图所示:
UFMQ安装必须选择所有组件,负责可能导致某些功能不能正常使用。
如上图选择完全安装并单击下一步进入产品安装界面,如下图所示:
这是产品开始安装前的最后一步,如果发现前面的配置有误还可以单击上一步返回去重新选择;单击开始安装则开始产品的安装过程。
产品顺利安装完成,其界面如下:
单击上一步进入启动IBM应用服务器界面。
3.2.5略过启动IBM应用服务器
IBM应用服务器启动界面如下图所示:
UFMQ作为一个独立运行机的平台产品不需要IBM应用服务器的参与。
直接单击下一步略过该步骤,安装成功的界面如下图所示:
单击完成,安装脚本退出。
4目录结构
除产品安装相关的内容外,目录${ufmq_base}/ufmq下包含了产品的所有内容:
●${ufmq_base}/ufmq/bin:
⏹存放UFMQ管理脚本及相关的界面显示类。
⏹所有的管理操作都可以通过UFMQ管理脚本ufmq-admin.bat(在Unix/Linux下为ufmq-admin.sh,以下统一称为ufmq-admin)来完成。
●${ufmq_base}/ufmq/conf:
存放UFMQ的配置文件。
●${ufmq_base}/ufmq/lib:
存放UFMQ所有的功能模块,以JAR的形式包装。
●${ufmq_base}/ufmq/doc:
存放UFMQ的文档。
5启动/停止
在产品安装时UFMQ已经提供了默认的配置文件,这些默认的配置可以启动一个具有基本功能的UFMQbroker来响应JMS应用的请求。
5.1启动
在${ufmq_base}/ufmq/bin目录下找到ufmq-admin管理脚本,并在命令行用下面的方式启动:
WindowsOS:
ufmq-adminstart
Unix/LinuxOS:
ufmq-admin.shstart
UFMQ是否启动正常可以通过后面介绍的UFMQ监视来检验,如果启动正常则监视窗口能够显示UFMQ各模块的运行情况(如果队列和主题)。
如果UFMQ启动正常命令行窗口会有如下输出:
5.2停止
在${ufmq_base}/ufmq/bin目录下找到ufmq-admin管理脚本,并在新的命令行窗口用下面的方式停止UFMQ:
WindowsOS:
ufmq-adminstop
Unix/LinuxOS:
ufmq-admin.shstop
如果UFMQ停止正常,命令行窗口有如下图所示输出:
6部署与配置
关于部署根据生产环境的实际情况我们一般需要考虑以下几个方面的问题:
●网络连接
如果用户对消息传输的性能有很高的要求,则部署时必然要建立UFMQ的BrokerCluster(Broker之间通过建立网络连接(NetworkConnector)关联起来,并且通过无差别部署或者分组部署建立一个大范围的集群以响应大量来自JMS客户端的请求)。
在网络很好的情况下有时需要多配置几个网络连接以便能更充分的利用带宽资源。
●传输连接
对于任何一个UFMQBroker来说都需要配置相应的传输连接(TransportConnector)以监听来自JMS客户端的连接请求及与之交换信息。
像网络连接一样,也可以多配置几个来充分利用网络资源。
●存储限制
UFMQ具有缓存JMS消息的功能:
在网络情况不好或者目的UFMQBroker不可用的情况下,本地Broker将把收到的JMS消息临时存储在本地。
当配置的存储空间用完后Broker将不能再接收JMS消息。
而本地的存储空间的大小可以通过配置界面进行修改。
●系统资源限制
UFMQ对于临时存储的JMS消息会使用系统内存和临时目录。
和存储限制一样,也可以通过配置界面进行相应的调整。
●数据源
对于可靠存储,UFMQ支持多种选择:
共享文件系统,数据库或者第三方存储解决方案。
而对于用数据库作为存储介质则需要增加数据源的配置同时修改持久化适配器的配置,这些都可以通过配置管理界面做修改。
6.1启动配置工具
在${ufmq_base}/ufmq/bin目录下找到ufmq-admin管理脚本,并在命令行用下面的方式启动:
WindowsOS:
ufmq-adminconf
Unix/LinuxOS:
ufmq-admin.shconf
默认情况下配置管理工具将打开位于目录${ufmq_base}/ufmq/conf下的配置文件,其界面如下所示:
配置管理界面
6.2配置界面介绍
在本节将介绍界面的基本情况。
其中包括界面的布局和菜单的使用。
6.2.1整体布局
配置管理界面主要包括四个部分:
●最上面是界面的标题。
●在标题下面是界面的菜单栏。
●在界面窗体左侧是配置项构成的树
●在配置项右侧是用来显示指定配置项属性的表。
在属性表中每一行都是一个属性;每一个属性包括属性名和属性值两部分;双击可以对属性名或属性值进行修改。
属性表
配置项树
菜单
标题
6.2.2界面标题
在管理工具正常启动后,界面标题显示如下所示:
UFIDAMOMConfigurationConsole:
C:
\ufsoft\nchome\ufmq\conf\activemq.xml
其中包含两部分的内容:
管理界面的名字和当前打开的配置文件名字。
配置工具默认打开的是位于目录${ufmq_base}/ufmq/conf下的配置文件,如果需要用户可以使用菜单打开其他地方的配置文件进行编辑。
6.2.3窗口菜单和弹出菜单
对配置文件进行编辑需要用到菜单。
这里提供两种菜单:
普通的工具栏下拉菜单和弹出菜单。
本文中对配置项及属性的操作将以弹出菜单为例进行介绍。
●普通的工具栏菜单包括:
⏹File:
打开/关闭配置文件、保存或另存所做修改、界面退出等相关操作。
⏹TreeOperation:
增加、删除元素等操作。
⏹PropertyOperation:
增加删除属性等操作。
●弹出菜单包括:
⏹配置项弹出菜单(和TreeOperation菜单相同)。
⏹属性表弹出菜单(和PropertyOperation菜单相同)。
6.2.4配置项树和属性窗口
配置管理工具在加载配置文件时过滤了注释信息。
在配置项树里分层次显示了配置文件所有有意义的配置项及其子配置项(配置元素)。
选中一个配置项,在属性表里将显示这个配置项所包含的所有属性;在属性表区域单击鼠标右键则可以看到对属性进行操作的弹出菜单;展开该配置项可以看到所包含的子配置项。
如下图所示:
配置项Broker所包含的子配置项和属性
6.3配置网络连接
网络连接(NetworkConnector)用来建立UFMQBroker之间的关联以建立UFMQ集群(更高性能,更大范围内的信息交换平台)。
以下是建立网络连接的详细步骤:
●选择Broker配置项并单击鼠标右键,调出菜单:
●在弹出的菜单里单击InsertaChild,打开增加Broker子配置项的对话窗口,在要加载的子配置项下拉菜单里选择networkConnectors子配置项:
●单击确定,则生成一个空的networkConnectors子配置项(无属性和子配置项):
●选择networkConnectors配置项,单击鼠标右键调出弹出菜单并选择插入一个子配置项命令,在插入子配置项的提示窗口的下拉菜单中选择networkConnector:
●单击确定按钮,一个默认的子配置项networkConnector已经被加入到选中的配置项中:
●如上图所示,新加入的网络连接配置项具有默认的属性。
这些属性的值可以根据实际情况进行修改。
注:
1.如果Broker下已经存在networkConnectors配置项,则可以略去上面增加networkConnectors的步骤而直接选择networkConnectors配置项来增加子配置项。
2.从上面的截图看出,配置项树的弹出菜单里包括Insertasibling和Insertachild两个选项。
这表示我们可以像上面的过程一下,选择父配置项来增加子配置项;也可以选择同级别的配置项来增加兄弟配置项,效果是一样的。
在下面的过程中也将以增加子配置项为例来做功能演示。
6.4配置传输连接
传输连接配置是Broker为启动用于监听JMS连接请求而进行的配置。
其步骤如下:
●在Broker配置项下找到transportConnectors配置项选中并展开,可以看到该配置项已经有一个子配置项,而且该配置项没有属性:
●单击鼠标右键调出配置菜单,并选择Insertachild,在增加子配置项对话框的下拉菜单里选择transportConnector:
●单击确定按钮,一个新的子配置项将加入到配置项transportConnectors:
●新加入的子配置项具有默认的属性,可以根据自己的需要进行修改。
6.5配置存储限制
在配置项树中找到并选择policyentries配置项下的policyentry配置项,他们定义了队列或者主题的空间大小,可以根据生产环境的实际环境对这些限制值进行调整:
6.6配置持久化适配器
持久化适配器(persistenceadapter)用来描述UFMQBroker将如何存储具有持久要求消息的。
其增加步骤如下:
●在Broker配置项增加persistenceAdapter配置项。
●选中persistenceAdapter配置项并增加自己需要的子配置项,在UFMQ中有两种子配置项可选:
●UFMQ支持两种存储方式:
用文件系统或者数据库:
在这里选择自己需要的方式。
如果选择jdbcPersistenceAdapter即使用数据库来存储消息,则需要相应的配置数据源(下面将介绍如何配置)。
选择完后单击确定按钮,则新的子存储配置项被加入到persistenceAdapter配置项中,其具有默认的属性;可以根据系统部署的需要进行相应的修改:
●如果选择加入数据库存储配置项,那么在其属性里只有一个用来标识数据源的名字和数据源的配置相对应:
6.7配置数据源
在UFMQ中数据源是和数据库持久化存储配合使用的。
数据源用到的数据库管理系统需要提供相应的JDBC驱动程序;可以直接将驱动程序复制到${ufmq_base}/ufmq/lib目录下,也可以通过设置环境变量JDBC_DRV_CLASSPATH来指定。
以Oracle为例,该环境变量设置如下所示:
Windows:
setJDBC_DRV_CLASSPATH=D:
\Oracle\lib\ojdbc14.jar
Unix/Linux:
exportJDBC_DRV_CLASSPATH=/home/Oracle/lib/ojdbc14.jar
要增加一个数据源:
●在Beans顶级配置项下调出菜单:
●在弹出菜单中选择Insertachild(这里Insertasibling是不可用的,UFMQ的所有配置项里高顶级的就是Beans),并且在增加子配置项的对话框下拉菜单里选择Datasource:
●单击确定按钮会出现提示选择数据库类型的对话框,在这里我们以Oracle为例:
●再次单击确认按钮,则一个具有Oracle默认配置的数据库存储数据源被加入进来:
●该配置项具有六个默认的属性,其中包括SID,用户名/密码等;可以根据部署时的实际情况对这些属性进行修改。
6.8配置系统资源限制
在展开的Broker配置项下找到Systemusage子配置项,完全占开的SystemUsage子配置项如下图所示:
从上图可以看到,在系统资源配置项中主要定义内存,存储及临时存储的最大限制;在实际部署时可以根据硬件的实际情况进行相应的修改。
6.9删除配置项/属性
删除一个配置项或者属性比较简单,只要选中要删除的配置项或者属性调出菜单并选择delete命令,则对应的元素将被删除。
在属性表的弹出菜单还有一个deleteallproperties命令,执行该命令将清除当前选中的配置项中所有的属性。
6.10部署举例
在本节将演示如何在两个Broker之间建立网络连接。
我们假设两个Broker的信息如下所示:
●Broker1:
3.机器名:
H1
4.IP地址:
10.1.1.1
5.监听的端口:
60101
●Broker2:
6.机器名:
H2
7.IP地址:
10.1.1.2
8.监听的端口:
60101
详细的配置步骤如下:
6.10.1配置传输连接
传输连接(transportConnectors)用来定义Broker的监听代理,它负责响应来自其他Broker或者JMS应用的连接请求;关于如何配置一个传输连接的详细信息请参阅本指南6.4节。
在此我们要在两个Broker上分别建立如下的传输连接:
Name:
Listener
Uri:
tcp:
//localhost:
60101
6.10.2配置网络连接
网络连接(NetworkConnectors)用来定义Broker的连接代理,它负责向其他的Broker发起网络连接请求;关于如何配置一个网络连接的详细信息请参阅本指南6.3节。
在此我们要分别在两个Broker上配置网络连接:
6.10.2.1配置Broker1
网络连接的属性如下:
Name:
toH2
Uri:
static:
//(tcp:
//10.1.1.2:
60101)
6.10.2.2配置Broker2
网络连接的属性如下:
Name:
toH1
Uri:
static:
//(tcp:
//10.1.1.1:
60101)
6.10.2.3重新启动两个Broker
如上通过配置传输连接和网络连接就可以将两个原本互相独立的Broker关联起来。
因为现在UFMQ还不支持动态修改配置,所以我们需要把两个Broker重新启动以使配置生效。
7监视
UFMQ实现了标准的JMX接口,而系统监视界面也是通过JMX接口实现的。
使用JDK提供的JConsole也可以实现对系统的监视。
7.1启动监视工具
在${ufmq_base}/ufmq/bin目录下找到ufmq-admin管理脚本,并在命令行用下面的方式启动:
WindowsOS:
ufmq-adminmoni
Unix/LinuxOS:
ufmq-admin.shmoni
在监视界面启动时会要求输入要监视的Broker所在的机器的IP和JMX端口号(默认用1099),本例中在本地监视所以输入如下所示:
如果能够连接成功,则会显示如下图所示监视界面:
7.2界面布局
监视界面的整体布局和配置管理界面很相似,除标题外还有一个监控树和一个属性表(见上图)。
监控树里显示了可以被监控对象(现在只有主题和队列);当选中一个可以被监视的对象时,属性表里将显示和该对象有关的各属性的统计信息。
如上图就显示了Broker的名字和ID两项关键信息。
7.3监视队列
展开监控树中找到要监视的队列并选中,如果连接正常则属性表会显示关键属性的动态统计信息,如下图所示:
UFMQ的队列对象(和主题一样)有五个关键统计信息:
Messagespending:
当前队列里存储的消息个数。
Consumercount:
当前队列的消费者个数。
Producercount:
当前队列的生产者个数。
Messagessent:
当前队列的接收到的来自JMS应用的消息的个数。
Messagesreceived:
当前队列发送给JMS应用的消息的个数。
7.4监视主题
主题的监视和队列一样,下图显示选中主题的动态统计信息: