JBI Endpoint Cluster
Fuse ESB Enterprise提供了一个Cluster Engine,用于使用JMS Broker(ActiveMQ)在JBI Application中指定
Endpoint. Fuse ESB Enterprise的Cluster Engine通过NMR(Normalized Message Router)进行通信,同时
使用ActiveMQ配置JBI Endpoint来进行创建Cluster.
(1) 设置JBI Endpoint Cluster
A. 安装Cluster Feature: features:install jbi-cluster
验证安装: features:list
B. 默认的Cluster Engine配置:jbi-cluster.xml
位于${ESB_InstallDir}\system\org\apache\servicemix\jbi\cluster下的Bundle:org.apache.servicemix.jbi.
cluster.config中。
C. 改变默认的配置
添加配置文件至Bundle:org.apache.servicemix.jbi.cluster.config, 更该其中的clusterName和destinationName.
D. 改变JMS Broker
默认情况下,Fuse ESB Enterprise提供了一个ActiveMQ 实例,可通过${ESB_InstallDir}\deploy下面添加
XML配置文件。
E. 在应用程序中使用Cluster
1. OSGi packaged JBI endpoint
<http:consumer id="myHttpConsumer" service="test:myService" endpoint="myEndpoint" />
<bean class="org.apache.servicemix.jbi.cluster.engine.OsgiSimpleClusterRegistration">
<property name="endpoint" ref="myHttpConsumer" />
</bean>
2. JBI packaged endpoint
<http:consumer id="myHttpConsumer" service="test:myService" endpoint="myEndpoint" />
<bean class="org.apache.servicemix.jbi.cluster.engine.OsgiSimpleClusterRegistration">
<!-- 需添加额外的信息 -->
<property name="serviceName" value="test:myService" />
<property name="endpointName" value="myEndpoint" />
</bean>
F. 容器之间建立网络链接
配置${ESB_InstallDir}/conf/activemq.xml文件。
有两种方式:
1. Static network connections
<!-- Set the brokerName to be unique for this container -->
<amq:broker id="broker" brokerName="host1_broker1" depends-on="jmxServer">
<networkConnectors>
<networkConnector name="host1_to_host2" uri="static://(tcp://host2:61616)"/>
<!-- A three container network would look like this -->
<!-- (Note it is not necessary to list the hostname in the uri list) -->
<!-- networkConnector name="host1_to_host2_host3"
uri="static://(tcp://host2:61616,tcp://host3:61616)"/ -->
</networkConnectors>
</amq:broker>
2. Multicast network connections
<networkConnectors>
<!-- by default just auto discover the other brokers -->
<networkConnector name="default-nc" uri="multicast://default"/>
</networkConnectors>
G. 高可用性
通过Master-Slave模式进行,Master 处于ACTIVE时,Slave处于STANDBY 状态等待一个失败的时间触发
Slave生效。可通过配置下面几种方式:
1. Shared file system master-slave: 需要文件系统支持文件级别的Lock;
2. JDBC master-slave: Master首先锁定Table,当失败事件发生时释放Lock;
3. Pure master-slave: Master复制所有的数据至 Slave,需要做额外的工作。
H. Cluster配置最佳实践
1. 不要同时使用static和multicast的networkConnectors;
2. 确保/conf/activemq.xml中的brokerName唯一;
3. 确保针对每个活跃者的实例有一个对应的持久存储,例如:
<property name="url" value="jdbc:mysql://localhost/broker_activemq_host1?relaxAutoCommit=true"/>
4. 可在同以主机上设置Network Container,但需要改改JMS Port和 transportConnector Port,避免端口
冲突;可通过修改/conf/activemq.xml修改其中的rmi.port和activemq.port:
rmi.port = 1098
rmi.host = localhost
jmx.url = service:jmx:rmi:///jndi/rmi://${rmi.host}:${rmi.port}/jmxrmi
activemq.port = 61616
activemq.host = localhost
activemq.url = tcp://${activemq.host}:${activemq.port}
分享到:
相关推荐
Fuse eclipse Tools 是IONA Fuse提供的开源eclipse插件,用来提供一个JBI组件的集成开发环境
JBI规范下载 JBI规范下载 JBI规范下载 JBI规范下载 JBI规范下载
SOA jbi组件规范 Servicemix提供的JBI组件的Xbean.xml用来对su来进行说明,其主要规范
JBI理论 包括JBI ESB Servicemix
基于JBI的企业服务总线ESB研究与应用,薛伟冬,许辉阳,面向服务架构作为新兴的一种软件系统设计方法越来越受到关注,企业服务总线是SOA的基础骨干,而JBI(Java业务集成)规范作为一种企��
jbi规范1.0 jbi规范1.0 jbi规范1.0 jbi规范1.0
ESB-ServiceMix的消息路由技术研究,罗晶,,本文沿着SOA-ESB-JBI-NMR-ServiceMix这个线路,探究SOA、ESB和JBI规范,以及这几者之间的联系。通过对遵循JBI规范的开源ESB—ServiceMix深入�
本文对 ESB 和 JBI 规范,以及其涉及到的面向服务架构(SOA) 和 web 服务(web service)进行介绍,并通过一个基于ServiceMix(一 个基于 Spring、完全遵循 JBI 规范的 ESB产品)实施系统集成的案例来 详细介绍如果...
JBI(Java Business Integration,Java业务集成,Java业务整合)即JSR 208是一种企业服务总线(Enterprise Service Bus,ESB),使我们能够用Java实现面向服务的架构。企业正转向以面向服务架构(SOA)和网络服务,以...
• Composite Applications • BPEL • Services • JBI • Java EE Service Engine • Open ESB • Open ESB runtime, tools, and sample apps • Demo
业界正在广泛寻求解决 B2B 以及 EAI (企业应用集成)所存在问题的方案。...本文简短地阐述了即将到来的与 SOA (面向服务体系)规范及 ESB (企业服务总线)基础架构有关的 JBI ( Java 业务集成)标准。
JBI(Java Business Integration,Java业务集成,Java业务整合)即JSR208是一种企业服务总线(Enterprise Service Bus,ESB),使我们能够用Java实现面向服务的架构。企业正转向以面向服务假构(SOA)和网络服务,以...
5.灵活的部署结构[Topologies]包括Client/Server, P2P, ESB 和Enterprise Service Network. 6.与Spring 框架集成:可用作ESB 容器,也可以很容易的嵌入到Spring应用中. 7.使用基于SEDA处理模型的高度可伸缩的企业...
安装组件时服务描述信息的部署(对JBI来说是不透明的)。启动和停止组件(绑定和引擎)和JBI实现组件(如果可用的话)。所有这些用例假定存在着一个使用JMX来初始化活动的管理工具。JBI实现提供特定的MBeans对管理...
这是 OpenESB 的一个分支,OpenESB 是一种实现 JBI 规范 (JSR 208) 的基于 Java 的开源企业服务总线。
[7]——组件框架1组件框架(ComponentFramework)JBI组件(包括服务引擎和绑定组件)将JBI提供的接口封装之后,向外界提供调用JBI的接口。JBI和组件间的主要消息和处理机制已将在前面章节中讨论过了,本章将详细论述...
jbi规范讲述的PDF文档 包括类图、MEP等